From abf8b69a3fb1a6a147ebc38ff8ed29aa01cb110c Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Fri, 24 Jun 2022 23:47:02 +0300
Subject: [PATCH 01/14] refactoring

---
 src/common.ts                                 |    11 +-
 src/compiler.ts                               |    60 +-
 src/program.ts                                |     3 -
 std/assembly/index.d.ts                       |   120 +-
 std/assembly/math.ts                          |  3474 +-
 std/assembly/util/math.ts                     |  4645 +-
 std/assembly/util/string.ts                   |     6 +-
 std/portable/index.d.ts                       |     1 -
 tests/compiler/binary.debug.wat               |   136 +-
 tests/compiler/issues/2322/index.release.wat  |    72 +-
 tests/compiler/resolve-binary.debug.wat       |    64 +-
 tests/compiler/return-unreachable.release.wat |    88 +-
 tests/compiler/std/array.debug.wat            |   214 +-
 tests/compiler/std/array.release.wat          |   192 +-
 tests/compiler/std/math.debug.wat             | 37195 ++++++++--------
 tests/compiler/std/math.release.wat           | 12871 ++----
 tests/compiler/std/math.ts                    |   505 +-
 tests/compiler/std/mod.debug.wat              |     8 +-
 tests/compiler/std/mod.release.wat            |    24 +-
 .../std/operator-overloading.debug.wat        |     6 +-
 .../std/operator-overloading.release.wat      |     6 +-
 tests/compiler/std/string.debug.wat           |    57 +-
 tests/compiler/std/string.release.wat         |    12 +-
 tests/compiler/std/typedarray.debug.wat       |     8 +-
 tests/compiler/std/typedarray.release.wat     |    20 +-
 tests/compiler/wasi/seed.debug.wat            |    51 +-
 tests/compiler/wasi/seed.release.wat          |    12 +-
 27 files changed, 27998 insertions(+), 31863 deletions(-)

diff --git a/src/common.ts b/src/common.ts
index c48f5e7005..84c29477b2 100644
--- a/src/common.ts
+++ b/src/common.ts
@@ -218,7 +218,6 @@ export namespace CommonNames {
   export const Math = "Math";
   export const Mathf = "Mathf";
   export const NativeMath = "NativeMath";
-  export const NativeMathf = "NativeMathf";
   export const Int8Array = "Int8Array";
   export const Int16Array = "Int16Array";
   export const Int32Array = "Int32Array";
@@ -236,10 +235,12 @@ export namespace CommonNames {
   export const abort = "abort";
   export const trace = "trace";
   export const seed = "seed";
-  export const pow = "pow";
-  export const ipow32 = "ipow32";
-  export const ipow64 = "ipow64";
-  export const mod = "mod";
+  export const fpow32 = "~lib/util/math/pow32";
+  export const fpow64 = "~lib/util/math/pow64";
+  export const ipow32 = "~lib/util/math/ipow32";
+  export const ipow64 = "~lib/util/math/ipow64";
+  export const fmod32 = "~lib/util/math/mod32";
+  export const fmod64 = "~lib/util/math/mod64";
   export const alloc = "__alloc";
   export const realloc = "__realloc";
   export const free = "__free";
diff --git a/src/compiler.ts b/src/compiler.ts
index 74518ef05d..e6b73950da 100644
--- a/src/compiler.ts
+++ b/src/compiler.ts
@@ -5327,23 +5327,14 @@ export class Compiler extends DiagnosticEmitter {
         }
         let instance = this.f32PowInstance;
         if (!instance) {
-          let namespace = this.program.lookup(CommonNames.Mathf);
-          if (!namespace) {
-            this.error(
-              DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Mathf"
-            );
-            return module.unreachable();
-          }
-          let namespaceMembers = namespace.members;
-          if (!namespaceMembers || !namespaceMembers.has(CommonNames.pow)) {
+          let prototype = this.program.lookup(CommonNames.fpow32);
+          if (!prototype) {
             this.error(
               DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Mathf.pow"
+              reportNode.range, "pow32"
             );
             return module.unreachable();
           }
-          let prototype = assert(namespaceMembers.get(CommonNames.pow));
           assert(prototype.kind == ElementKind.FUNCTION_PROTOTYPE);
           this.f32PowInstance = instance = this.resolver.resolveFunction(<FunctionPrototype>prototype, null);
         }
@@ -5369,23 +5360,14 @@ export class Compiler extends DiagnosticEmitter {
         }
         let instance = this.f64PowInstance;
         if (!instance) {
-          let namespace = this.program.lookup(CommonNames.Math);
-          if (!namespace) {
-            this.error(
-              DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Math"
-            );
-            return module.unreachable();
-          }
-          let namespaceMembers = namespace.members;
-          if (!namespaceMembers || !namespaceMembers.has(CommonNames.pow)) {
+          let prototype = this.program.lookup(CommonNames.fpow64);
+          if (!prototype) {
             this.error(
               DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Math.pow"
+              reportNode.range, "pow64"
             );
             return module.unreachable();
           }
-          let prototype = assert(namespaceMembers.get(CommonNames.pow));
           assert(prototype.kind == ElementKind.FUNCTION_PROTOTYPE);
           this.f64PowInstance = instance = this.resolver.resolveFunction(<FunctionPrototype>prototype, null);
         }
@@ -5507,23 +5489,14 @@ export class Compiler extends DiagnosticEmitter {
       case TypeKind.F32: {
         let instance = this.f32ModInstance;
         if (!instance) {
-          let namespace = this.program.lookup(CommonNames.Mathf);
-          if (!namespace) {
-            this.error(
-              DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Mathf"
-            );
-            return module.unreachable();
-          }
-          let namespaceMembers = namespace.members;
-          if (!namespaceMembers || !namespaceMembers.has(CommonNames.mod)) {
+          let prototype = this.program.lookup(CommonNames.fmod32);
+          if (!prototype) {
             this.error(
               DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Mathf.mod"
+              reportNode.range, "mod32"
             );
             return module.unreachable();
           }
-          let prototype = assert(namespaceMembers.get(CommonNames.mod));
           assert(prototype.kind == ElementKind.FUNCTION_PROTOTYPE);
           this.f32ModInstance = instance = this.resolver.resolveFunction(<FunctionPrototype>prototype, null);
         }
@@ -5535,23 +5508,14 @@ export class Compiler extends DiagnosticEmitter {
       case TypeKind.F64: {
         let instance = this.f64ModInstance;
         if (!instance) {
-          let namespace = this.program.lookup(CommonNames.Math);
-          if (!namespace) {
-            this.error(
-              DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Math"
-            );
-            return module.unreachable();
-          }
-          let namespaceMembers = namespace.members;
-          if (!namespaceMembers || !namespaceMembers.has(CommonNames.mod)) {
+          let prototype = this.program.lookup(CommonNames.fmod64);
+          if (!prototype) {
             this.error(
               DiagnosticCode.Cannot_find_name_0,
-              reportNode.range, "Math.mod"
+              reportNode.range, "mod64"
             );
             return module.unreachable();
           }
-          let prototype = assert(namespaceMembers.get(CommonNames.mod));
           assert(prototype.kind == ElementKind.FUNCTION_PROTOTYPE);
           this.f64ModInstance = instance = this.resolver.resolveFunction(<FunctionPrototype>prototype, null);
         }
diff --git a/src/program.ts b/src/program.ts
index 2958241478..d23411b500 100644
--- a/src/program.ts
+++ b/src/program.ts
@@ -1401,9 +1401,6 @@ export class Program extends DiagnosticEmitter {
       if (!globalAliases.has(CommonNames.Math)) {
         globalAliases.set(CommonNames.Math, CommonNames.NativeMath);
       }
-      if (!globalAliases.has(CommonNames.Mathf)) {
-        globalAliases.set(CommonNames.Mathf, CommonNames.NativeMathf);
-      }
       // TODO: for (let [alias, name] of globalAliases) {
       for (let _keys = Map_keys(globalAliases), i = 0, k = _keys.length; i < k; ++i) {
         let alias = unchecked(_keys[i]);
diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 7c741f027d..cfd56543e6 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2025,127 +2025,119 @@ interface SymbolConstructor {
 declare const Symbol: SymbolConstructor;
 
 /** @internal */
-interface IMath<T> {
+interface IMath {
   /** The base of natural logarithms, e, approximately 2.718. */
-  readonly E: T;
+  readonly E: f64;
   /** The natural logarithm of 2, approximately 0.693. */
-  readonly LN2: T;
+  readonly LN2: f64;
   /** The natural logarithm of 10, approximately 2.302. */
-  readonly LN10: T;
+  readonly LN10: f64;
   /** The base 2 logarithm of e, approximately 1.442. */
-  readonly LOG2E: T;
+  readonly LOG2E: f64;
   /** The base 10 logarithm of e, approximately 0.434. */
-  readonly LOG10E: T;
+  readonly LOG10E: f64;
   /** The ratio of the circumference of a circle to its diameter, approximately 3.14159. */
-  readonly PI: T;
+  readonly PI: f64;
   /** The square root of 1/2, approximately 0.707. */
-  readonly SQRT1_2: T;
+  readonly SQRT1_2: f64;
   /** The square root of 2, approximately 1.414. */
-  readonly SQRT2: T;
+  readonly SQRT2: f64;
   /** Returns the absolute value of `x`. */
-  abs(x: T): T;
+  abs<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the arccosine (in radians) of `x`. */
-  acos(x: T): T;
+  acos<T extends f32 | f64>(x: T): T;
   /** Returns the hyperbolic arc-cosine of `x`. */
-  acosh(x: T): T;
+  acosh<T extends f32 | f64>(x: T): T;
   /** Returns the arcsine (in radians) of `x`. */
-  asin(x: T): T;
+  asin<T extends f32 | f64>(x: T): T;
   /** Returns the hyperbolic arcsine of `x`. */
-  asinh(x: T): T;
+  asinh<T extends f32 | f64>(x: T): T;
   /** Returns the arctangent (in radians) of `x`. */
-  atan(x: T): T;
+  atan<T extends f32 | f64>(x: T): T;
   /** Returns the arctangent of the quotient of its arguments. */
-  atan2(y: T, x: T): T;
+  atan2<T extends f32 | f64>(y: T, x: T): T;
   /** Returns the hyperbolic arctangent of `x`. */
-  atanh(x: T): T;
+  atanh<T extends f32 | f64>(x: T): T;
   /** Returns the cube root of `x`. */
-  cbrt(x: T): T;
+  cbrt<T extends f32 | f64>(x: T): T;
   /** Returns the smallest integer greater than or equal to `x`. */
-  ceil(x: T): T;
+  ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. */
-  clz32(x: T): T;
+  clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the cosine (in radians) of `x`. */
-  cos(x: T): T;
+  cos<T extends f32 | f64>(x: T): T;
   /** Returns the hyperbolic cosine of `x`. */
-  cosh(x: T): T;
+  cosh<T extends f32 | f64>(x: T): T;
   /** Returns e to the power of `x`. */
-  exp(x: T): T;
+  exp<T extends f32 | f64>(x: T): T;
   /** Returns e to the power of `x`, minus 1. */
-  expm1(x: T): T;
+  expm1<T extends f32 | f64>(x: T): T;
   /** Returns the largest integer less than or equal to `x`. */
-  floor(x: T): T;
+  floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the nearest 32-bit single precision float representation of `x`. */
-  fround(x: T): T;
+  fround<T extends f32 | f64>(x: T): T;
   /** Returns the square root of the sum of squares of its arguments. */
-  hypot(value1: T, value2: T): T; // TODO: rest
+  hypot<T extends f32 | f64>(a: T, b: T): T; // TODO: rest
   /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. */
-  imul(a: T, b: T): T;
+  imul<T extends f32 | f64>(a: T, b: T): T;
   /** Returns the natural logarithm (base e) of `x`. */
-  log(x: T): T;
+  log<T extends f32 | f64>(x: T): T;
   /** Returns the base 10 logarithm of `x`. */
-  log10(x: T): T;
+  log10<T extends f32 | f64>(x: T): T;
   /** Returns the natural logarithm (base e) of 1 + `x`. */
-  log1p(x: T): T;
+  log1p<T extends f32 | f64>(x: T): T;
   /** Returns the base 2 logarithm of `x`. */
-  log2(x: T): T;
+  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the largest-valued number of its arguments. */
-  max(value1: T, value2: T): T; // TODO: rest
+  max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T; // TODO: rest
   /** Returns the lowest-valued number of its arguments. */
-  min(value1: T, value2: T): T; // TODO: rest
+  min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T; // TODO: rest
   /** Returns `base` to the power of `exponent`. */
-  pow(base: T, exponent: T): T;
+  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): T;
   /** Returns a pseudo-random number in the range from 0.0 inclusive up to but not including 1.0. */
-  random(): T;
+  random(): f64;
   /** Returns the value of `x` rounded to the nearest integer. */
-  round(x: T): T;
+  round<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the sign of `x`, indicating whether the number is positive, negative or zero. */
-  sign(x: T): T;
+  sign<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns whether the sign bit of `x` is set. */
-  signbit(x: T): bool;
+  signbit<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): bool;
   /** Returns the sine of `x`. */
-  sin(x: T): T;
+  sin<T extends f32 | f64>(x: T): T;
   /** Returns the hyperbolic sine of `x`. */
-  sinh(x: T): T;
+  sinh<T extends f32 | f64>(x: T): T;
   /** Returns the square root of `x`. */
-  sqrt(x: T): T;
+  sqrt<T extends f32 | f64>(x: T): T;
   /** Returns the tangent of `x`. */
-  tan(x: T): T;
+  tan<T extends f32 | f64>(x: T): T;
   /** Returns the hyperbolic tangent of `x`. */
-  tanh(x: T): T;
+  tanh<T extends f32 | f64>(x: T): T;
   /** Returns the integer part of `x` by removing any fractional digits. */
-  trunc(x: T): T;
+  trunc<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
 }
 
 /** @internal */
-interface INativeMath<T> extends IMath<T> {
-  /** Contains sin value produced after Math/Mathf.sincos */
-  sincos_sin: T;
-  /** Contains cos value produced after Math/Mathf.sincos */
-  sincos_cos: T;
+interface INativeMath extends IMath {
+  /** Contains sin value produced after Math.sincos */
+  sincos_sin: f64;
+  /** Contains cos value produced after Math.sincos */
+  sincos_cos: f64;
   /** Seeds the random number generator. */
   seedRandom(value: i64): void;
-  /** Multiplies a floating point `x` by 2 raised to power exp `n`. */
-  scalbn(x: T, n: i32): T;
   /** Returns the floating-point remainder of `x / y` (rounded towards zero). */
-  mod(x: T, y: T): T;
-  /** Returns the floating-point remainder of `x / y` (rounded to nearest). */
-  rem(x: T, y: T): T;
+  mod<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T, y: T): T;
   /** Returns sin and cos simultaneously for same angle. Results stored to `sincos_s32/64` and `sincos_c32/64` globals */
-  sincos(x: T): void;
+  sincos<T extends f32 | f64>(x: T): void;
   /** Returns 2 raised to the given power x. Equivalent to 2 ** x. */
-  exp2(x: T): T;
+  exp2<T extends f32 | f64>(x: T): T;
 }
 
 /** Double precision math imported from JavaScript. */
-declare const JSMath: IMath<f64>;
+declare const JSMath: IMath;
 /** Double precision math implemented natively. */
-declare const NativeMath: INativeMath<f64>;
-/** Single precision math implemented natively. */
-declare const NativeMathf: INativeMath<f32>;
+declare const NativeMath: INativeMath;
 /** Alias of {@link NativeMath} or {@link JSMath} respectively. Defaults to `NativeMath`. */
-declare const Math: IMath<f64>;
-/** Alias of {@link NativeMathf} or {@link JSMath} respectively. Defaults to `NativeMathf`. */
-declare const Mathf: IMath<f32>;
+declare const Math: IMath;
 
 /** Environmental abort function. */
 declare function abort(msg?: string | null, fileName?: string | null, lineNumber?: i32, columnNumber?: i32): never;
diff --git a/std/assembly/math.ts b/std/assembly/math.ts
index c934e9dce7..929cbc342d 100644
--- a/std/assembly/math.ts
+++ b/std/assembly/math.ts
@@ -2,8 +2,34 @@ import { Math as JSMath } from "./bindings/dom";
 export { JSMath };
 
 import {
-  pow_lut, exp_lut, exp2_lut, log_lut, log2_lut,
-  powf_lut, expf_lut, exp2f_lut, logf_lut, log2f_lut
+  dtoi32, murmurHash3,
+  ipow32, ipow64,
+  mod32, mod64,
+  acos32, acos64,
+  acosh32, acosh64,
+  asin32, asin64,
+  asinh32, asinh64,
+  atan32, atan64,
+  atanh32, atanh64,
+  atan2_32, atan2_64,
+  cbrt32, cbrt64,
+  cos32, cos64,
+  cosh32, cosh64,
+  exp32, exp64,
+  expm1_32, expm1_64,
+  log32, log64,
+  log1p32, log1p64,
+  log2_32, log2_64,
+  log10_32, log10_64,
+  hypot32, hypot64,
+  pow32, pow64,
+  sin32, sin64,
+  sinh32, sinh64,
+  tan32, tan64,
+  tanh32, tanh64,
+  sincos32, sincos64,
+  sincos_cos32, sincos_cos64,
+  exp2_32_lut, exp2_64_lut
 } from "./util/math";
 
 import {
@@ -27,390 +53,11 @@ import {
 //
 // Applies to all functions marked with a comment referring here.
 
-/** @internal */
 // @ts-ignore: decorator
-@lazy var rempio2_y0: f64, rempio2_y1: f64, res128_hi: u64;
-
-/** @internal */
-// @ts-ignore: decorator
-@lazy @inline const PIO2_TABLE = memory.data<u64>([
-  0x00000000A2F9836E, 0x4E441529FC2757D1, 0xF534DDC0DB629599, 0x3C439041FE5163AB,
-  0xDEBBC561B7246E3A, 0x424DD2E006492EEA, 0x09D1921CFE1DEB1C, 0xB129A73EE88235F5,
-  0x2EBB4484E99C7026, 0xB45F7E413991D639, 0x835339F49C845F8B, 0xBDF9283B1FF897FF,
-  0xDE05980FEF2F118B, 0x5A0A6D1F6D367ECF, 0x27CB09B74F463F66, 0x9E5FEA2D7527BAC7,
-  0xEBE5F17B3D0739F7, 0x8A5292EA6BFB5FB1, 0x1F8D5D0856033046, 0xFC7B6BABF0CFBC20,
-  0x9AF4361DA9E39161, 0x5EE61B086599855F, 0x14A068408DFFD880, 0x4D73273106061557
-]);
-
-/** @internal */
-function R(z: f64): f64 { // Rational approximation of (asin(x)-x)/x^3
-  const                   // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above
-    pS0 = reinterpret<f64>(0x3FC5555555555555), //  1.66666666666666657415e-01
-    pS1 = reinterpret<f64>(0xBFD4D61203EB6F7D), // -3.25565818622400915405e-01
-    pS2 = reinterpret<f64>(0x3FC9C1550E884455), //  2.01212532134862925881e-01
-    pS3 = reinterpret<f64>(0xBFA48228B5688F3B), // -4.00555345006794114027e-02
-    pS4 = reinterpret<f64>(0x3F49EFE07501B288), //  7.91534994289814532176e-04
-    pS5 = reinterpret<f64>(0x3F023DE10DFDF709), //  3.47933107596021167570e-05
-    qS1 = reinterpret<f64>(0xC0033A271C8A2D4B), // -2.40339491173441421878e+00
-    qS2 = reinterpret<f64>(0x40002AE59C598AC8), //  2.02094576023350569471e+00
-    qS3 = reinterpret<f64>(0xBFE6066C1B8D0159), // -6.88283971605453293030e-01
-    qS4 = reinterpret<f64>(0x3FB3B8C5B12E9282); //  7.70381505559019352791e-02
-
-  var p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5)))));
-  var q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4)));
-  return p / q;
-}
-
-/** @internal */
-// @ts-ignore: decorator
-@inline
-function expo2(x: f64, sign: f64): f64 { // exp(x)/2 for x >= log(DBL_MAX)
-  const                       // see: musl/src/math/__expo2.c
-    k    = <u32>2043,
-    kln2 = reinterpret<f64>(0x40962066151ADD8B); // 0x1.62066151add8bp+10
-  var scale = reinterpret<f64>(<u64>((<u32>0x3FF + k / 2) << 20) << 32);
-  // in directed rounding correct sign before rounding or overflow is important
-  return NativeMath.exp(x - kln2) * (sign * scale) * scale;
-}
-
-/** @internal */
-/* Helper function to eventually get bits of π/2 * |x|
- *
- * y = π/4 * (frac << clz(frac) >> 11)
- * return clz(frac)
- *
- * Right shift 11 bits to make upper half fit in `double`
- */
-// @ts-ignore: decorator
-@inline
-function pio2_right(q0: u64, q1: u64): u64 { // see: jdh8/metallic/blob/master/src/math/double/rem_pio2.c
-  // Bits of π/4
-  const p0: u64 = 0xC4C6628B80DC1CD1;
-  const p1: u64 = 0xC90FDAA22168C234;
-
-  const Ox1p_64 = reinterpret<f64>(0x3BF0000000000000); // 0x1p-64
-  const Ox1p_75 = reinterpret<f64>(0x3B40000000000000); // 0x1p-75
-
-  var shift = clz(q1);
-
-  q1 = q1 << shift | q0 >> (64 - shift);
-  q0 <<= shift;
-
-  var lo = umuldi(p1, q1);
-  var hi = res128_hi;
-
-  var ahi = hi >> 11;
-  var alo = lo >> 11 | hi << 53;
-  var blo = <u64>(Ox1p_75 * <f64>p0 * <f64>q1 + Ox1p_75 * <f64>p1 * <f64>q0);
-
-  rempio2_y0 = <f64>(ahi + u64(lo < blo));
-  rempio2_y1 = Ox1p_64 * <f64>(alo + blo);
-
-  return shift;
-}
-
-/** @internal */
-// @ts-ignore: decorator
-@inline
-function umuldi(u: u64, v: u64): u64 {
-  var u1: u64 , v1: u64, w0: u64, w1: u64, t: u64;
-
-  u1 = u & 0xFFFFFFFF;
-  v1 = v & 0xFFFFFFFF;
-
-  u >>= 32;
-  v >>= 32;
-
-  t  = u1 * v1;
-  w0 = t & 0xFFFFFFFF;
-  t  = u * v1 + (t >> 32);
-  w1 = t >> 32;
-  t  = u1 * v + (t & 0xFFFFFFFF);
-
-  res128_hi = u * v + w1 + (t >> 32);
-  return (t << 32) + w0;
-}
-
-/** @internal */
-function pio2_large_quot(x: f64, u: i64): i32 { // see: jdh8/metallic/blob/master/src/math/double/rem_pio2.c
-  var magnitude = u & 0x7FFFFFFFFFFFFFFF;
-  var offset = (magnitude >> 52) - 1045;
-  var shift  = offset & 63;
-  var tblPtr = PIO2_TABLE + (<i32>(offset >> 6) << 3);
-  var s0: u64, s1: u64, s2: u64;
-
-  var b0 = load<u64>(tblPtr, 0 << 3);
-  var b1 = load<u64>(tblPtr, 1 << 3);
-  var b2 = load<u64>(tblPtr, 2 << 3);
-
-  // Get 192 bits of 0x1p-31 / π with `offset` bits skipped
-  if (shift) {
-    let rshift = 64 - shift;
-    let b3 = load<u64>(tblPtr, 3 << 3);
-    s0 = b1 >> rshift | b0 << shift;
-    s1 = b2 >> rshift | b1 << shift;
-    s2 = b3 >> rshift | b2 << shift;
-  } else {
-    s0 = b0;
-    s1 = b1;
-    s2 = b2;
-  }
-
-  var significand = (u & 0x000FFFFFFFFFFFFF) | 0x0010000000000000;
-
-  // First 128 bits of fractional part of x/(2π)
-  var blo = umuldi(s1, significand);
-  var bhi = res128_hi;
-
-  var ahi = s0 * significand;
-  var clo = (s2 >> 32) * (significand >> 32);
-  var plo = blo + clo;
-  var phi = ahi + bhi + u64(plo < clo);
-
-  // r: u128 = p << 2
-  var rlo = plo << 2;
-  var rhi = phi << 2 | plo >> 62;
-
-  // s: i128 = r >> 127
-  var slo = <i64>rhi >> 63;
-  var shi = slo >> 1;
-  var q   = (<i64>phi >> 62) - slo;
-
-  var shifter = 0x3CB0000000000000 - (pio2_right(rlo ^ slo, rhi ^ shi) << 52);
-  var signbit = (u ^ rhi) & 0x8000000000000000;
-  var coeff   = reinterpret<f64>(shifter | signbit);
-
-  rempio2_y0 *= coeff;
-  rempio2_y1 *= coeff;
-
-  return <i32>q;
-}
-
-/** @internal */
-// @ts-ignore: decorator
-@inline
-function rempio2(x: f64, u: u64, sign: i32): i32 {
-  const
-    pio2_1  = reinterpret<f64>(0x3FF921FB54400000), // 1.57079632673412561417e+00
-    pio2_1t = reinterpret<f64>(0x3DD0B4611A626331), // 6.07710050650619224932e-11
-    pio2_2  = reinterpret<f64>(0x3DD0B4611A600000), // 6.07710050630396597660e-11
-    pio2_2t = reinterpret<f64>(0x3BA3198A2E037073), // 2.02226624879595063154e-21
-    pio2_3  = reinterpret<f64>(0x3BA3198A2E000000), // 2.02226624871116645580e-21
-    pio2_3t = reinterpret<f64>(0x397B839A252049C1), // 8.47842766036889956997e-32
-    invpio2 = reinterpret<f64>(0x3FE45F306DC9C883); // 0.63661977236758134308
-
-  var ix = <u32>(u >> 32) & 0x7FFFFFFF;
-
-  if (ASC_SHRINK_LEVEL < 1) {
-    if (ix < 0x4002D97C) { // |x| < 3pi/4, special case with n=+-1
-      let q = 1, z: f64, y0: f64, y1: f64;
-      if (!sign) {
-        z = x - pio2_1;
-        if (ix != 0x3FF921FB) { // 33+53 bit pi is good enough
-          y0 = z - pio2_1t;
-          y1 = (z - y0) - pio2_1t;
-        } else { // near pi/2, use 33+33+53 bit pi
-          z -= pio2_2;
-          y0 = z - pio2_2t;
-          y1 = (z - y0) - pio2_2t;
-        }
-      } else { // negative x
-        z = x + pio2_1;
-        if (ix != 0x3FF921FB) { // 33+53 bit pi is good enough
-          y0 = z + pio2_1t;
-          y1 = (z - y0) + pio2_1t;
-        } else { // near pi/2, use 33+33+53 bit pi
-          z += pio2_2;
-          y0 = z + pio2_2t;
-          y1 = (z - y0) + pio2_2t;
-        }
-        q = -1;
-      }
-      rempio2_y0 = y0;
-      rempio2_y1 = y1;
-      return q;
-    }
-  }
-
-  if (ix < 0x413921FB) { // |x| ~< 2^20*pi/2 (1647099)
-    // Use precise Cody Waite scheme
-    let q  = nearest(x * invpio2);
-    let r  = x - q * pio2_1;
-    let w  = q * pio2_1t; // 1st round good to 85 bit
-    let j  = ix >> 20;
-    let y0 = r - w;
-    let hi = <u32>(reinterpret<u64>(y0) >> 32);
-    let i  = j - ((hi >> 20) & 0x7FF);
-
-    if (i > 16) { // 2nd iteration needed, good to 118
-      let t = r;
-      w  = q * pio2_2;
-      r  = t - w;
-      w  = q * pio2_2t - ((t - r) - w);
-      y0 = r - w;
-      hi = <u32>(reinterpret<u64>(y0) >> 32);
-      i = j - ((hi >> 20) & 0x7FF);
-      if (i > 49) { // 3rd iteration need, 151 bits acc
-        let t = r;
-        w  = q * pio2_3;
-        r  = t - w;
-        w  = q * pio2_3t - ((t - r) - w);
-        y0 = r - w;
-      }
-    }
-    let y1 = (r - y0) - w;
-    rempio2_y0 = y0;
-    rempio2_y1 = y1;
-    return <i32>q;
-  }
-  var q = pio2_large_quot(x, u);
-  return select(-q, q, sign);
-}
-
-/** @internal */
-// @ts-ignore: decorator
-@inline
-function sin_kern(x: f64, y: f64, iy: i32): f64 { // see: musl/tree/src/math/__sin.c
-  const
-    S1 = reinterpret<f64>(0xBFC5555555555549), // -1.66666666666666324348e-01
-    S2 = reinterpret<f64>(0x3F8111111110F8A6), //  8.33333333332248946124e-03
-    S3 = reinterpret<f64>(0xBF2A01A019C161D5), // -1.98412698298579493134e-04
-    S4 = reinterpret<f64>(0x3EC71DE357B1FE7D), //  2.75573137070700676789e-06
-    S5 = reinterpret<f64>(0xBE5AE5E68A2B9CEB), // -2.50507602534068634195e-08
-    S6 = reinterpret<f64>(0x3DE5D93A5ACFD57C); //  1.58969099521155010221e-10
-
-  var z = x * x;
-  var w = z * z;
-  var r = S2 + z * (S3 + z * S4) + z * w * (S5 + z * S6);
-  var v = z * x;
-  if (!iy) {
-    return x + v * (S1 + z * r);
-  } else {
-    return x - ((z * (0.5 * y - v * r) - y) - v * S1);
-  }
-}
-
-/** @internal */
-// @ts-ignore: decorator
-@inline
-function cos_kern(x: f64, y: f64): f64 { // see: musl/tree/src/math/__cos.c
-  const
-    C1 = reinterpret<f64>(0x3FA555555555554C), //  4.16666666666666019037e-02
-    C2 = reinterpret<f64>(0xBF56C16C16C15177), // -1.38888888888741095749e-03
-    C3 = reinterpret<f64>(0x3EFA01A019CB1590), //  2.48015872894767294178e-05
-    C4 = reinterpret<f64>(0xBE927E4F809C52AD), // -2.75573143513906633035e-07
-    C5 = reinterpret<f64>(0x3E21EE9EBDB4B1C4), //  2.08757232129817482790e-09
-    C6 = reinterpret<f64>(0xBDA8FAE9BE8838D4); // -1.13596475577881948265e-11
-
-  var z = x * x;
-  var w = z * z;
-  var r = z * (C1 + z * (C2 + z * C3)) + w * w * (C4 + z * (C5 + z * C6));
-  var hz = 0.5 * z;
-  w = 1.0 - hz;
-  return w + (((1.0 - w) - hz) + (z * r - x * y));
-}
-
-/** @internal */
-function tan_kern(x: f64, y: f64, iy: i32): f64 { // see: src/lib/msun/src/k_tan.c
-  const
-    T0  = reinterpret<f64>(0x3FD5555555555563), //  3.33333333333334091986e-01
-    T1  = reinterpret<f64>(0x3FC111111110FE7A), //  1.33333333333201242699e-01
-    T2  = reinterpret<f64>(0x3FABA1BA1BB341FE), //  5.39682539762260521377e-02
-    T3  = reinterpret<f64>(0x3F9664F48406D637), //  2.18694882948595424599e-02
-    T4  = reinterpret<f64>(0x3F8226E3E96E8493), //  8.86323982359930005737e-03
-    T5  = reinterpret<f64>(0x3F6D6D22C9560328), //  3.59207910759131235356e-03
-    T6  = reinterpret<f64>(0x3F57DBC8FEE08315), //  1.45620945432529025516e-03
-    T7  = reinterpret<f64>(0x3F4344D8F2F26501), //  5.88041240820264096874e-04
-    T8  = reinterpret<f64>(0x3F3026F71A8D1068), //  2.46463134818469906812e-04
-    T9  = reinterpret<f64>(0x3F147E88A03792A6), //  7.81794442939557092300e-05
-    T10 = reinterpret<f64>(0x3F12B80F32F0A7E9), //  7.14072491382608190305e-05
-    T11 = reinterpret<f64>(0xBEF375CBDB605373), // -1.85586374855275456654e-05
-    T12 = reinterpret<f64>(0x3EFB2A7074BF7AD4); //  2.59073051863633712884e-05
-
-  const
-    one    = reinterpret<f64>(0x3FF0000000000000), // 1.00000000000000000000e+00
-    pio4   = reinterpret<f64>(0x3FE921FB54442D18), // 7.85398163397448278999e-01
-    pio4lo = reinterpret<f64>(0x3C81A62633145C07); // 3.06161699786838301793e-17
-
-  var z: f64, r: f64, v: f64, w: f64, s: f64;
-  var hx = <i32>(reinterpret<u64>(x) >> 32); // high word of x
-  var ix = hx & 0x7FFFFFFF; // high word of |x|
-  var big = ix >= 0x3FE59428;
-  if (big) { // |x| >= 0.6744
-    if (hx < 0) { x = -x, y = -y; }
-    z = pio4 - x;
-    w = pio4lo - y;
-    x = z + w;
-    y = 0.0;
-  }
-  z = x * x;
-  w = z * z;
-  r = T1 + w * (T3 + w * (T5 + w * (T7 + w * (T9 + w * T11))));
-  v = z * (T2 + w * (T4 + w * (T6 + w * (T8 + w * (T10 + w * T12)))));
-  s = z * x;
-  r = y + z * (s * (r + v) + y);
-  r += T0 * s;
-  w = x + r;
-  if (big) {
-    v = iy;
-    return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r)));
-  }
-  if (iy == 1) return w;
-  var a: f64, t: f64;
-  z = w;
-  z = reinterpret<f64>(reinterpret<u64>(z) & 0xFFFFFFFF00000000);
-  v = r - (z - x);  // z + v = r + x
-  t = a = -one / w; // a = -1.0 / w
-  t = reinterpret<f64>(reinterpret<u64>(t) & 0xFFFFFFFF00000000);
-  s = one + t * z;
-  return t + a * (s + t * v);
-}
-
-/** @internal */
-function dtoi32(x: f64): i32 {
-  if (ASC_SHRINK_LEVEL > 0) {
-    const inv32 = 1.0 / 4294967296;
-    return <i32><i64>(x - 4294967296 * floor(x * inv32));
-  } else {
-    let result = 0;
-    let u = reinterpret<u64>(x);
-    let e = (u >> 52) & 0x7FF;
-    if (e <= 1023 + 30) {
-      result = <i32>x;
-    } else if (e <= 1023 + 30 + 53) {
-      let v = (u & ((<u64>1 << 52) - 1)) | (<u64>1 << 52);
-      v = v << e - 1023 - 52 + 32;
-      result = <i32>(v >> 32);
-      result = select<i32>(-result, result, u >> 63);
-    }
-    return result;
-  }
-}
-
-// @ts-ignore: decorator
-@lazy var random_seeded = false;
-
-// @ts-ignore: decorator
-@lazy var random_state0_64: u64, random_state1_64: u64;
-
-// @ts-ignore: decorator
-@lazy var random_state0_32: u32, random_state1_32: u32;
-
-function murmurHash3(h: u64): u64 { // Force all bits of a hash block to avalanche
-  h ^= h >> 33;                     // see: https://github.com/aappleby/smhasher
-  h *= 0xFF51AFD7ED558CCD;
-  h ^= h >> 33;
-  h *= 0xC4CEB9FE1A85EC53;
-  h ^= h >> 33;
-  return h;
-}
-
-function splitMix32(h: u32): u32 {
-  h += 0x6D2B79F5;
-  h  = (h ^ (h >> 15)) * (h | 1);
-  h ^= h + (h ^ (h >> 7)) * (h | 61);
-  return h ^ (h >> 14);
-}
+@lazy var
+  random_seeded = false,
+  random_state0_64: u64,
+  random_state1_64: u64;
 
 export namespace NativeMath {
 
@@ -455,961 +102,364 @@ export namespace NativeMath {
   export var sincos_cos: f64 = 0;
 
   // @ts-ignore: decorator
-  @inline export function abs(x: f64): f64 {
-    return builtin_abs<f64>(x);
+  @inline
+  export function abs<T extends number = f64>(x: T): T {
+    return builtin_abs<T>(x);
   }
 
-  export function acos(x: f64): f64 { // see: musl/src/math/acos.c and SUN COPYRIGHT NOTICE above
-    const
-      pio2_hi   = reinterpret<f64>(0x3FF921FB54442D18), // 1.57079632679489655800e+00
-      pio2_lo   = reinterpret<f64>(0x3C91A62633145C07), // 6.12323399573676603587e-17
-      Ox1p_120f = reinterpret<f32>(0x03800000);
-
-    var hx = <u32>(reinterpret<u64>(x) >> 32);
-    var ix = hx & 0x7FFFFFFF;
-    if (ix >= 0x3FF00000) {
-      let lx = <u32>reinterpret<u64>(x);
-      if ((ix - 0x3FF00000 | lx) == 0) {
-        if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;
-        return 0;
+  // @ts-ignore: decorator
+  @inline
+  export function acos<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>acos32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>acos64(x);
       }
-      return 0 / (x - x);
-    }
-    if (ix < 0x3FE00000) {
-      if (ix <= 0x3C600000) return pio2_hi + Ox1p_120f;
-      return pio2_hi - (x - (pio2_lo - x * R(x * x)));
-    }
-    var s: f64, w: f64, z: f64;
-    if (hx >> 31) {
-      // z = (1.0 + x) * 0.5;
-      z = 0.5 + x * 0.5;
-      s = builtin_sqrt<f64>(z);
-      w = R(z) * s - pio2_lo;
-      return 2 * (pio2_hi - (s + w));
     }
-    // z = (1.0 - x) * 0.5;
-    z = 0.5 - x * 0.5;
-    s = builtin_sqrt<f64>(z);
-    var df = reinterpret<f64>(reinterpret<u64>(s) & 0xFFFFFFFF00000000);
-    var c = (z - df * df) / (s + df);
-    w = R(z) * s + c;
-    return 2 * (df + w);
-  }
-
-  export function acosh(x: f64): f64 { // see: musl/src/math/acosh.c
-    const s = reinterpret<f64>(0x3FE62E42FEFA39EF);
-    var u = reinterpret<u64>(x);
-    // Prevent propagation for all input values less than 1.0.
-    // Note musl lib didn't fix this yet.
-    if (<i64>u < 0x3FF0000000000000) return (x - x) / 0.0;
-    var e = u >> 52 & 0x7FF;
-    if (e < 0x3FF + 1) return log1p(x - 1 + builtin_sqrt<f64>((x - 1) * (x - 1) + 2 * (x - 1)));
-    if (e < 0x3FF + 26) return log(2 * x - 1 / (x + builtin_sqrt<f64>(x * x - 1)));
-    return log(x) + s;
+    return ERROR("Math.acos accept only f32 or f64 types");
   }
 
-  export function asin(x: f64): f64 { // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above
-    const
-      pio2_hi   = reinterpret<f64>(0x3FF921FB54442D18), // 1.57079632679489655800e+00
-      pio2_lo   = reinterpret<f64>(0x3C91A62633145C07), // 6.12323399573676603587e-17
-      Ox1p_120f = reinterpret<f32>(0x03800000);
-
-    var hx = <u32>(reinterpret<u64>(x) >> 32);
-    var ix = hx & 0x7FFFFFFF;
-    if (ix >= 0x3FF00000) {
-      let lx = <u32>reinterpret<u64>(x);
-      if ((ix - 0x3FF00000 | lx) == 0) return x * pio2_hi + Ox1p_120f;
-      return 0 / (x - x);
-    }
-    if (ix < 0x3FE00000) {
-      if (ix < 0x3E500000 && ix >= 0x00100000) return x;
-      return x + x * R(x * x);
-    }
-    // var z = (1.0 - builtin_abs<f64>(x)) * 0.5;
-    var z = 0.5 - builtin_abs<f64>(x) * 0.5;
-    var s = builtin_sqrt<f64>(z);
-    var r = R(z);
-    if (ix >= 0x3FEF3333) x = pio2_hi - (2 * (s + s * r) - pio2_lo);
-    else {
-      let f = reinterpret<f64>(reinterpret<u64>(s) & 0xFFFFFFFF00000000);
-      let c = (z - f * f) / (s + f);
-      x = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f));
+  // @ts-ignore: decorator
+  @inline
+  export function acosh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>acosh32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>acosh64(x);
+      }
     }
-    if (hx >> 31) return -x;
-    return x;
+    return ERROR("Math.acosh accept only f32 or f64 types");
   }
 
-  export function asinh(x: f64): f64 { // see: musl/src/math/asinh.c
-    const c = reinterpret<f64>(0x3FE62E42FEFA39EF); // 0.693147180559945309417232121458176568
-    var u = reinterpret<u64>(x);
-    var e = u >> 52 & 0x7FF;
-    var y = reinterpret<f64>(u & 0x7FFFFFFFFFFFFFFF);
-    if (e >= 0x3FF + 26) y = log(y) + c;
-    else if (e >= 0x3FF + 1)  y =   log(2 * y + 1 / (builtin_sqrt<f64>(y * y + 1) + y));
-    else if (e >= 0x3FF - 26) y = log1p(y + y * y / (builtin_sqrt<f64>(y * y + 1) + 1));
-    return builtin_copysign(y, x);
-  }
-
-  export function atan(x: f64): f64 { // see musl/src/math/atan.c and SUN COPYRIGHT NOTICE above
-    const
-      atanhi0   = reinterpret<f64>(0x3FDDAC670561BB4F), //  4.63647609000806093515e-01
-      atanhi1   = reinterpret<f64>(0x3FE921FB54442D18), //  7.85398163397448278999e-01
-      atanhi2   = reinterpret<f64>(0x3FEF730BD281F69B), //  9.82793723247329054082e-01
-      atanhi3   = reinterpret<f64>(0x3FF921FB54442D18), //  1.57079632679489655800e+00
-      atanlo0   = reinterpret<f64>(0x3C7A2B7F222F65E2), //  2.26987774529616870924e-17
-      atanlo1   = reinterpret<f64>(0x3C81A62633145C07), //  3.06161699786838301793e-17
-      atanlo2   = reinterpret<f64>(0x3C7007887AF0CBBD), //  1.39033110312309984516e-17
-      atanlo3   = reinterpret<f64>(0x3C91A62633145C07), //  6.12323399573676603587e-17
-      aT0       = reinterpret<f64>(0x3FD555555555550D), //  3.33333333333329318027e-01
-      aT1       = reinterpret<f64>(0xBFC999999998EBC4), // -1.99999999998764832476e-01
-      aT2       = reinterpret<f64>(0x3FC24924920083FF), //  1.42857142725034663711e-01
-      aT3       = reinterpret<f64>(0xBFBC71C6FE231671), // -1.11111104054623557880e-01,
-      aT4       = reinterpret<f64>(0x3FB745CDC54C206E), //  9.09088713343650656196e-02
-      aT5       = reinterpret<f64>(0xBFB3B0F2AF749A6D), // -7.69187620504482999495e-02
-      aT6       = reinterpret<f64>(0x3FB10D66A0D03D51), //  6.66107313738753120669e-02
-      aT7       = reinterpret<f64>(0xBFADDE2D52DEFD9A), // -5.83357013379057348645e-02
-      aT8       = reinterpret<f64>(0x3FA97B4B24760DEB), //  4.97687799461593236017e-02
-      aT9       = reinterpret<f64>(0xBFA2B4442C6A6C2F), // -3.65315727442169155270e-02
-      aT10      = reinterpret<f64>(0x3F90AD3AE322DA11), //  1.62858201153657823623e-02
-      Ox1p_120f = reinterpret<f32>(0x03800000);
-
-    var ix = <u32>(reinterpret<u64>(x) >> 32);
-    var sx = x;
-    ix &= 0x7FFFFFFF;
-    var z: f64;
-    if (ix >= 0x44100000) {
-      if (isNaN(x)) return x;
-      z = atanhi3 + Ox1p_120f;
-      return builtin_copysign<f64>(z, sx);
-    }
-    var id: i32;
-    if (ix < 0x3FDC0000) {
-      if (ix < 0x3E400000) return x;
-      id = -1;
-    } else {
-      x = builtin_abs<f64>(x);
-      if (ix < 0x3FF30000) {
-        if (ix < 0x3FE60000) {
-          id = 0;
-          x = (2.0 * x - 1.0) / (2.0 + x);
-        } else {
-          id = 1;
-          x = (x - 1.0) / (x + 1.0);
-        }
-      } else {
-        if (ix < 0x40038000) {
-          id = 2;
-          x = (x - 1.5) / (1.0 + 1.5 * x);
-        } else {
-          id = 3;
-          x = -1.0 / x;
-        }
+  // @ts-ignore: decorator
+  @inline
+  export function asin<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>asin32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>asin64(x);
       }
     }
-    z = x * x;
-    var w = z * z;
-    var s1 = z * (aT0 + w * (aT2 + w * (aT4 + w * (aT6 + w * (aT8 + w * aT10)))));
-    var s2 = w * (aT1 + w * (aT3 + w * (aT5 + w * (aT7 + w * aT9))));
-    var s3 = x * (s1 + s2);
-    if (id < 0) return x - s3;
-    switch (id) {
-      case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }
-      case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }
-      case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }
-      case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }
-      default: unreachable();
-    }
-    return builtin_copysign<f64>(z, sx);
+    return ERROR("Math.asin accept only f32 or f64 types");
   }
 
-  export function atanh(x: f64): f64 { // see: musl/src/math/atanh.c
-    var u = reinterpret<u64>(x);
-    var e = u >> 52 & 0x7FF;
-    var y = builtin_abs(x);
-    if (e < 0x3FF - 1) {
-      if (e >= 0x3FF - 32) y = 0.5 * log1p(2 * y + 2 * y * y / (1 - y));
-    } else {
-      y = 0.5 * log1p(2 * (y / (1 - y)));
+  // @ts-ignore: decorator
+  @inline
+  export function asinh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>asinh32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>asinh64(x);
+      }
     }
-    return builtin_copysign<f64>(y, x);
+    return ERROR("Math.asinh accept only f32 or f64 types");
   }
 
-  export function atan2(y: f64, x: f64): f64 { // see: musl/src/math/atan2.c and SUN COPYRIGHT NOTICE above
-    const pi_lo = reinterpret<f64>(0x3CA1A62633145C07); // 1.2246467991473531772E-16
-    if (isNaN(x) || isNaN(y)) return x + y;
-    var u = reinterpret<u64>(x);
-    var ix = <u32>(u >> 32);
-    var lx = <u32>u;
-    u = reinterpret<u64>(y);
-    var iy = <u32>(u >> 32);
-    var ly = <u32>u;
-    if ((ix - 0x3FF00000 | lx) == 0) return atan(y);
-    var m = ((iy >> 31) & 1) | ((ix >> 30) & 2);
-    ix = ix & 0x7FFFFFFF;
-    iy = iy & 0x7FFFFFFF;
-    if ((iy | ly) == 0) {
-      switch (m) {
-        case 0:
-        case 1: return  y;
-        case 2: return  PI;
-        case 3: return -PI;
+  // @ts-ignore: decorator
+  @inline
+  export function atan<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>atan32(x);
       }
-    }
-    if ((ix | lx) == 0) return m & 1 ? -PI / 2 : PI / 2;
-    if (ix == 0x7FF00000) {
-      if (iy == 0x7FF00000) {
-        let t = m & 2 ? 3 * PI / 4 : PI / 4;
-        return m & 1 ? -t : t;
-      } else {
-        let t = m & 2 ? PI : 0;
-        return m & 1 ? -t : t;
+      if (sizeof<T>() == 8) {
+        return <T>atan64(x);
       }
     }
-    var z: f64;
-    if (ix + (64 << 20) < iy || iy == 0x7FF00000) return m & 1 ? -PI / 2 : PI / 2;
-    if ((m & 2) && iy + (64 << 20) < ix) z = 0;
-    else z = atan(builtin_abs<f64>(y / x));
-    switch (m) {
-      case 0: return  z;
-      case 1: return -z;
-      case 2: return PI - (z - pi_lo);
-      case 3: return (z - pi_lo) - PI;
-    }
-    unreachable();
-    return 0;
+    return ERROR("Math.atan accept only f32 or f64 types");
   }
 
-  export function cbrt(x: f64): f64 { // see: musl/src/math/cbrt.c and SUN COPYRIGHT NOTICE above
-    const
-      B1     = <u32>715094163,
-      B2     = <u32>696219795,
-      P0     = reinterpret<f64>(0x3FFE03E60F61E692), //  1.87595182427177009643
-      P1     = reinterpret<f64>(0xBFFE28E092F02420), // -1.88497979543377169875
-      P2     = reinterpret<f64>(0x3FF9F1604A49D6C2), //  1.621429720105354466140
-      P3     = reinterpret<f64>(0xBFE844CBBEE751D9), // -0.758397934778766047437
-      P4     = reinterpret<f64>(0x3FC2B000D4E4EDD7), //  0.145996192886612446982
-      Ox1p54 = reinterpret<f64>(0x4350000000000000); //  0x1p54
-
-    var u = reinterpret<u64>(x);
-    var hx = <u32>(u >> 32) & 0x7FFFFFFF;
-    if (hx >= 0x7FF00000) return x + x;
-    if (hx < 0x00100000) {
-      u = reinterpret<u64>(x * Ox1p54);
-      hx = <u32>(u >> 32) & 0x7FFFFFFF;
-      if (hx == 0) return x;
-      hx = hx / 3 + B2;
-    } else {
-      hx = hx / 3 + B1;
+  // @ts-ignore: decorator
+  @inline
+  export function atanh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>atanh32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>atanh64(x);
+      }
     }
-    u &= 1 << 63;
-    u |= <u64>hx << 32;
-    var t = reinterpret<f64>(u);
-    var r = (t * t) * (t / x);
-    t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4));
-    t = reinterpret<f64>((reinterpret<u64>(t) + 0x80000000) & 0xFFFFFFFFC0000000);
-    var s = t * t;
-    r = x / s;
-    r = (r - t) / (2 * t + r);
-    t = t + t * r;
-    return t;
+    return ERROR("Math.atanh accept only f32 or f64 types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function ceil(x: f64): f64 {
-    return builtin_ceil<f64>(x);
-  }
-
-  export function clz32(x: f64): f64 {
-    if (!isFinite(x)) return 32;
-    /*
-     * Wasm (MVP) and JS have different approaches for double->int conversions.
-     *
-     * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
-     * our float-point arguments before actual convertion to integers.
-     */
-    return builtin_clz(dtoi32(x));
-  }
-
-  export function cos(x: f64): f64 { // see: musl/src/math/cos.c
-    var u  = reinterpret<u64>(x);
-    var ix = <u32>(u >> 32);
-    var sign = ix >> 31;
-
-    ix &= 0x7FFFFFFF;
-
-    // |x| ~< pi/4
-    if (ix <= 0x3FE921FB) {
-      if (ix < 0x3E46A09E) {  // |x| < 2**-27 * sqrt(2)
-        return 1.0;
+  export function atan2<T extends number = f64>(x: T, y: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>atan2_32(x, y);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>atan2_64(x, y);
       }
-      return cos_kern(x, 0);
     }
-
-    // sin(Inf or NaN) is NaN
-    if (ix >= 0x7FF00000) return x - x;
-
-    // argument reduction needed
-    var n  = rempio2(x, u, sign);
-    var y0 = rempio2_y0;
-    var y1 = rempio2_y1;
-
-    x = n & 1 ? sin_kern(y0, y1, 1) : cos_kern(y0, y1);
-    return (n + 1) & 2 ? -x : x;
+    return ERROR("Math.atan2 accept only f32 or f64 types");
   }
 
-  export function cosh(x: f64): f64 { // see: musl/src/math/cosh.c
-    var u = reinterpret<u64>(x);
-    u &= 0x7FFFFFFFFFFFFFFF;
-    x = reinterpret<f64>(u);
-    var w = <u32>(u >> 32);
-    var t: f64;
-    if (w < 0x3FE62E42) {
-      if (w < 0x3FF00000 - (26 << 20)) return 1;
-      t = expm1(x);
-      // return 1 + t * t / (2 * (1 + t));
-      return 1 + t * t / (2 + 2 * t);
-    }
-    if (w < 0x40862E42) {
-      t = exp(x);
-      return 0.5 * (t + 1 / t);
+  // @ts-ignore: decorator
+  @inline
+  export function cbrt<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>cbrt32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>cbrt64(x);
+      }
     }
-    t = expo2(x, 1);
-    return t;
+    return ERROR("Math.cbrt accept only f32 or f64 types");
   }
 
-  export function exp(x: f64): f64 { // see: musl/src/math/exp.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return exp_lut(x);
+  // @ts-ignore: decorator
+  @inline
+  export function ceil<T extends number = f64>(x: T): T {
+    if (isInteger<T>()) {
+      return x;
+    } else if (isFloat<T>()) {
+      return builtin_ceil<T>(x);
     } else {
-      const
-        ln2hi     = reinterpret<f64>(0x3FE62E42FEE00000), //  6.93147180369123816490e-01
-        ln2lo     = reinterpret<f64>(0x3DEA39EF35793C76), //  1.90821492927058770002e-10
-        invln2    = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
-        P1        = reinterpret<f64>(0x3FC555555555553E), //  1.66666666666666019037e-01
-        P2        = reinterpret<f64>(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03
-        P3        = reinterpret<f64>(0x3F11566AAF25DE2C), //  6.61375632143793436117e-05
-        P4        = reinterpret<f64>(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06
-        P5        = reinterpret<f64>(0x3E66376972BEA4D0), //  4.13813679705723846039e-08
-        overflow  = reinterpret<f64>(0x40862E42FEFA39EF), //  709.782712893383973096
-        underflow = reinterpret<f64>(0xC0874910D52D3051), // -745.13321910194110842
-        Ox1p1023  = reinterpret<f64>(0x7FE0000000000000); //  0x1p1023
+      return ERROR("Math.ceil accept only numeric types");
+    }
+  }
+
+  export function clz32<T extends number = f64>(x: T): i32 {
+    if (isInteger<T>()) {
+      return builtin_clz(i32(x));
+    } else if (isFloat<T>()) {
+      if (!isFinite<T>(x)) return 32;
+      /*
+      * Wasm (MVP) and JS have different approaches for double->int conversions.
+      *
+      * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
+      * our float-point arguments before actual convertion to integers.
+      */
+      return builtin_clz<i32>(dtoi32(f64(x)));
+    } else {
+      return ERROR("Math.clz32 accept only numeric types");
+    }
+  }
 
-      let hx = <u32>(reinterpret<u64>(x) >> 32);
-      let sign_ = <i32>(hx >> 31);
-      hx &= 0x7FFFFFFF;
-      if (hx >= 0x4086232B) {
-        if (isNaN(x)) return x;
-        if (x > overflow)  return x * Ox1p1023;
-        if (x < underflow) return 0;
+  // @ts-ignore: decorator
+  @inline
+  export function cos<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>cos32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>cos64(x);
       }
-      let hi: f64, lo: f64 = 0;
-      let k = 0;
-      if (hx > 0x3FD62E42) {
-        if (hx >= 0x3FF0A2B2) {
-          k = <i32>(invln2 * x + builtin_copysign<f64>(0.5, x));
-        } else {
-          k = 1 - (sign_ << 1);
-        }
-        hi = x - k * ln2hi;
-        lo = k * ln2lo;
-        x = hi - lo;
-      } else if (hx > 0x3E300000) {
-        hi = x;
-      } else return 1.0 + x;
-      let xs = x * x;
-      // var c = x - xp2 * (P1 + xp2 * (P2 + xp2 * (P3 + xp2 * (P4 + xp2 * P5))));
-      let xq = xs * xs;
-      let c = x - (xs * P1 + xq * ((P2 + xs * P3) + xq * (P4 + xs * P5)));
-      let y = 1.0 + (x * c / (2 - c) - lo + hi);
-      return k == 0 ? y : scalbn(y, k);
     }
+    return ERROR("Math.cos accept only f32 or f64 types");
   }
 
-  export function exp2(x: f64): f64 {
-    return exp2_lut(x);
+  // @ts-ignore: decorator
+  @inline
+  export function cosh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>cosh32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>cosh64(x);
+      }
+    }
+    return ERROR("Math.cosh accept only f32 or f64 types");
   }
 
-  export function expm1(x: f64): f64 { // see: musl/src/math/expm1.c and SUN COPYRIGHT NOTICE above
-    const
-      o_threshold = reinterpret<f64>(0x40862E42FEFA39EF), //  7.09782712893383973096e+02
-      ln2_hi      = reinterpret<f64>(0x3FE62E42FEE00000), //  6.93147180369123816490e-01
-      ln2_lo      = reinterpret<f64>(0x3DEA39EF35793C76), //  1.90821492927058770002e-10
-      invln2      = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
-      Q1          = reinterpret<f64>(0xBFA11111111110F4), // -3.33333333333331316428e-02
-      Q2          = reinterpret<f64>(0x3F5A01A019FE5585), //  1.58730158725481460165e-03
-      Q3          = reinterpret<f64>(0xBF14CE199EAADBB7), // -7.93650757867487942473e-05
-      Q4          = reinterpret<f64>(0x3ED0CFCA86E65239), //  4.00821782732936239552e-06
-      Q5          = reinterpret<f64>(0xBE8AFDB76E09C32D), // -2.01099218183624371326e-07
-      Ox1p1023    = reinterpret<f64>(0x7FE0000000000000); //  0x1p1023
-
-    var u = reinterpret<u64>(x);
-    var hx = <u32>(u >> 32 & 0x7FFFFFFF);
-    var k = 0, sign_ = <i32>(u >> 63);
-    if (hx >= 0x4043687A) {
-      if (isNaN(x)) return x;
-      if (sign_) return -1;
-      if (x > o_threshold) return x * Ox1p1023;
-    }
-    var c = 0.0, t: f64;
-    if (hx > 0x3FD62E42) {
-      k = select<i32>(
-        1 - (sign_ << 1),
-        <i32>(invln2 * x + builtin_copysign<f64>(0.5, x)),
-        hx < 0x3FF0A2B2
-      );
-      t = <f64>k;
-      let hi = x - t * ln2_hi;
-      let lo = t * ln2_lo;
-      x = hi - lo;
-      c = (hi - x) - lo;
-    } else if (hx < 0x3C900000) return x;
-    var hfx = 0.5 * x;
-    var hxs = x * hfx;
-    // var r1 = 1.0 + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5))));
-    var hxq = hxs * hxs;
-    var r1 = (1.0 + hxs * Q1) + hxq * ((Q2 + hxs * Q3) + hxq * (Q4 + hxs * Q5));
-    t = 3.0 - r1 * hfx;
-    var e = hxs * ((r1 - t) / (6.0 - x * t));
-    if (k == 0) return x - (x * e - hxs);
-    e = x * (e - c) - c;
-    e -= hxs;
-    if (k == -1) return 0.5 * (x - e) - 0.5;
-    if (k == 1) {
-      if (x < -0.25) return -2.0 * (e - (x + 0.5));
-      return 1.0 + 2.0 * (x - e);
-    }
-    u = (0x3FF + k) << 52;
-    var twopk = reinterpret<f64>(u);
-    var y: f64;
-    if (k < 0 || k > 56) {
-      y = x - e + 1.0;
-      if (k == 1024) y = y * 2.0 * Ox1p1023;
-      else y = y * twopk;
-      return y - 1.0;
+  // @ts-ignore: decorator
+  @inline
+  export function exp<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>exp32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>exp64(x);
+      }
     }
-    u = (0x3FF - k) << 52;
-    y = reinterpret<f64>(u);
-    if (k < 20) y = (1 - y) - e;
-    else y = 1 - (e + y);
-    return (x + y) * twopk;
+    return ERROR("Math.exp accept only f32 or f64 types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function floor(x: f64): f64 {
-    return builtin_floor<f64>(x);
+  export function exp2<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>exp2_32_lut(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>exp2_64_lut(x);
+      }
+    }
+    return ERROR("Math.exp2 accept only numeric types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function fround(x: f64): f64 {
-    return <f32>x;
+  export function expm1<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>expm1_32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>expm1_64(x);
+      }
+    }
+    return ERROR("Math.expm1 accept only numeric types");
   }
 
-  export function hypot(x: f64, y: f64): f64 { // see: musl/src/math/hypot.c
-    const
-      SPLIT    = reinterpret<f64>(0x41A0000000000000) + 1, // 0x1p27 + 1
-      Ox1p700  = reinterpret<f64>(0x6BB0000000000000),
-      Ox1p_700 = reinterpret<f64>(0x1430000000000000);
-
-    var ux = reinterpret<u64>(x);
-    var uy = reinterpret<u64>(y);
-    ux &= 0x7FFFFFFFFFFFFFFF;
-    uy &= 0x7FFFFFFFFFFFFFFF;
-    if (ux < uy) {
-      let ut = ux;
-      ux = uy;
-      uy = ut;
-    }
-    var ex = <i32>(ux >> 52);
-    var ey = <i32>(uy >> 52);
-    y = reinterpret<f64>(uy);
-    if (ey == 0x7FF) return y;
-    x = reinterpret<f64>(ux);
-    if (ex == 0x7FF || uy == 0) return x;
-    if (ex - ey > 64) return x + y;
-    var z = 1.0;
-    if (ex > 0x3FF + 510) {
-      z  = Ox1p700;
-      x *= Ox1p_700;
-      y *= Ox1p_700;
-    } else if (ey < 0x3FF - 450) {
-      z  = Ox1p_700;
-      x *= Ox1p700;
-      y *= Ox1p700;
+  // @ts-ignore: decorator
+  @inline
+  export function floor<T extends number = f64>(x: T): T {
+    if (isInteger<T>()) {
+      return x;
+    } else if (isFloat<T>()) {
+      return builtin_floor<T>(x);
+    } else {
+      return ERROR("Math.floor accept only numeric types");
     }
-    var c = x * SPLIT;
-    var h = x - c + c;
-    var l = x - h;
-    var hx = x * x;
-    var lx = h * h - hx + (2 * h + l) * l;
-    c = y * SPLIT;
-    h = y - c + c;
-    l = y - h;
-    var hy = y * y;
-    var ly = h * h - hy + (2 * h + l) * l;
-    return z * builtin_sqrt(ly + lx + hy + hx);
   }
 
-  export function imul(x: f64, y: f64): f64 {
-    /*
-     * Wasm (MVP) and JS have different approaches for double->int conversions.
-     *
-     * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
-     * our float-point arguments before actual convertion to integers.
-     */
-    if (!isFinite(x + y)) return 0;
-    return dtoi32(x) * dtoi32(y);
+  // @ts-ignore: decorator
+  @inline
+  export function fround<T extends number = f64>(x: T): f32 {
+    if (isFloat<T>()) {
+      return <f32>x;
+    } else {
+      return ERROR("Math.fround accept only f32 or f64 types");
+    }
   }
 
-  export function log(x: f64): f64 { // see: musl/src/math/log.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return log_lut(x);
+  // @ts-ignore: decorator
+  @inline
+  export function hypot<T extends number = f64>(x: T, y: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>hypot32(x, y);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>hypot64(x, y);
+      }
+    }
+    return ERROR("Math.hypot accept only f32 or f64 types");
+  }
+
+  export function imul<T extends number = f64>(x: T, y: T): T {
+    if (isInteger<T>()) {
+      return <T>(<i32>x * <i32>y);
+    } else if (isFloat<T>()) {
+      /*
+      * Wasm (MVP) and JS have different approaches for double->int conversions.
+      *
+      * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
+      * our float-point arguments before actual convertion to integers.
+      */
+      if (!isFinite(x + y)) return <T>0;
+      return <T>(dtoi32(x) * dtoi32(y));
     } else {
-      const
-        ln2_hi = reinterpret<f64>(0x3FE62E42FEE00000), // 6.93147180369123816490e-01
-        ln2_lo = reinterpret<f64>(0x3DEA39EF35793C76), // 1.90821492927058770002e-10
-        Lg1    = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
-        Lg2    = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
-        Lg3    = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
-        Lg4    = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
-        Lg5    = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
-        Lg6    = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
-        Lg7    = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
-        Ox1p54 = reinterpret<f64>(0x4350000000000000); // 0x1p54
+      return ERROR("Math.imul accept only numeric types");
+    }
+  }
 
-      let u = reinterpret<u64>(x);
-      let hx = <u32>(u >> 32);
-      let k = 0;
-      if (hx < 0x00100000 || <bool>(hx >> 31)) {
-        if (u << 1 == 0) return -1 / (x * x);
-        if (hx >> 31)    return (x - x) / 0.0;
-        k -= 54;
-        x *= Ox1p54;
-        u = reinterpret<u64>(x);
-        hx = <u32>(u >> 32);
-      } else if (hx >= 0x7FF00000) {
-        return x;
-      } else if (hx == 0x3FF00000 && u << 32 == 0) {
-        return 0;
+  // @ts-ignore: decorator
+  @inline
+  export function log<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>log32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>log64(x);
       }
-      hx += 0x3FF00000 - 0x3FE6A09E;
-      k += (<i32>hx >> 20) - 0x3FF;
-      hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
-      u = <u64>hx << 32 | (u & 0xFFFFFFFF);
-      x = reinterpret<f64>(u);
-      let f = x - 1.0;
-      let hfsq = 0.5 * f * f;
-      let s = f / (2.0 + f);
-      let z = s * s;
-      let w = z * z;
-      let t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
-      let t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
-      let r = t2 + t1;
-      let dk = <f64>k;
-      return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;
     }
+    return ERROR("Math.log accept only f32 or f64 types");
   }
 
-  export function log10(x: f64): f64 { // see: musl/src/math/log10.c and SUN COPYRIGHT NOTICE above
-    const
-      ivln10hi  = reinterpret<f64>(0x3FDBCB7B15200000), // 4.34294481878168880939e-01
-      ivln10lo  = reinterpret<f64>(0x3DBB9438CA9AADD5), // 2.50829467116452752298e-11
-      log10_2hi = reinterpret<f64>(0x3FD34413509F6000), // 3.01029995663611771306e-01
-      log10_2lo = reinterpret<f64>(0x3D59FEF311F12B36), // 3.69423907715893078616e-13
-      Lg1       = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
-      Lg2       = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
-      Lg3       = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
-      Lg4       = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
-      Lg5       = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
-      Lg6       = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
-      Lg7       = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
-      Ox1p54    = reinterpret<f64>(0x4350000000000000); // 0x1p54
-
-    var u = reinterpret<u64>(x);
-    var hx = <u32>(u >> 32);
-    var k = 0;
-    if (hx < 0x00100000 || <bool>(hx >> 31)) {
-      if (u << 1 == 0) return -1 / (x * x);
-      if (hx >> 31) return (x - x) / 0.0;
-      k -= 54;
-      x *= Ox1p54;
-      u = reinterpret<u64>(x);
-      hx = <u32>(u >> 32);
-    } else if (hx >= 0x7FF00000) {
-      return x;
-    } else if (hx == 0x3FF00000 && u << 32 == 0) {
-      return 0;
+  // @ts-ignore: decorator
+  @inline
+  export function log10<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>log10_32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>log10_64(x);
+      }
     }
-    hx += 0x3FF00000 - 0x3FE6A09E;
-    k += <i32>(hx >> 20) - 0x3FF;
-    hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
-    u = <u64>hx << 32 | (u & 0xFFFFFFFF);
-    x = reinterpret<f64>(u);
-    var f = x - 1.0;
-    var hfsq = 0.5 * f * f;
-    var s = f / (2.0 + f);
-    var z = s * s;
-    var w = z * z;
-    var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
-    var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
-    var r = t2 + t1;
-    var hi = f - hfsq;
-    u = reinterpret<u64>(hi);
-    u &= 0xFFFFFFFF00000000;
-    hi = reinterpret<f64>(u);
-    var lo = f - hi - hfsq + s * (hfsq + r);
-    var val_hi = hi * ivln10hi;
-    var dk = <f64>k;
-    var y = dk * log10_2hi;
-    var val_lo = dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi;
-    w = y + val_hi;
-    val_lo += (y - w) + val_hi;
-    return val_lo + w;
+    return ERROR("Math.log10 accept only f32 or f64 types");
   }
 
-  export function log1p(x: f64): f64 { // see: musl/src/math/log1p.c and SUN COPYRIGHT NOTICE above
-    const
-      ln2_hi = reinterpret<f64>(0x3FE62E42FEE00000), // 6.93147180369123816490e-01
-      ln2_lo = reinterpret<f64>(0x3DEA39EF35793C76), // 1.90821492927058770002e-10
-      Lg1    = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
-      Lg2    = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
-      Lg3    = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
-      Lg4    = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
-      Lg5    = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
-      Lg6    = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
-      Lg7    = reinterpret<f64>(0x3FC2F112DF3E5244); // 1.479819860511658591e-01
-
-    var u = reinterpret<u64>(x);
-    var hx = <u32>(u >> 32);
-    var k = 1;
-    var c = 0.0, f = 0.0;
-    if (hx < 0x3FDA827A || <bool>(hx >> 31)) {
-      if (hx >= 0xBFF00000) {
-        if (x == -1) return x / 0.0;
-        return (x - x) / 0.0;
+  // @ts-ignore: decorator
+  @inline
+  export function log1p<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>log1p32(x);
       }
-      if (hx << 1 < 0x3CA00000 << 1) return x;
-      if (hx <= 0xBFD2BEC4) {
-        k = 0;
-        c = 0;
-        f = x;
+      if (sizeof<T>() == 8) {
+        return <T>log1p64(x);
       }
-    } else if (hx >= 0x7FF00000) return x;
-    if (k) {
-      u = reinterpret<u64>(1 + x);
-      let hu = <u32>(u >> 32);
-      hu += 0x3FF00000 - 0x3FE6A09E;
-      k = <i32>(hu >> 20) - 0x3FF;
-      if (k < 54) {
-        let uf = reinterpret<f64>(u);
-        c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);
-        c /= uf;
-      } else c = 0;
-      hu = (hu & 0x000FFFFF) + 0x3FE6A09E;
-      u = <u64>hu << 32 | (u & 0xFFFFFFFF);
-      f = reinterpret<f64>(u) - 1;
     }
-    var hfsq = 0.5 * f * f;
-    var s = f / (2.0 + f);
-    var z = s * s;
-    var w = z * z;
-    var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
-    var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
-    var r = t2 + t1;
-    var dk = <f64>k;
-    return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;
+    return ERROR("Math.log1p accept only f32 or f64 types");
   }
 
-  export function log2(x: f64): f64 { // see: musl/src/math/log2.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return log2_lut(x);
-    } else {
-      const
-        ivln2hi = reinterpret<f64>(0x3FF7154765200000), // 1.44269504072144627571e+00
-        ivln2lo = reinterpret<f64>(0x3DE705FC2EEFA200), // 1.67517131648865118353e-10
-        Lg1     = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
-        Lg2     = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
-        Lg3     = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
-        Lg4     = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
-        Lg5     = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
-        Lg6     = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
-        Lg7     = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
-        Ox1p54  = reinterpret<f64>(0x4350000000000000); // 1p54
-
-      let u = reinterpret<u64>(x);
-      let hx = <u32>(u >> 32);
-      let k = 0;
-      if (hx < 0x00100000 || <bool>(hx >> 31)) {
-        if (u << 1 == 0) return -1 / (x * x);
-        if (hx >> 31) return (x - x) / 0.0;
-        k -= 54;
-        x *= Ox1p54;
-        u = reinterpret<u64>(x);
-        hx = <u32>(u >> 32);
-      } else if (hx >= 0x7FF00000) {
-        return x;
-      } else if (hx == 0x3FF00000 && u << 32 == 0) {
-        return 0;
+  // @ts-ignore: decorator
+  @inline
+  export function log2<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>log2_32(x);
       }
-      hx += 0x3FF00000 - 0x3FE6A09E;
-      k += <i32>(hx >> 20) - 0x3FF;
-      hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
-      u = <u64>hx << 32 | (u & 0xFFFFFFFF);
-      x = reinterpret<f64>(u);
-      let f = x - 1.0;
-      let hfsq = 0.5 * f * f;
-      let s = f / (2.0 + f);
-      let z = s * s;
-      let w = z * z;
-      let t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
-      let t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
-      let r = t2 + t1;
-      let hi = f - hfsq;
-      u = reinterpret<u64>(hi);
-      u &= 0xFFFFFFFF00000000;
-      hi = reinterpret<f64>(u);
-      let lo = f - hi - hfsq + s * (hfsq + r);
-      let val_hi = hi * ivln2hi;
-      let val_lo = (lo + hi) * ivln2lo + lo * ivln2hi;
-      let y = <f64>k;
-      w = y + val_hi;
-      val_lo += (y - w) + val_hi;
-      val_hi = w;
-      return val_lo + val_hi;
+      if (sizeof<T>() == 8) {
+        return <T>log2_64(x);
+      }
+    } else if (isInteger<T>()) {
+      return <T>(sizeof<native<T>>() * 8 - 1 - clz<T>(x));
     }
+    return ERROR("Math.log2 accept only numeric types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function max(value1: f64, value2: f64): f64 {
-    return builtin_max<f64>(value1, value2);
+  export function max<T extends number = f64>(a: T, b: T): T {
+    return builtin_max<T>(a, b);
   }
 
   // @ts-ignore: decorator
   @inline
-  export function min(value1: f64, value2: f64): f64 {
-    return builtin_min<f64>(value1, value2);
+  export function min<T extends number = f64>(a: T, b: T): T {
+    return builtin_min<T>(a, b);
   }
 
-  export function pow(x: f64, y: f64): f64 { // see: musl/src/math/pow.c and SUN COPYRIGHT NOTICE above
-    // TODO: remove this fast pathes after introduced own mid-end IR with "stdlib call simplify" transforms
-    if (builtin_abs<f64>(y) <= 2) {
-      if (y == 2.0) return x * x;
-      if (y == 0.5) {
-        return select<f64>(
-          builtin_abs<f64>(builtin_sqrt<f64>(x)),
-          Infinity,
-          x != -Infinity
-        );
-      }
-      if (y == -1.0) return 1 / x;
-      if (y == 1.0) return x;
-      if (y == 0.0) return 1.0;
-    }
-    if (ASC_SHRINK_LEVEL < 1) {
-      return pow_lut(x, y);
-    } else {
-      const
-        dp_h1   = reinterpret<f64>(0x3FE2B80340000000), //  5.84962487220764160156e-01
-        dp_l1   = reinterpret<f64>(0x3E4CFDEB43CFD006), //  1.35003920212974897128e-08
-        two53   = reinterpret<f64>(0x4340000000000000), //  9007199254740992.0
-        huge    = reinterpret<f64>(0x7E37E43C8800759C), //  1e+300
-        tiny    = reinterpret<f64>(0x01A56E1FC2F8F359), //  1e-300
-        L1      = reinterpret<f64>(0x3FE3333333333303), //  5.99999999999994648725e-01
-        L2      = reinterpret<f64>(0x3FDB6DB6DB6FABFF), //  4.28571428578550184252e-01
-        L3      = reinterpret<f64>(0x3FD55555518F264D), //  3.33333329818377432918e-01
-        L4      = reinterpret<f64>(0x3FD17460A91D4101), //  2.72728123808534006489e-01
-        L5      = reinterpret<f64>(0x3FCD864A93C9DB65), //  2.30660745775561754067e-01
-        L6      = reinterpret<f64>(0x3FCA7E284A454EEF), //  2.06975017800338417784e-01
-        P1      = reinterpret<f64>(0x3FC555555555553E), //  1.66666666666666019037e-01
-        P2      = reinterpret<f64>(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03
-        P3      = reinterpret<f64>(0x3F11566AAF25DE2C), //  6.61375632143793436117e-05
-        P4      = reinterpret<f64>(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06
-        P5      = reinterpret<f64>(0x3E66376972BEA4D0), //  4.13813679705723846039e-08
-        lg2     = reinterpret<f64>(0x3FE62E42FEFA39EF), //  6.93147180559945286227e-01
-        lg2_h   = reinterpret<f64>(0x3FE62E4300000000), //  6.93147182464599609375e-01
-        lg2_l   = reinterpret<f64>(0xBE205C610CA86C39), // -1.90465429995776804525e-09
-        ovt     = reinterpret<f64>(0x3C971547652B82FE), //  8.0085662595372944372e-017
-        cp      = reinterpret<f64>(0x3FEEC709DC3A03FD), //  9.61796693925975554329e-01
-        cp_h    = reinterpret<f64>(0x3FEEC709E0000000), //  9.61796700954437255859e-01
-        cp_l    = reinterpret<f64>(0xBE3E2FE0145B01F5), // -7.02846165095275826516e-09
-        ivln2   = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
-        ivln2_h = reinterpret<f64>(0x3FF7154760000000), //  1.44269502162933349609e+00
-        ivln2_l = reinterpret<f64>(0x3E54AE0BF85DDF44), //  1.92596299112661746887e-08
-        inv3    = reinterpret<f64>(0x3FD5555555555555); //  0.3333333333333333333333
-
-      let u_ = reinterpret<u64>(x);
-      let hx = <i32>(u_ >> 32);
-      let lx = <u32>u_;
-      u_ = reinterpret<u64>(y);
-      let hy = <i32>(u_ >> 32);
-      let ly = <u32>u_;
-      let ix = hx & 0x7FFFFFFF;
-      let iy = hy & 0x7FFFFFFF;
-      if ((iy | ly) == 0) return 1.0; // x**0 = 1, even if x is NaN
-      // if (hx == 0x3FF00000 && lx == 0) return 1.0; // C: 1**y = 1, even if y is NaN, JS: NaN
-      if ( // NaN if either arg is NaN
-        ix > 0x7FF00000 || (ix == 0x7FF00000 && lx != 0) ||
-        iy > 0x7FF00000 || (iy == 0x7FF00000 && ly != 0)
-      ) return x + y;
-      let yisint = 0, k: i32;
-      if (hx < 0) {
-        if (iy >= 0x43400000) yisint = 2;
-        else if (iy >= 0x3FF00000) {
-          k = (iy >> 20) - 0x3FF;
-          let offset = select<u32>(52, 20, k > 20) - k;
-          let Ly = select<u32>(ly, iy, k > 20);
-          let jj = Ly >> offset;
-          if ((jj << offset) == Ly) yisint = 2 - (jj & 1);
-        }
-      }
-      if (ly == 0) {
-        if (iy == 0x7FF00000) { // y is +-inf
-          if (((ix - 0x3FF00000) | lx) == 0) return NaN; // C: (-1)**+-inf is 1, JS: NaN
-          else if (ix >= 0x3FF00000) return hy >= 0 ? y : 0.0; // (|x|>1)**+-inf = inf,0
-          else return hy >= 0 ? 0.0 : -y; // (|x|<1)**+-inf = 0,inf
-        }
-        if (iy == 0x3FF00000) {
-          if (hy >= 0) return x;
-          return 1 / x;
-        }
-        if (hy == 0x40000000) return x * x;
-        if (hy == 0x3FE00000) {
-          if (hx >= 0) return builtin_sqrt(x);
-        }
-      }
-      let ax = builtin_abs<f64>(x), z: f64;
-      if (lx == 0) {
-        if (ix == 0 || ix == 0x7FF00000 || ix == 0x3FF00000) {
-          z = ax;
-          if (hy < 0) z = 1.0 / z;
-          if (hx < 0) {
-            if (((ix - 0x3FF00000) | yisint) == 0) {
-              let d = z - z;
-              z = d / d;
-            } else if (yisint == 1) z = -z;
-          }
-          return z;
-        }
-      }
-      let s = 1.0;
-      if (hx < 0) {
-        if (yisint == 0) {
-          let d = x - x;
-          return d / d;
-        }
-        if (yisint == 1) s = -1.0;
+  // @ts-ignore: decorator
+  @inline
+  export function pow<T extends number = f64>(x: T, y: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>pow32(x, y);
       }
-      let t1: f64, t2: f64, p_h: f64, p_l: f64, r: f64, t: f64, u: f64, v: f64, w: f64;
-      let j: i32, n: i32;
-      if (iy > 0x41E00000) {
-        if (iy > 0x43F00000) {
-          if (ix <= 0x3FEFFFFF) return hy < 0 ? huge * huge : tiny * tiny;
-          if (ix >= 0x3FF00000) return hy > 0 ? huge * huge : tiny * tiny;
-        }
-        if (ix < 0x3FEFFFFF) return hy < 0 ? s * huge * huge : s * tiny * tiny;
-        if (ix > 0x3FF00000) return hy > 0 ? s * huge * huge : s * tiny * tiny;
-        t = ax - 1.0;
-        w = (t * t) * (0.5 - t * (inv3 - t * 0.25));
-        u = ivln2_h * t;
-        v = t * ivln2_l - w * ivln2;
-        t1 = u + v;
-        t1 = reinterpret<f64>(reinterpret<u64>(t1) & 0xFFFFFFFF00000000);
-        t2 = v - (t1 - u);
-      } else {
-        let ss: f64, s2: f64, s_h: f64, s_l: f64, t_h: f64, t_l: f64;
-        n = 0;
-        if (ix < 0x00100000) {
-          ax *= two53;
-          n -= 53;
-          ix = <u32>(reinterpret<u64>(ax) >> 32);
-        }
-        n += (ix >> 20) - 0x3FF;
-        j = ix & 0x000FFFFF;
-        ix = j | 0x3FF00000;
-        if (j <= 0x3988E) k = 0;
-        else if (j < 0xBB67A) k = 1;
-        else {
-          k = 0;
-          n += 1;
-          ix -= 0x00100000;
-        }
-        ax = reinterpret<f64>(reinterpret<u64>(ax) & 0xFFFFFFFF | (<u64>ix << 32));
-        let bp = select<f64>(1.5, 1.0, k); // k ? 1.5 : 1.0
-        u = ax - bp;
-        v = 1.0 / (ax + bp);
-        ss = u * v;
-        s_h = ss;
-        s_h = reinterpret<f64>(reinterpret<u64>(s_h) & 0xFFFFFFFF00000000);
-        t_h = reinterpret<f64>(<u64>(((ix >> 1) | 0x20000000) + 0x00080000 + (k << 18)) << 32);
-        t_l = ax - (t_h - bp);
-        s_l = v * ((u - s_h * t_h) - s_h * t_l);
-        s2 = ss * ss;
-        r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6)))));
-        r += s_l * (s_h + ss);
-        s2 = s_h * s_h;
-        t_h = 3.0 + s2 + r;
-        t_h = reinterpret<f64>(reinterpret<u64>(t_h) & 0xFFFFFFFF00000000);
-        t_l = r - ((t_h - 3.0) - s2);
-        u = s_h * t_h;
-        v = s_l * t_h + t_l * ss;
-        p_h = u + v;
-        p_h = reinterpret<f64>(reinterpret<u64>(p_h) & 0xFFFFFFFF00000000);
-        p_l = v - (p_h - u);
-        let z_h = cp_h * p_h;
-        let dp_l = select<f64>(dp_l1, 0.0, k);
-        let z_l = cp_l * p_h + p_l * cp + dp_l;
-        t = <f64>n;
-        let dp_h = select<f64>(dp_h1, 0.0, k);
-        t1 = ((z_h + z_l) + dp_h) + t;
-        t1 = reinterpret<f64>(reinterpret<u64>(t1) & 0xFFFFFFFF00000000);
-        t2 = z_l - (((t1 - t) - dp_h) - z_h);
+      if (sizeof<T>() == 8) {
+        return <T>pow64(x, y);
       }
-      let y1 = y;
-      y1 = reinterpret<f64>(reinterpret<u64>(y1) & 0xFFFFFFFF00000000);
-      p_l = (y - y1) * t1 + y * t2;
-      p_h = y1 * t1;
-      z = p_l + p_h;
-      u_ = reinterpret<u64>(z);
-      j = <u32>(u_ >> 32);
-      let i = <i32>u_;
-      if (j >= 0x40900000) {
-        if (((j - 0x40900000) | i) != 0) return s * huge * huge;
-        if (p_l + ovt > z - p_h) return s * huge * huge;
-      } else if ((j & 0x7FFFFFFF) >= 0x4090CC00) {
-        if (((j - 0xC090CC00) | i) != 0) return s * tiny * tiny;
-        if (p_l <= z - p_h) return s * tiny * tiny;
+    } else if (isInteger<T>()) {
+      if (sizeof<T>() <= 4) {
+        return <T>ipow32(x, y);
       }
-      i = j & 0x7FFFFFFF;
-      k = (i >> 20) - 0x3FF;
-      n = 0;
-      if (i > 0x3FE00000) {
-        n = j + (0x00100000 >> (k + 1));
-        k = ((n & 0x7FFFFFFF) >> 20) - 0x3FF;
-        t = 0.0;
-        t = reinterpret<f64>(<u64>(n & ~(0x000FFFFF >> k)) << 32);
-        n = ((n & 0x000FFFFF) | 0x00100000) >> (20 - k);
-        if (j < 0) n = -n;
-        p_h -= t;
+      if (sizeof<T>() == 8) {
+        return <T>ipow64(x, y);
       }
-      t = p_l + p_h;
-      t = reinterpret<f64>(reinterpret<u64>(t) & 0xFFFFFFFF00000000);
-      u = t * lg2_h;
-      v = (p_l - (t - p_h)) * lg2 + t * lg2_l;
-      z = u + v;
-      w = v - (z - u);
-      t = z * z;
-      t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5))));
-      r = (z * t1) / (t1 - 2.0) - (w + z * w);
-      z = 1.0 - (r - z);
-      j = <u32>(reinterpret<u64>(z) >> 32);
-      j += n << 20;
-      if ((j >> 20) <= 0) z = scalbn(z, n);
-      else z = reinterpret<f64>(reinterpret<u64>(z) & 0xFFFFFFFF | (<u64>j << 32));
-      return s * z;
     }
+    return ERROR("Math.pow accept only numeric types");
   }
 
   export function seedRandom(value: i64): void {
@@ -1419,8 +469,6 @@ export namespace NativeMath {
     if (value == 0) value = 0x9e3779b97f4a7c15;
     random_state0_64 = murmurHash3(value);
     random_state1_64 = murmurHash3(~random_state0_64);
-    random_state0_32 = splitMix32(<u32>value);
-    random_state1_32 = splitMix32(random_state0_32);
     random_seeded = true;
   }
 
@@ -1440,1846 +488,166 @@ export namespace NativeMath {
 
   // @ts-ignore: decorator
   @inline
-  export function round(x: f64): f64 {
-    let roundUp = builtin_ceil<f64>(x);
-    return select<f64>(roundUp, roundUp - 1.0, roundUp - 0.5 <= x);
+  export function round<T extends number = f64>(x: T): T {
+    if (isInteger<T>()) {
+      return x;
+    } else if (isFloat<T>()) {
+      let roundUp = builtin_ceil<T>(x);
+      return select<T>(roundUp, <T>(roundUp - 1.0), roundUp - 0.5 <= x);
+    } else {
+      return ERROR("Math.round accept only numeric types");
+    }
   }
 
   // @ts-ignore: decorator
   @inline
-  export function sign(x: f64): f64 {
-    if (ASC_SHRINK_LEVEL > 0) {
-      return builtin_abs(x) > 0 ? builtin_copysign<f64>(1, x) : x;
+  export function sign<T extends number = f64>(x: T): T {
+    if (isInteger<T>()) {
+      if (isSigned<T>()) {
+        return <T>(x ? (x >> sizeof<T>() * 8 - 1) | 1 : 0);
+      } else {
+        return <T>(x ? 1 : 0);
+      }
+    } else if (isFloat<T>()) {
+      if (ASC_SHRINK_LEVEL > 0) {
+        return builtin_abs<T>(x) > 0 ? builtin_copysign<T>(<T>1, x) : x;
+      } else {
+        return <T>(x > 0 ? 1 : x < 0 ? -1 : x);
+      }
     } else {
-      return x > 0 ? 1 : x < 0 ? -1 : x;
+      return ERROR("Math.sign accept only numeric types");
     }
   }
 
   // @ts-ignore: decorator
   @inline
-  export function signbit(x: f64): bool {
-    return <bool>(reinterpret<u64>(x) >>> 63);
+  export function signbit<T extends number = f64>(x: T): bool {
+    if (isInteger<T>()) {
+      if (isSigned<T>()) {
+        return <bool>(x >>> sizeof<T>() * 8 - 1);
+      } else {
+        return false;
+      }
+    } else if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <bool>(reinterpret<u32>(x) >>> 31);
+      }
+      if (sizeof<T>() == 8) {
+        return <bool>(reinterpret<u64>(x) >>> 63);
+      }
+    }
+    return ERROR("Math.signbit accept only numeric types");
   }
 
-  export function sin(x: f64): f64 { // see: musl/src/math/sin.c
-    var u  = reinterpret<u64>(x);
-    var ix = <u32>(u >> 32);
-    var sign = ix >> 31;
-
-    ix &= 0x7FFFFFFF;
-
-    // |x| ~< pi/4
-    if (ix <= 0x3FE921FB) {
-      if (ix < 0x3E500000) { // |x| < 2**-26
-        return x;
+  // @ts-ignore: decorator
+  @inline
+  export function sin<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>sin32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>sin64(x);
       }
-      return sin_kern(x, 0.0, 0);
     }
-
-    // sin(Inf or NaN) is NaN
-    if (ix >= 0x7FF00000) return x - x;
-
-    // argument reduction needed
-    var n  = rempio2(x, u, sign);
-    var y0 = rempio2_y0;
-    var y1 = rempio2_y1;
-
-    x = n & 1 ? cos_kern(y0, y1) : sin_kern(y0, y1, 1);
-    return n & 2 ? -x : x;
+    return ERROR("Math.sin accept only f32 or f64 types");
   }
 
-  export function sinh(x: f64): f64 { // see: musl/src/math/sinh.c
-    var u = reinterpret<u64>(x) & 0x7FFFFFFFFFFFFFFF;
-    var a = reinterpret<f64>(u);
-    var w = <u32>(u >> 32);
-    var h = builtin_copysign(0.5, x);
-    if (w < 0x40862E42) {
-      let t = expm1(a);
-      if (w < 0x3FF00000) {
-        if (w < 0x3FF00000 - (26 << 20)) return x;
-        return h * (2 * t - t * t / (t + 1));
+  // @ts-ignore: decorator
+  @inline
+  export function sinh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>sinh32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>sinh64(x);
       }
-      return h * (t + t / (t + 1));
     }
-    return expo2(a, 2 * h);
+    return ERROR("Math.sinh accept only f32 or f64 types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function sqrt(x: f64): f64 {
-    return builtin_sqrt<f64>(x);
+  export function sqrt<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      return builtin_sqrt<T>(x);
+    } else {
+      return ERROR("Math.sqrt accept only f32 or f64 types");
+    }
   }
 
-  export function tan(x: f64): f64 { // see: musl/src/math/tan.c
-    var u = reinterpret<u64>(x);
-    var ix = <i32>(u >> 32);
-    var sign = ix >>> 31;
-
-    ix &= 0x7FFFFFFF;
-
-    // |x| ~< pi/4
-    if (ix <= 0x3FE921FB) {
-      if (ix < 0x3E400000) { // |x| < 2**-27
-        return x;
+  // @ts-ignore: decorator
+  @inline
+  export function tan<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>tan32(x);
+      }
+      if (sizeof<T>() == 8) {
+        return <T>tan64(x);
       }
-      return tan_kern(x, 0.0, 1);
     }
-
-    // tan(Inf or NaN) is NaN
-    if (ix >= 0x7FF00000) return x - x;
-
-    var n = rempio2(x, u, sign);
-    return tan_kern(rempio2_y0, rempio2_y1, 1 - ((n & 1) << 1));
+    return ERROR("Math.tan accept only f32 or f64 types");
   }
 
-  export function tanh(x: f64): f64 { // see: musl/src/math/tanh.c
-    var u = reinterpret<u64>(x);
-    u &= 0x7FFFFFFFFFFFFFFF;
-    var y = reinterpret<f64>(u);
-    var w = <u32>(u >> 32);
-    var t: f64;
-    if (w > 0x3FE193EA) {
-      if (w > 0x40340000) {
-        t = 1 - 0 / y;
-      } else {
-        t = expm1(2 * y);
-        t = 1 - 2 / (t + 2);
+  // @ts-ignore: decorator
+  @inline
+  export function tanh<T extends number = f64>(x: T): T {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>tanh32(x);
       }
-    } else if (w > 0x3FD058AE) {
-      t = expm1(2 * y);
-      t = t / (t + 2);
-    } else if (w >= 0x00100000) {
-      t = expm1(-2 * y);
-      t = -t / (t + 2);
-    } else t = y;
-    return builtin_copysign<f64>(t, x);
+      if (sizeof<T>() == 8) {
+        return <T>tanh64(x);
+      }
+    }
+    return ERROR("Math.tanh accept only f32 or f64 types");
   }
 
   // @ts-ignore: decorator
   @inline
-  export function trunc(x: f64): f64 {
-    return builtin_trunc<f64>(x);
+  export function trunc<T extends number = f64>(x: T): T {
+    if (isInteger<T>()) {
+      return x;
+    } else if (isFloat<T>()) {
+      return builtin_trunc<T>(x);
+    } else {
+      return ERROR("Math.trunc accept only numeric types");
+    }
   }
 
-  export function scalbn(x: f64, n: i32): f64 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbn.c
-    const
-      Ox1p53    = reinterpret<f64>(0x4340000000000000),
-      Ox1p1023  = reinterpret<f64>(0x7FE0000000000000),
-      Ox1p_1022 = reinterpret<f64>(0x0010000000000000);
-
-    var y = x;
-    if (n > 1023) {
-      y *= Ox1p1023;
-      n -= 1023;
-      if (n > 1023) {
-        y *= Ox1p1023;
-        n = builtin_min<i32>(n - 1023, 1023);
+  // @ts-ignore: decorator
+  @inline
+  export function mod<T extends number = f64>(x: T, y: T): T {
+    if (isInteger<T>()) {
+      return <T>(x % y);
+    } else if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        return <T>mod32(x, y);
       }
-    } else if (n < -1022) {
-      // make sure final n < -53 to avoid double
-      // rounding in the subnormal range
-      y *= Ox1p_1022 * Ox1p53;
-      n += 1022 - 53;
-      if (n < -1022) {
-        y *= Ox1p_1022 * Ox1p53;
-        n = builtin_max<i32>(n + 1022 - 53, -1022);
+      if (sizeof<T>() == 8) {
+        return <T>mod64(x, y);
       }
     }
-    return y * reinterpret<f64>(<u64>(0x3FF + n) << 52);
+    return ERROR("Math.mod accept only numeric types");
   }
 
-  export function mod(x: f64, y: f64): f64 { // see: musl/src/math/fmod.c
-    if (builtin_abs<f64>(y) == 1.0) {
-      // x % 1, x % -1  ==>  sign(x) * abs(x - 1.0 * trunc(x / 1.0))
-      // TODO: move this rule to compiler's optimization pass.
-      // It could be apply for any x % C_pot, where "C_pot" is pow of two const.
-      return builtin_copysign<f64>(x - builtin_trunc<f64>(x), x);
-    }
-    var ux = reinterpret<u64>(x);
-    var uy = reinterpret<u64>(y);
-    var ex = <i64>(ux >> 52 & 0x7FF);
-    var ey = <i64>(uy >> 52 & 0x7FF);
-    var sx = ux >> 63;
-    var uy1 = uy << 1;
-    if (uy1 == 0 || ex == 0x7FF || isNaN<f64>(y)) {
-      let m = x * y;
-      return m / m;
-    }
-    var ux1 = ux << 1;
-    if (ux1 <= uy1) {
-      return x * f64(ux1 != uy1);
-    }
-    if (!ex) {
-      ex -= builtin_clz<i64>(ux << 12);
-      ux <<= 1 - ex;
+  // @ts-ignore: decorator
+  @inline
+  export function sincos<T extends number = f64>(x: T): void {
+    if (isFloat<T>()) {
+      if (sizeof<T>() == 4) {
+        sincos_sin = <f64>sincos32(x);
+        sincos_cos = <f64>sincos_cos32;
+      } else if (sizeof<T>() == 8) {
+        sincos_sin = sincos64(x);
+        sincos_cos = sincos_cos64;
+      } else {
+        ERROR("Math.sincos accept only f32 or f64 types");
+      }
     } else {
-      ux &= <u64>-1 >> 12;
-      ux |= 1 << 52;
+      ERROR("Math.sincos accept only f32 or f64 types");
     }
-    if (!ey) {
-      ey -= builtin_clz<i64>(uy << 12);
-      uy <<= 1 - ey;
-    } else {
-      uy &= <u64>-1 >> 12;
-      uy |= 1 << 52;
-    }
-    while (ex > ey) {
-      if (ux >= uy) {
-        if (ux == uy) return 0 * x;
-        ux -= uy;
-      }
-      ux <<= 1;
-      --ex;
-    }
-    if (ux >= uy) {
-      if (ux == uy) return 0 * x;
-      ux -= uy;
-    }
-    // for (; !(ux >> 52); ux <<= 1) --ex;
-    var shift = builtin_clz<i64>(ux << 11);
-    ex -= shift;
-    ux <<= shift;
-    if (ex > 0) {
-      ux -= 1 << 52;
-      ux |= ex << 52;
-    } else {
-      ux >>= -ex + 1;
-    }
-    return reinterpret<f64>(ux | (sx << 63));
-  }
-
-  export function rem(x: f64, y: f64): f64 { // see: musl/src/math/remquo.c
-    var ux = reinterpret<u64>(x);
-    var uy = reinterpret<u64>(y);
-    var ex = <i64>(ux >> 52 & 0x7FF);
-    var ey = <i64>(uy >> 52 & 0x7FF);
-    var sx = <i32>(ux >> 63);
-    if (uy << 1 == 0 || ex == 0x7FF || isNaN(y)) {
-      let m = x * y;
-      return m / m;
-    }
-    if (ux << 1 == 0) return x;
-    var uxi = ux;
-    if (!ex) {
-      ex -= builtin_clz<i64>(uxi << 12);
-      uxi <<= 1 - ex;
-    } else {
-      uxi &= <u64>-1 >> 12;
-      uxi |= 1 << 52;
-    }
-    if (!ey) {
-      ey -= builtin_clz<i64>(uy << 12);
-      uy <<= 1 - ey;
-    } else {
-      uy &= <u64>-1 >> 12;
-      uy |= 1 << 52;
-    }
-    var q: u32 = 0;
-    do {
-      if (ex < ey) {
-        if (ex + 1 == ey) break; // goto end
-        return x;
-      }
-      while (ex > ey) {
-        if (uxi >= uy) {
-          uxi -= uy;
-          ++q;
-        }
-        uxi <<= 1;
-        q <<= 1;
-        --ex;
-      }
-      if (uxi >= uy) {
-        uxi -= uy;
-        ++q;
-      }
-      if (uxi == 0) ex = -60;
-      else {
-        let shift = builtin_clz<i64>(uxi << 11);
-        ex -= shift;
-        uxi <<= shift;
-      }
-      break;
-    } while (false);
-    // end:
-    if (ex > 0) {
-      uxi -= 1 << 52;
-      uxi |= ex << 52;
-    } else {
-      uxi >>= -ex + 1;
-    }
-    x = reinterpret<f64>(uxi);
-    y = builtin_abs<f64>(y);
-    var x2 = x + x;
-    if (ex == ey || (ex + 1 == ey && (x2 > y || (x2 == y && <bool>(q & 1))))) {
-      x -= y;
-      // ++q;
-    }
-    return sx ? -x : x;
-  }
-
-  export function sincos(x: f64): void { // see: musl/tree/src/math/sincos.c
-    var u = reinterpret<u64>(x);
-    var ix = <u32>(u >> 32);
-    var sign = ix >> 31;
-    ix &= 0x7FFFFFFF;
-
-    if (ix <= 0x3FE921FB) {  // |x| ~<= π/4
-      if (ix < 0x3E46A09E) { // if |x| < 2**-27 * sqrt(2)
-        sincos_sin = x;
-        sincos_cos = 1;
-        return;
-      }
-      sincos_sin = sin_kern(x, 0, 0);
-      sincos_cos = cos_kern(x, 0);
-      return;
-    }
-    // sin(Inf or NaN) is NaN
-    if (ix >= 0x7F800000) {
-      let xx = x - x;
-      sincos_sin = xx;
-      sincos_cos = xx;
-      return;
-    }
-    // general argument reduction needed
-    var n = rempio2(x, u, sign);
-    var y0 = rempio2_y0;
-    var y1 = rempio2_y1;
-    var s = sin_kern(y0, y1, 1);
-    var c = cos_kern(y0, y1);
-    var sin = s, cos = c;
-    if (n & 1) {
-      sin =  c;
-      cos = -s;
-    }
-    if (n & 2) {
-      sin = -sin;
-      cos = -cos;
-    }
-    sincos_sin = sin;
-    sincos_cos = cos;
-  }
-}
-
-// @ts-ignore: decorator
-@lazy var rempio2f_y: f64;
-
-// @ts-ignore: decorator
-@lazy @inline const PIO2F_TABLE = memory.data<u64>([
-  0xA2F9836E4E441529,
-  0xFC2757D1F534DDC0,
-  0xDB6295993C439041,
-  0xFE5163ABDEBBC561
-]);
-
-function Rf(z: f32): f32 { // Rational approximation of (asin(x)-x)/x^3
-  const                    // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above
-    pS0 = reinterpret<f32>(0x3E2AAA75), //  1.6666586697e-01f
-    pS1 = reinterpret<f32>(0xBD2F13BA), // -4.2743422091e-02f
-    pS2 = reinterpret<f32>(0xBC0DD36B), // -8.6563630030e-03f
-    qS1 = reinterpret<f32>(0xBF34E5AE); // -7.0662963390e-01f
-
-  var p = z * (pS0 + z * (pS1 + z * pS2));
-  var q: f32 = 1 + z * qS1;
-  return p / q;
-}
-
-// @ts-ignore: decorator
-@inline
-function expo2f(x: f32, sign: f32): f32 { // exp(x)/2 for x >= log(DBL_MAX)
-  const                                // see: musl/src/math/__expo2f.c
-    k    = <u32>235,
-    kln2 = reinterpret<f32>(0x4322E3BC); // 0x1.45c778p+7f
-  var scale = reinterpret<f32>(<u32>(0x7F + (k >> 1)) << 23);
-  // in directed rounding correct sign before rounding or overflow is important
-  return NativeMathf.exp(x - kln2) * (sign * scale) * scale;
-}
-
-// @ts-ignore: decorator
-@inline
-function pio2f_large_quot(x: f32, u: i32): i32 { // see: jdh8/metallic/blob/master/src/math/float/rem_pio2f.c
-  const coeff = reinterpret<f64>(0x3BF921FB54442D18); // π * 0x1p-65 = 8.51530395021638647334e-20
-
-  var offset = (u >> 23) - 152;
-  var shift  = <u64>(offset & 63);
-  var tblPtr = PIO2F_TABLE + (offset >> 6 << 3);
-
-  var b0 = load<u64>(tblPtr, 0 << 3);
-  var b1 = load<u64>(tblPtr, 1 << 3);
-  var lo: u64;
-
-  if (shift > 32) {
-    let b2 = load<u64>(tblPtr, 2 << 3);
-    lo  = b2 >> (96 - shift);
-    lo |= b1 << (shift - 32);
-  } else {
-    lo = b1 >> (32 - shift);
-  }
-
-  var hi = (b1 >> (64 - shift)) | (b0 << shift);
-  var mantissa: u64 = (u & 0x007FFFFF) | 0x00800000;
-  var product = mantissa * hi + (mantissa * lo >> 32);
-  var r: i64 = product << 2;
-  var q = <i32>((product >> 62) + (r >>> 63));
-  rempio2f_y = copysign<f64>(coeff, x) * <f64>r;
-  return q;
-}
-
-// @ts-ignore: decorator
-@inline
-function rempio2f(x: f32, u: u32, sign: i32): i32 { // see: jdh8/metallic/blob/master/src/math/float/rem_pio2f.c
-  const
-    pi2hi = reinterpret<f64>(0x3FF921FB50000000), // 1.57079631090164184570
-    pi2lo = reinterpret<f64>(0x3E5110B4611A6263), // 1.58932547735281966916e-8
-    _2_pi = reinterpret<f64>(0x3FE45F306DC9C883); // 0.63661977236758134308
-
-  if (u < 0x4DC90FDB) { // π * 0x1p28
-    let q = nearest(x * _2_pi);
-    rempio2f_y = x - q * pi2hi - q * pi2lo;
-    return <i32>q;
-  }
-
-  var q = pio2f_large_quot(x, u);
-  return select(-q, q, sign);
-}
-
-// |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]).
-// @ts-ignore: decorator
-@inline
-function sin_kernf(x: f64): f32 { // see: musl/tree/src/math/__sindf.c
-  const
-    S1 = reinterpret<f64>(0xBFC5555554CBAC77), // -0x15555554cbac77.0p-55
-    S2 = reinterpret<f64>(0x3F811110896EFBB2), //  0x111110896efbb2.0p-59
-    S3 = reinterpret<f64>(0xBF2A00F9E2CAE774), // -0x1a00f9e2cae774.0p-65
-    S4 = reinterpret<f64>(0x3EC6CD878C3B46A7); //  0x16cd878c3b46a7.0p-71
-
-  var z = x * x;
-  var w = z * z;
-  var r = S3 + z * S4;
-  var s = z * x;
-  return <f32>((x + s * (S1 + z * S2)) + s * w * r);
-}
-
-// |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]).
-// @ts-ignore: decorator
-@inline
-function cos_kernf(x: f64): f32 { // see: musl/tree/src/math/__cosdf.c
-  const
-    C0 = reinterpret<f64>(0xBFDFFFFFFD0C5E81), // -0x1ffffffd0c5e81.0p-54
-    C1 = reinterpret<f64>(0x3FA55553E1053A42), //  0x155553e1053a42.0p-57
-    C2 = reinterpret<f64>(0xBF56C087E80F1E27), // -0x16c087e80f1e27.0p-62
-    C3 = reinterpret<f64>(0x3EF99342E0EE5069); //  0x199342e0ee5069.0p-68
-
-  var z = x * x;
-  var w = z * z;
-  var r = C2 + z * C3;
-  return <f32>(((1 + z * C0) + w * C1) + (w * z) * r);
-}
-
-// |tan(x)/x - t(x)| < 2**-25.5 (~[-2e-08, 2e-08]).
-// @ts-ignore: decorator
-@inline
-function tan_kernf(x: f64, odd: i32): f32 { // see: musl/tree/src/math/__tandf.c
-  const
-    T0 = reinterpret<f64>(0x3FD5554D3418C99F), // 0x15554d3418c99f.0p-54
-    T1 = reinterpret<f64>(0x3FC112FD38999F72), // 0x1112fd38999f72.0p-55
-    T2 = reinterpret<f64>(0x3FAB54C91D865AFE), // 0x1b54c91d865afe.0p-57
-    T3 = reinterpret<f64>(0x3F991DF3908C33CE), // 0x191df3908c33ce.0p-58
-    T4 = reinterpret<f64>(0x3F685DADFCECF44E), // 0x185dadfcecf44e.0p-61
-    T5 = reinterpret<f64>(0x3F8362B9BF971BCD); // 0x1362b9bf971bcd.0p-59
-
-  var z = x * x;
-  var r = T4 + z * T5;
-  var t = T2 + z * T3;
-  var w = z * z;
-  var s = z * x;
-  var u = T0 + z * T1;
-
-  r = (x + s * u) + (s * w) * (t + w * r);
-  return <f32>(odd ? -1 / r : r);
-}
-
-// See: jdh8/metallic/src/math/float/log2f.c and jdh8/metallic/src/math/float/kernel/atanh.h
-// @ts-ignore: decorator
-@inline
-function log2f(x: f64): f64 {
-  const
-    log2e = reinterpret<f64>(0x3FF71547652B82FE), // 1.44269504088896340736
-    c0 = reinterpret<f64>(0x3FD555554FD9CAEF),    // 0.33333332822728226129
-    c1 = reinterpret<f64>(0x3FC999A7A8AF4132),    // 0.20000167595436263505
-    c2 = reinterpret<f64>(0x3FC2438D79437030),    // 0.14268654271188685375
-    c3 = reinterpret<f64>(0x3FBE2F663B001C97);    // 0.11791075649681414150
-
-  var i = reinterpret<i64>(x);
-  var exponent = (i - 0x3FE6A09E667F3BCD) >> 52;
-  x = reinterpret<f64>(i - (exponent << 52));
-  x = (x - 1) / (x + 1);
-  var xx = x * x;
-  var y = x + x * xx * (c0 + c1 * xx + (c2 + c3 * xx) * (xx * xx));
-  return (2 * log2e) * y + <f64>exponent;
-}
-
-// See: jdh8/metallic/src/math/float/exp2f.h and jdh8/metallic/blob/master/src/math/float/kernel/exp2f.h
-// @ts-ignore: decorator
-@inline
-function exp2f(x: f64): f64 {
-  const
-    c0 = reinterpret<f64>(0x3FE62E4302FCC24A), // 6.931471880289532425e-1
-    c1 = reinterpret<f64>(0x3FCEBFBE07D97B91), // 2.402265108421173406e-1
-    c2 = reinterpret<f64>(0x3FAC6AF6CCFC1A65), // 5.550357105498874537e-2
-    c3 = reinterpret<f64>(0x3F83B29E3CE9AEF6), // 9.618030771171497658e-3
-    c4 = reinterpret<f64>(0x3F55F0896145A89F), // 1.339086685300950937e-3
-    c5 = reinterpret<f64>(0x3F2446C81E384864); // 1.546973499989028719e-4
-
-  if (x < -1022) return 0;
-  if (x >= 1024) return Infinity;
-
-  var n = nearest(x);
-  x -= n;
-  var xx = x * x;
-  var y = 1 + x * (c0 + c1 * x + (c2 + c3 * x) * xx + (c4 + c5 * x) * (xx * xx));
-  return reinterpret<f64>(reinterpret<i64>(y) + (<i64>n << 52));
-}
-
-export namespace NativeMathf {
-
-  // @ts-ignore: decorator
-  @lazy
-  export const E       = <f32>NativeMath.E;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const LN2     = <f32>NativeMath.LN2;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const LN10    = <f32>NativeMath.LN10;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const LOG2E   = <f32>NativeMath.LOG2E;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const LOG10E  = <f32>NativeMath.LOG10E;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const PI      = <f32>NativeMath.PI;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const SQRT1_2 = <f32>NativeMath.SQRT1_2;
-
-  // @ts-ignore: decorator
-  @lazy
-  export const SQRT2   = <f32>NativeMath.SQRT2;
-
-  // @ts-ignore: decorator
-  @lazy
-  export var sincos_sin: f32 = 0;
-
-  // @ts-ignore: decorator
-  @lazy
-  export var sincos_cos: f32 = 0;
-
-  // @ts-ignore: decorator
-  @inline
-  export function abs(x: f32): f32 {
-    return builtin_abs<f32>(x);
-  }
-
-  export function acos(x: f32): f32 { // see: musl/src/math/acosf.c and SUN COPYRIGHT NOTICE above
-    const
-      pio2_hi   = reinterpret<f32>(0x3FC90FDA), // 1.5707962513e+00f
-      pio2_lo   = reinterpret<f32>(0x33A22168), // 7.5497894159e-08f
-      Ox1p_120f = reinterpret<f32>(0x03800000); // 0x1p-120f
-
-    var hx = reinterpret<u32>(x);
-    var ix = hx & 0x7FFFFFFF;
-    if (ix >= 0x3F800000) {
-      if (ix == 0x3F800000) {
-        if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;
-        return 0;
-      }
-      return 0 / (x - x);
-    }
-    if (ix < 0x3F000000) {
-      if (ix <= 0x32800000) return pio2_hi + Ox1p_120f;
-      return pio2_hi - (x - (pio2_lo - x * Rf(x * x)));
-    }
-    var z: f32, w: f32, s: f32;
-    if (hx >> 31) {
-      // z = (1 + x) * 0.5;
-      z = 0.5 + x * 0.5;
-      s = builtin_sqrt<f32>(z);
-      w = Rf(z) * s - pio2_lo;
-      return 2 * (pio2_hi - (s + w));
-    }
-    // z = (1 - x) * 0.5;
-    z = 0.5 - x * 0.5;
-    s = builtin_sqrt<f32>(z);
-    hx = reinterpret<u32>(s);
-    var df = reinterpret<f32>(hx & 0xFFFFF000);
-    var c = (z - df * df) / (s + df);
-    w = Rf(z) * s + c;
-    return 2 * (df + w);
-  }
-
-  export function acosh(x: f32): f32 { // see: musl/src/math/acoshf.c
-    const s = reinterpret<f32>(0x3F317218); // 0.693147180559945309417232121458176568f
-    var u = reinterpret<u32>(x);
-    var a = u & 0x7FFFFFFF;
-    if (a < 0x3F800000 + (1 << 23)) { // |x| < 2, invalid if x < 1
-      let xm1 = x - 1;
-      return log1p(xm1 + builtin_sqrt(xm1 * (xm1 + 2)));
-    }
-    if (u < 0x3F800000 + (12 << 23)) { // 2 <= x < 0x1p12
-      return log(2 * x - 1 / (x + builtin_sqrt<f32>(x * x - 1)));
-    }
-    // x >= 0x1p12 or x <= -2 or NaN
-    return log(x) + s;
-  }
-
-  export function asin(x: f32): f32 { // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above
-    const
-      pio2      = reinterpret<f32>(0x3FC90FDB), // 1.570796326794896558e+00f
-      Ox1p_120f = reinterpret<f32>(0x03800000); // 0x1p-120f
-
-    var sx = x;
-    var hx = reinterpret<u32>(x) & 0x7FFFFFFF;
-    if (hx >= 0x3F800000) {
-      if (hx == 0x3F800000) return x * pio2 + Ox1p_120f;
-      return 0 / (x - x);
-    }
-    if (hx < 0x3F000000) {
-      if (hx < 0x39800000 && hx >= 0x00800000) return x;
-      return x + x * Rf(x * x);
-    }
-    // var z: f32 = (1 - builtin_abs<f32>(x)) * 0.5;
-    var z: f32 = 0.5 - builtin_abs<f32>(x) * 0.5;
-    var s = builtin_sqrt<f64>(z); // sic
-    x = <f32>(pio2 - 2 * (s + s * Rf(z)));
-    return builtin_copysign(x, sx);
-  }
-
-  export function asinh(x: f32): f32 { // see: musl/src/math/asinhf.c
-    const c = reinterpret<f32>(0x3F317218); // 0.693147180559945309417232121458176568f
-    var u = reinterpret<u32>(x) & 0x7FFFFFFF;
-    var y = reinterpret<f32>(u);
-    if (u >= 0x3F800000 + (12 << 23)) y = log(y) + c;
-    else if (u >= 0x3F800000 + (1 << 23))  y =   log(2 * y + 1 / (builtin_sqrt<f32>(y * y + 1) + y));
-    else if (u >= 0x3F800000 - (12 << 23)) y = log1p(y + y * y / (builtin_sqrt<f32>(y * y + 1) + 1));
-    return builtin_copysign(y, x);
-  }
-
-  export function atan(x: f32): f32 { // see: musl/src/math/atanf.c and SUN COPYRIGHT NOTICE above
-    const
-      atanhi0   = reinterpret<f32>(0x3EED6338), //  4.6364760399e-01f
-      atanhi1   = reinterpret<f32>(0x3F490FDA), //  7.8539812565e-01f
-      atanhi2   = reinterpret<f32>(0x3F7B985E), //  9.8279368877e-01f
-      atanhi3   = reinterpret<f32>(0x3FC90FDA), //  1.5707962513e+00f
-      atanlo0   = reinterpret<f32>(0x31AC3769), //  5.0121582440e-09f
-      atanlo1   = reinterpret<f32>(0x33222168), //  3.7748947079e-08f
-      atanlo2   = reinterpret<f32>(0x33140FB4), //  3.4473217170e-08f
-      atanlo3   = reinterpret<f32>(0x33A22168), //  7.5497894159e-08f
-      aT0       = reinterpret<f32>(0x3EAAAAA9), //  3.3333328366e-01f
-      aT1       = reinterpret<f32>(0xBE4CCA98), // -1.9999158382e-01f
-      aT2       = reinterpret<f32>(0x3E11F50D), //  1.4253635705e-01f
-      aT3       = reinterpret<f32>(0xBDDA1247), // -1.0648017377e-01f
-      aT4       = reinterpret<f32>(0x3D7CAC25), //  6.1687607318e-02f
-      Ox1p_120f = reinterpret<f32>(0x03800000); //  0x1p-120f
-
-    var ix = reinterpret<u32>(x);
-    var sx = x;
-    ix &= 0x7FFFFFFF;
-    var z: f32;
-    if (ix >= 0x4C800000) {
-      if (isNaN(x)) return x;
-      z = atanhi3 + Ox1p_120f;
-      return builtin_copysign(z, sx);
-    }
-    var id: i32;
-    if (ix < 0x3EE00000) {
-      if (ix < 0x39800000) return x;
-      id = -1;
-    } else {
-      x = builtin_abs<f32>(x);
-      if (ix < 0x3F980000) {
-        if (ix < 0x3F300000) {
-          id = 0;
-          x = (2.0 * x - 1.0) / (2.0 + x);
-        } else {
-          id = 1;
-          x = (x - 1.0) / (x + 1.0);
-        }
-      } else {
-        if (ix < 0x401C0000) {
-          id = 2;
-          x = (x - 1.5) / (1.0 + 1.5 * x);
-        } else {
-          id = 3;
-          x = -1.0 / x;
-        }
-      }
-    }
-    z = x * x;
-    var w = z * z;
-    var s1 = z * (aT0 + w * (aT2 + w * aT4));
-    var s2 = w * (aT1 + w * aT3);
-    var s3 = x * (s1 + s2);
-    if (id < 0) return x - s3;
-    switch (id) {
-      case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }
-      case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }
-      case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }
-      case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }
-      default: unreachable();
-    }
-    return builtin_copysign(z, sx);
-  }
-
-  export function atanh(x: f32): f32 { // see: musl/src/math/atanhf.c
-    var u = reinterpret<u32>(x);
-    var y = builtin_abs(x);
-    if (u < 0x3F800000 - (1 << 23)) {
-      if (u >= 0x3F800000 - (32 << 23)) y = 0.5 * log1p(2 * y * (1.0 + y / (1 - y)));
-    } else y = 0.5 * log1p(2 * (y / (1 - y)));
-    return builtin_copysign(y, x);
-  }
-
-  export function atan2(y: f32, x: f32): f32 { // see: musl/src/math/atan2f.c and SUN COPYRIGHT NOTICE above
-    const
-      pi    = reinterpret<f32>(0x40490FDB), //  3.1415927410e+00f
-      pi_lo = reinterpret<f32>(0xB3BBBD2E); // -8.7422776573e-08f
-
-    if (isNaN(x) || isNaN(y)) return x + y;
-    var ix = reinterpret<u32>(x);
-    var iy = reinterpret<u32>(y);
-    if (ix == 0x3F800000) return atan(y);
-    var m = <u32>(((iy >> 31) & 1) | ((ix >> 30) & 2));
-    ix &= 0x7FFFFFFF;
-    iy &= 0x7FFFFFFF;
-    if (iy == 0) {
-      switch (m) {
-        case 0:
-        case 1: return  y;
-        case 2: return  pi;
-        case 3: return -pi;
-      }
-    }
-    if (ix == 0) return m & 1 ? -pi / 2 : pi / 2;
-    if (ix == 0x7F800000) {
-      if (iy == 0x7F800000) {
-        let t: f32 = m & 2 ? 3 * pi / 4 : pi / 4;
-        return m & 1 ? -t : t;
-      } else {
-        let t: f32 = m & 2 ? pi : 0.0;
-        return m & 1 ? -t : t;
-      }
-    }
-    if (ix + (26 << 23) < iy || iy == 0x7F800000) return m & 1 ? -pi / 2 : pi / 2;
-    var z: f32;
-    if ((m & 2) && iy + (26 << 23) < ix) z = 0.0;
-    else z = atan(builtin_abs<f32>(y / x));
-    switch (m) {
-      case 0: return  z;
-      case 1: return -z;
-      case 2: return pi - (z - pi_lo);
-      case 3: return (z - pi_lo) - pi;
-    }
-    unreachable();
-    return 0;
-  }
-
-  export function cbrt(x: f32): f32 { // see: musl/src/math/cbrtf.c and SUN COPYRIGHT NOTICE above
-    const
-      B1      = <u32>709958130,
-      B2      = <u32>642849266,
-      Ox1p24f = reinterpret<f32>(0x4B800000);
-
-    var u = reinterpret<u32>(x);
-    var hx = u & 0x7FFFFFFF;
-    if (hx >= 0x7F800000) return x + x;
-    if (hx < 0x00800000) {
-      if (hx == 0) return x;
-      u = reinterpret<u32>(x * Ox1p24f);
-      hx = u & 0x7FFFFFFF;
-      hx = hx / 3 + B2;
-    } else {
-      hx = hx / 3 + B1;
-    }
-    u &= 0x80000000;
-    u |= hx;
-    var t = <f64>reinterpret<f32>(u);
-    var r = t * t * t;
-    t = t * (<f64>x + x + r) / (x + r + r);
-    r = t * t * t;
-    t = t * (<f64>x + x + r) / (x + r + r);
-    return <f32>t;
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function ceil(x: f32): f32 {
-    return builtin_ceil<f32>(x);
-  }
-
-  export function clz32(x: f32): f32 {
-    if (!isFinite(x)) return 32;
-    return <f32>builtin_clz(dtoi32(x));
-  }
-
-  export function cos(x: f32): f32 { // see: musl/src/math/cosf.c
-    const
-      c1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // M_PI_2 * 1
-      c2pio2 = reinterpret<f64>(0x400921FB54442D18), // M_PI_2 * 2
-      c3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // M_PI_2 * 3
-      c4pio2 = reinterpret<f64>(0x401921FB54442D18); // M_PI_2 * 4
-
-    var ix = reinterpret<u32>(x);
-    var sign = ix >> 31;
-    ix &= 0x7FFFFFFF;
-
-    if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
-      if (ix < 0x39800000) { // |x| < 2**-12
-        // raise inexact if x != 0
-        return 1;
-      }
-      return cos_kernf(x);
-    }
-
-    if (ASC_SHRINK_LEVEL < 1) {
-      if (ix <= 0x407B53D1) {  // |x| ~<= 5π/4
-        if (ix > 0x4016CBE3) { // |x|  ~> 3π/4
-          return -cos_kernf(sign ? x + c2pio2 : x - c2pio2);
-        } else {
-          return sign ? sin_kernf(x + c1pio2) : sin_kernf(c1pio2 - x);
-        }
-      }
-      if (ix <= 0x40E231D5) {  // |x| ~<= 9π/4
-        if (ix > 0x40AFEDDF) { // |x|  ~> 7π/4
-          return cos_kernf(sign ? x + c4pio2 : x - c4pio2);
-        } else {
-          return sign ? sin_kernf(-x - c3pio2) : sin_kernf(x - c3pio2);
-        }
-      }
-    }
-
-    // cos(Inf or NaN) is NaN
-    if (ix >= 0x7F800000) return x - x;
-
-    // general argument reduction needed
-    var n = rempio2f(x, ix, sign);
-    var y = rempio2f_y;
-
-    var t = n & 1 ? sin_kernf(y) : cos_kernf(y);
-    return (n + 1) & 2 ? -t : t;
-  }
-
-  export function cosh(x: f32): f32 { // see: musl/src/math/coshf.c
-    var u = reinterpret<u32>(x);
-    u &= 0x7FFFFFFF;
-    x = reinterpret<f32>(u);
-    if (u < 0x3F317217) {
-      if (u < 0x3F800000 - (12 << 23)) return 1;
-      let t = expm1(x);
-      // return 1 + t * t / (2 * (1 + t));
-      return 1 + t * t / (2 + 2 * t);
-    }
-    if (u < 0x42B17217) {
-      let t = exp(x);
-      // return 0.5 * (t + 1 / t);
-      return 0.5 * t + 0.5 / t;
-    }
-    return expo2f(x, 1);
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function floor(x: f32): f32 {
-    return builtin_floor<f32>(x);
-  }
-
-  export function exp(x: f32): f32 { // see: musl/src/math/expf.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return expf_lut(x);
-    } else {
-      const
-        ln2hi    = reinterpret<f32>(0x3F317200), //  6.9314575195e-1f
-        ln2lo    = reinterpret<f32>(0x35BFBE8E), //  1.4286067653e-6f
-        invln2   = reinterpret<f32>(0x3FB8AA3B), //  1.4426950216e+0f
-        P1       = reinterpret<f32>(0x3E2AAA8F), //  1.6666625440e-1f
-        P2       = reinterpret<f32>(0xBB355215), // -2.7667332906e-3f
-        Ox1p127f = reinterpret<f32>(0x7F000000); //  0x1p+127f
-
-      let hx = reinterpret<u32>(x);
-      let sign_ = <i32>(hx >> 31);
-      hx &= 0x7FFFFFFF;
-      if (hx >= 0x42AEAC50) {
-        if (hx > 0x7F800000) return x; // NaN
-        if (hx >= 0x42B17218) {
-          if (!sign_) return x * Ox1p127f;
-          else if (hx >= 0x42CFF1B5) return 0;
-        }
-      }
-      let hi: f32, lo: f32;
-      let k: i32;
-      if (hx > 0x3EB17218) {
-        if (hx > 0x3F851592) {
-          k = <i32>(invln2 * x + builtin_copysign<f32>(0.5, x));
-        } else {
-          k = 1 - (sign_ << 1);
-        }
-        hi = x - <f32>k * ln2hi;
-        lo = <f32>k * ln2lo;
-        x = hi - lo;
-      } else if (hx > 0x39000000) {
-        k = 0;
-        hi = x;
-        lo = 0;
-      } else {
-        return 1 + x;
-      }
-      let xx = x * x;
-      let c = x - xx * (P1 + xx * P2);
-      let y: f32 = 1 + (x * c / (2 - c) - lo + hi);
-      return k == 0 ? y : scalbn(y, k);
-    }
-  }
-
-  export function exp2(x: f32): f32 {
-    return exp2f_lut(x);
-  }
-
-  export function expm1(x: f32): f32 { // see: musl/src/math/expm1f.c and SUN COPYRIGHT NOTICE above
-    const
-      ln2_hi   = reinterpret<f32>(0x3F317180), //  6.9313812256e-01f
-      ln2_lo   = reinterpret<f32>(0x3717F7D1), //  9.0580006145e-06f
-      invln2   = reinterpret<f32>(0x3FB8AA3B), //  1.4426950216e+00f
-      Q1       = reinterpret<f32>(0xBD088868), // -3.3333212137e-02f
-      Q2       = reinterpret<f32>(0x3ACF3010), //  1.5807170421e-03f
-      Ox1p127f = reinterpret<f32>(0x7F000000); //  0x1p+127f
-
-    var u = reinterpret<u32>(x);
-    var hx = u & 0x7FFFFFFF;
-    var sign_ = <i32>(u >> 31);
-    if (hx >= 0x4195B844) {
-      if (hx > 0x7F800000) return x;
-      if (sign_) return -1;
-      if (hx > 0x42B17217) { // x > log(FLT_MAX)
-        x *= Ox1p127f;
-        return x;
-      }
-    }
-    var c: f32 = 0.0, t: f32, k: i32;
-    if (hx > 0x3EB17218) {
-      k = select<i32>(
-        1 - (sign_ << 1),
-        <i32>(invln2 * x + builtin_copysign<f32>(0.5, x)),
-        hx < 0x3F851592
-      );
-      t = <f32>k;
-      let hi = x - t * ln2_hi;
-      let lo = t * ln2_lo;
-      x = hi - lo;
-      c = (hi - x) - lo;
-    } else if (hx < 0x33000000) {
-      return x;
-    } else k = 0;
-    var hfx: f32 = 0.5 * x;
-    var hxs: f32 = x * hfx;
-    var r1: f32 = 1.0 + hxs * (Q1 + hxs * Q2);
-    t  = 3.0 - r1 * hfx;
-    var e = hxs * ((r1 - t) / (6.0 - x * t));
-    if (k == 0) return x - (x * e - hxs);
-    e  = x * (e - c) - c;
-    e -= hxs;
-    if (k == -1) return 0.5 * (x - e) - 0.5;
-    if (k == 1) {
-      if (x < -0.25) return -2.0 * (e - (x + 0.5));
-      return 1.0 + 2.0 * (x - e);
-    }
-    u = (0x7F + k) << 23;
-    var twopk = reinterpret<f32>(u);
-    var y: f32;
-    if (k < 0 || k > 56) {
-      y = x - e + 1.0;
-      if (k == 128) y = y * 2.0 * Ox1p127f;
-      else y = y * twopk;
-      return y - 1.0;
-    }
-    u = (0x7F - k) << 23;
-    y = reinterpret<f32>(u);
-    if (k < 20) y = (1 - y) - e;
-    else y = 1 - (e + y);
-    return (x + y) * twopk;
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function fround(x: f32): f32 {
-    return x;
-  }
-
-  export function hypot(x: f32, y: f32): f32 { // see: musl/src/math/hypotf.c
-    const
-      Ox1p90f  = reinterpret<f32>(0x6C800000),
-      Ox1p_90f = reinterpret<f32>(0x12800000);
-
-    var ux = reinterpret<u32>(x);
-    var uy = reinterpret<u32>(y);
-    ux &= 0x7FFFFFFF;
-    uy &= 0x7FFFFFFF;
-    if (ux < uy) {
-      let ut = ux;
-      ux = uy;
-      uy = ut;
-    }
-    x = reinterpret<f32>(ux);
-    y = reinterpret<f32>(uy);
-    if (uy == 0xFF << 23) return y;
-    if (ux >= 0xFF << 23 || uy == 0 || ux - uy >= 25 << 23) return x + y;
-    var z: f32 = 1;
-    if (ux >= (0x7F + 60) << 23) {
-      z  = Ox1p90f;
-      x *= Ox1p_90f;
-      y *= Ox1p_90f;
-    } else if (uy < (0x7F - 60) << 23) {
-      z  = Ox1p_90f;
-      x *= Ox1p90f;
-      y *= Ox1p90f;
-    }
-    return z * builtin_sqrt<f32>(<f32>(<f64>x * x + <f64>y * y));
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function imul(x: f32, y: f32): f32 {
-    /*
-     * Wasm (MVP) and JS have different approaches for double->int conversions.
-     *
-     * For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
-     * our float-point arguments before actual convertion to integers.
-     */
-    if (!isFinite(x + y)) return 0;
-    return <f32>(dtoi32(x) * dtoi32(y));
-  }
-
-  export function log(x: f32): f32 { // see: musl/src/math/logf.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return logf_lut(x);
-    } else {
-      const
-        ln2_hi  = reinterpret<f32>(0x3F317180), // 6.9313812256e-01f
-        ln2_lo  = reinterpret<f32>(0x3717F7D1), // 9.0580006145e-06f
-        Lg1     = reinterpret<f32>(0x3F2AAAAA), // 0xaaaaaa.0p-24f
-        Lg2     = reinterpret<f32>(0x3ECCCE13), // 0xccce13.0p-25f
-        Lg3     = reinterpret<f32>(0x3E91E9EE), // 0x91e9ee.0p-25f
-        Lg4     = reinterpret<f32>(0x3E789E26), // 0xf89e26.0p-26f
-        Ox1p25f = reinterpret<f32>(0x4C000000);
-
-      let u = reinterpret<u32>(x);
-      let k = 0;
-      if (u < 0x00800000 || <bool>(u >> 31)) {
-        if (u << 1 == 0) return -1 / (x * x);
-        if (u >> 31) return (x - x) / 0;
-        k -= 25;
-        x *= Ox1p25f;
-        u = reinterpret<u32>(x);
-      } else if (u >= 0x7F800000) {
-        return x;
-      } else if (u == 0x3F800000) {
-        return 0;
-      }
-      u += 0x3F800000 - 0x3F3504F3;
-      k += <u32>(<i32>u >> 23) - 0x7F;
-      u = (u & 0x007FFFFF) + 0x3F3504F3;
-      x = reinterpret<f32>(u);
-      let f = x - 1.0;
-      let s = f / (2.0 + f);
-      let z = s * s;
-      let w = z * z;
-      let t1 = w * (Lg2 + w * Lg4);
-      let t2 = z * (Lg1 + w * Lg3);
-      let r = t2 + t1;
-      let hfsq = <f32>0.5 * f * f;
-      let dk = <f32>k;
-      return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;
-    }
-  }
-
-  export function log10(x: f32): f32 { // see: musl/src/math/log10f.c and SUN COPYRIGHT NOTICE above
-    const
-      ivln10hi  = reinterpret<f32>(0x3EDE6000), //  4.3432617188e-01f
-      ivln10lo  = reinterpret<f32>(0xB804EAD9), // -3.1689971365e-05f
-      log10_2hi = reinterpret<f32>(0x3E9A2080), //  3.0102920532e-01f
-      log10_2lo = reinterpret<f32>(0x355427DB), //  7.9034151668e-07f
-      Lg1       = reinterpret<f32>(0x3F2AAAAA), //  0xaaaaaa.0p-24f, 0.66666662693f
-      Lg2       = reinterpret<f32>(0x3ECCCE13), //  0xccce13.0p-25f, 0.40000972152f
-      Lg3       = reinterpret<f32>(0x3E91E9EE), //  0x91e9ee.0p-25f, 0.28498786688f
-      Lg4       = reinterpret<f32>(0x3E789E26), //  0xf89e26.0p-26f, 0.24279078841f
-      Ox1p25f   = reinterpret<f32>(0x4C000000); //  0x1p25f
-
-    var ix = reinterpret<u32>(x);
-    var k = 0;
-    if (ix < 0x00800000 || <bool>(ix >> 31)) {
-      if (ix << 1 == 0) return -1 / (x * x);
-      if (ix >> 31) return (x - x) / 0.0;
-      k -= 25;
-      x *= Ox1p25f;
-      ix = reinterpret<u32>(x);
-    } else if (ix >= 0x7F800000) {
-      return x;
-    } else if (ix == 0x3F800000) {
-      return 0;
-    }
-    ix += 0x3F800000 - 0x3F3504F3;
-    k += <i32>(ix >> 23) - 0x7F;
-    ix = (ix & 0x007FFFFF) + 0x3F3504F3;
-    x = reinterpret<f32>(ix);
-    var f = x - 1.0;
-    var s = f / (2.0 + f);
-    var z = s * s;
-    var w = z * z;
-    var t1 = w * (Lg2 + w * Lg4);
-    var t2 = z * (Lg1 + w * Lg3);
-    var r = t2 + t1;
-    var hfsq: f32 = 0.5 * f * f;
-    var hi = f - hfsq;
-    ix = reinterpret<u32>(hi);
-    ix &= 0xFFFFF000;
-    hi = reinterpret<f32>(ix);
-    var lo = f - hi - hfsq + s * (hfsq + r);
-    var dk = <f32>k;
-    return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + hi * ivln10hi + dk * log10_2hi;
-  }
-
-  export function log1p(x: f32): f32 { // see: musl/src/math/log1pf.c and SUN COPYRIGHT NOTICE above
-    const
-      ln2_hi = reinterpret<f32>(0x3F317180), // 6.9313812256e-01
-      ln2_lo = reinterpret<f32>(0x3717F7D1), // 9.0580006145e-06
-      Lg1    = reinterpret<f32>(0x3F2AAAAA), // 0xaaaaaa.0p-24f, 0.66666662693f
-      Lg2    = reinterpret<f32>(0x3ECCCE13), // 0xccce13.0p-25f, 0.40000972152f
-      Lg3    = reinterpret<f32>(0x3E91E9EE), // 0x91e9ee.0p-25f, 0.28498786688f
-      Lg4    = reinterpret<f32>(0x3E789E26); // 0xf89e26.0p-26f, 0.24279078841f
-
-    var ix = reinterpret<u32>(x);
-    var c: f32 = 0, f: f32 = 0;
-    var k: i32 = 1;
-    if (ix < 0x3ED413D0 || <bool>(ix >> 31)) {
-      if (ix >= 0xBF800000) {
-        if (x == -1) return x / 0.0;
-        return (x - x) / 0.0;
-      }
-      if (ix << 1 < 0x33800000 << 1) return x;
-      if (ix <= 0xBE95F619) {
-        k = 0;
-        c = 0;
-        f = x;
-      }
-    } else if (ix >= 0x7F800000) return x;
-    if (k) {
-      let uf: f32 = 1 + x;
-      let iu = reinterpret<u32>(uf);
-      iu += 0x3F800000 - 0x3F3504F3;
-      k = <i32>(iu >> 23) - 0x7F;
-      if (k < 25) {
-        c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);
-        c /= uf;
-      } else c = 0;
-      iu = (iu & 0x007FFFFF) + 0x3F3504F3;
-      f = reinterpret<f32>(iu) - 1;
-    }
-    var s = f / (2.0 + f);
-    var z = s * s;
-    var w = z * z;
-    var t1 = w * (Lg2 + w * Lg4);
-    var t2 = z * (Lg1 + w * Lg3);
-    var r = t2 + t1;
-    var hfsq: f32 = 0.5 * f * f;
-    var dk = <f32>k;
-    return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;
-  }
-
-  export function log2(x: f32): f32 { // see: musl/src/math/log2f.c and SUN COPYRIGHT NOTICE above
-    if (ASC_SHRINK_LEVEL < 1) {
-      return log2f_lut(x);
-    } else {
-      const
-        ivln2hi = reinterpret<f32>(0x3FB8B000), //  1.4428710938e+00f
-        ivln2lo = reinterpret<f32>(0xB9389AD4), // -1.7605285393e-04
-        Lg1     = reinterpret<f32>(0x3F2AAAAA), //  0xaaaaaa.0p-24f, 0.66666662693f
-        Lg2     = reinterpret<f32>(0x3ECCCE13), //  0xccce13.0p-25f, 0.40000972152f
-        Lg3     = reinterpret<f32>(0x3E91E9EE), //  0x91e9ee.0p-25f, 0.28498786688f
-        Lg4     = reinterpret<f32>(0x3E789E26), //  0xf89e26.0p-26f, 0.24279078841f
-        Ox1p25f = reinterpret<f32>(0x4C000000); //  0x1p25f
-
-      let ix = reinterpret<u32>(x);
-      let k: i32 = 0;
-      if (ix < 0x00800000 || <bool>(ix >> 31)) {
-        if (ix << 1 == 0) return -1 / (x * x);
-        if (ix >> 31) return (x - x) / 0.0;
-        k -= 25;
-        x *= Ox1p25f;
-        ix = reinterpret<u32>(x);
-      } else if (ix >= 0x7F800000) {
-        return x;
-      } else if (ix == 0x3F800000) {
-        return 0;
-      }
-      ix += 0x3F800000 - 0x3F3504F3;
-      k += <i32>(ix >> 23) - 0x7F;
-      ix = (ix & 0x007FFFFF) + 0x3F3504F3;
-      x = reinterpret<f32>(ix);
-      let f = x - 1.0;
-      let s = f / (2.0 + f);
-      let z = s * s;
-      let w = z * z;
-      let t1 = w * (Lg2 + w * Lg4);
-      let t2 = z * (Lg1 + w * Lg3);
-      let r = t2 + t1;
-      let hfsq: f32 = 0.5 * f * f;
-      let hi = f - hfsq;
-      let u = reinterpret<u32>(hi);
-      u &= 0xFFFFF000;
-      hi = reinterpret<f32>(u);
-      let lo: f32 = f - hi - hfsq + s * (hfsq + r);
-      let dk = <f32>k;
-      return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + dk;
-    }
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function max(value1: f32, value2: f32): f32 {
-    return builtin_max<f32>(value1, value2);
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function min(value1: f32, value2: f32): f32 {
-    return builtin_min<f32>(value1, value2);
   }
-
-  export function pow(x: f32, y: f32): f32 {
-    // TODO: remove this fast pathes after introduced own mid-end IR with "stdlib call simplify" transforms
-    if (builtin_abs<f32>(y) <= 2) {
-      if (y == 2.0) return x * x;
-      if (y == 0.5) {
-        return select<f32>(
-          builtin_abs<f32>(builtin_sqrt<f32>(x)),
-          Infinity,
-          x != -Infinity
-        );
-      }
-      if (y == -1.0) return 1 / x;
-      if (y == 1.0) return x;
-      if (y == 0.0) return 1.0;
-    }
-    if (ASC_SHRINK_LEVEL < 1) {
-      // see: musl/src/math/powf.c
-      return powf_lut(x, y);
-    } else {
-      // based on:  jdh8/metallic/src/math/float/powf.c
-      if (y == 0) return 1;
-      // @ts-ignore: cast
-      if (isNaN(x) | isNaN(y)) {
-        return NaN;
-      }
-      let sign: u32 = 0;
-      let uy = reinterpret<u32>(y);
-      let ux = reinterpret<u32>(x);
-      let sx = ux >> 31;
-      ux &= 0x7FFFFFFF;
-      if (sx && nearest(y) == y) {
-        x = -x;
-        sx = 0;
-        sign = u32(nearest(y * 0.5) != y * 0.5) << 31;
-      }
-      let m: u32;
-      if (ux == 0x3F800000) { // x == 1
-        m = sx | u32((uy & 0x7FFFFFFF) == 0x7F800000) ? 0x7FC00000 : 0x3F800000;
-      } else if (ux == 0) {
-        m = uy >> 31 ? 0x7F800000 : 0;
-      } else if (ux == 0x7F800000) {
-        m = uy >> 31 ? 0 : 0x7F800000;
-      } else if (sx) {
-        m = 0x7FC00000;
-      } else {
-        m = reinterpret<u32>(<f32>exp2f(<f64>y * log2f(x)));
-      }
-      return reinterpret<f32>(m | sign);
-    }
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function seedRandom(value: i64): void {
-    NativeMath.seedRandom(value);
-  }
-
-  // Using xoroshiro64starstar from http://xoshiro.di.unimi.it/xoroshiro64starstar.c
-  export function random(): f32 {
-    if (!random_seeded) seedRandom(reinterpret<i64>(seed()));
-
-    var s0 = random_state0_32;
-    var s1 = random_state1_32;
-    var r  = rotl<u32>(s0 * 0x9E3779BB, 5) * 5;
-
-    s1 ^= s0;
-    random_state0_32 = rotl<u32>(s0, 26) ^ s1 ^ (s1 << 9);
-    random_state1_32 = rotl<u32>(s1, 13);
-
-    return reinterpret<f32>((r >> 9) | (127 << 23)) - 1.0;
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function round(x: f32): f32 {
-    let roundUp = builtin_ceil<f32>(x);
-    return select<f32>(roundUp, roundUp - 1.0, roundUp - 0.5 <= x);
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function sign(x: f32): f32 {
-    if (ASC_SHRINK_LEVEL > 0) {
-      return builtin_abs(x) > 0 ? builtin_copysign<f32>(1, x) : x;
-    } else {
-      return x > 0 ? 1 : x < 0 ? -1 : x;
-    }
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function signbit(x: f32): bool {
-    return <bool>(reinterpret<u32>(x) >>> 31);
-  }
-
-  export function sin(x: f32): f32 { // see: musl/src/math/sinf.c
-    const
-      s1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // M_PI_2 * 1
-      s2pio2 = reinterpret<f64>(0x400921FB54442D18), // M_PI_2 * 2
-      s3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // M_PI_2 * 3
-      s4pio2 = reinterpret<f64>(0x401921FB54442D18); // M_PI_2 * 4
-
-    var ix = reinterpret<u32>(x);
-    var sign = ix >> 31;
-    ix &= 0x7FFFFFFF;
-
-    if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
-      if (ix < 0x39800000) { // |x| < 2**-12
-        return x;
-      }
-      return sin_kernf(x);
-    }
-
-    if (ASC_SHRINK_LEVEL < 1) {
-      if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
-        if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
-          return sign ? -cos_kernf(x + s1pio2) : cos_kernf(x - s1pio2);
-        }
-        return sin_kernf(-(sign ? x + s2pio2 : x - s2pio2));
-      }
-
-      if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
-        if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
-          return sign ? cos_kernf(x + s3pio2) : -cos_kernf(x - s3pio2);
-        }
-        return sin_kernf(sign ? x + s4pio2 : x - s4pio2);
-      }
-    }
-
-    // sin(Inf or NaN) is NaN
-    if (ix >= 0x7F800000) return x - x;
-
-    var n = rempio2f(x, ix, sign);
-    var y = rempio2f_y;
-
-    var t = n & 1 ? cos_kernf(y) : sin_kernf(y);
-    return n & 2 ? -t : t;
-  }
-
-  export function sinh(x: f32): f32 { // see: musl/src/math/sinhf.c
-    var u = reinterpret<u32>(x) & 0x7FFFFFFF;
-    var a = reinterpret<f32>(u);
-    var h = builtin_copysign<f32>(0.5, x);
-    if (u < 0x42B17217) {
-      let t = expm1(a);
-      if (u < 0x3F800000) {
-        if (u < 0x3F800000 - (12 << 23)) return x;
-        return h * (2 * t - t * t / (t + 1));
-      }
-      return h * (t + t / (t + 1));
-    }
-    return expo2f(a, 2 * h);
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function sqrt(x: f32): f32 {
-    return builtin_sqrt<f32>(x);
-  }
-
-  export function tan(x: f32): f32 { // see: musl/src/math/tanf.c
-    const
-      t1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // 1 * M_PI_2
-      t2pio2 = reinterpret<f64>(0x400921FB54442D18), // 2 * M_PI_2
-      t3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // 3 * M_PI_2
-      t4pio2 = reinterpret<f64>(0x401921FB54442D18); // 4 * M_PI_2
-
-    var ix = reinterpret<u32>(x);
-    var sign = ix >> 31;
-    ix &= 0x7FFFFFFF;
-
-    if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
-      if (ix < 0x39800000) { // |x| < 2**-12
-        return x;
-      }
-      return tan_kernf(x, 0);
-    }
-
-    if (ASC_SHRINK_LEVEL < 1) {
-      if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
-        if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
-          return tan_kernf((sign ? x + t1pio2 : x - t1pio2), 1);
-        } else {
-          return tan_kernf((sign ? x + t2pio2 : x - t2pio2), 0);
-        }
-      }
-      if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
-        if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
-          return tan_kernf((sign ? x + t3pio2 : x - t3pio2), 1);
-        } else {
-          return tan_kernf((sign ? x + t4pio2 : x - t4pio2), 0);
-        }
-      }
-    }
-
-    // tan(Inf or NaN) is NaN
-    if (ix >= 0x7F800000) return x - x;
-
-    // argument reduction
-    var n = rempio2f(x, ix, sign);
-    var y = rempio2f_y;
-    return tan_kernf(y, n & 1);
-  }
-
-  export function tanh(x: f32): f32 { // see: musl/src/math/tanhf.c
-    var u = reinterpret<u32>(x);
-    u &= 0x7FFFFFFF;
-    var y = reinterpret<f32>(u);
-    var t: f32;
-    if (u > 0x3F0C9F54) {
-      if (u > 0x41200000) t = 1 + 0 / y;
-      else {
-        t = expm1(2 * y);
-        t = 1 - 2 / (t + 2);
-      }
-    } else if (u > 0x3E82C578) {
-      t = expm1(2 * y);
-      t = t / (t + 2);
-    } else if (u >= 0x00800000) {
-      t = expm1(-2 * y);
-      t = -t / (t + 2);
-    } else t = y;
-    return builtin_copysign<f32>(t, x);
-  }
-
-  // @ts-ignore: decorator
-  @inline
-  export function trunc(x: f32): f32 {
-    return builtin_trunc<f32>(x);
-  }
-
-  export function scalbn(x: f32, n: i32): f32 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbnf.c
-    const
-      Ox1p24f   = reinterpret<f32>(0x4B800000),
-      Ox1p127f  = reinterpret<f32>(0x7F000000),
-      Ox1p_126f = reinterpret<f32>(0x00800000);
-
-    var y = x;
-    if (n > 127) {
-      y *= Ox1p127f;
-      n -= 127;
-      if (n > 127) {
-        y *= Ox1p127f;
-        n = builtin_min<i32>(n - 127, 127);
-      }
-    } else if (n < -126) {
-      y *= Ox1p_126f * Ox1p24f;
-      n += 126 - 24;
-      if (n < -126) {
-        y *= Ox1p_126f * Ox1p24f;
-        n = builtin_max<i32>(n + 126 - 24, -126);
-      }
-    }
-    return y * reinterpret<f32>(<u32>(0x7F + n) << 23);
-  }
-
-  export function mod(x: f32, y: f32): f32 { // see: musl/src/math/fmodf.c
-    if (builtin_abs<f32>(y) == 1.0) {
-      // x % 1, x % -1  ==>  sign(x) * abs(x - 1.0 * trunc(x / 1.0))
-      // TODO: move this rule to compiler's optimization pass.
-      // It could be apply for any x % C_pot, where "C_pot" is pow of two const.
-      return builtin_copysign<f32>(x - builtin_trunc<f32>(x), x);
-    }
-    var ux = reinterpret<u32>(x);
-    var uy = reinterpret<u32>(y);
-    var ex = <i32>(ux >> 23 & 0xFF);
-    var ey = <i32>(uy >> 23 & 0xFF);
-    var sm = ux & 0x80000000;
-    var uy1 = uy << 1;
-    if (uy1 == 0 || ex == 0xFF || isNaN<f32>(y)) {
-      let m = x * y;
-      return m / m;
-    }
-    var ux1 = ux << 1;
-    if (ux1 <= uy1) {
-      return x * f32(ux1 != uy1);
-    }
-    if (!ex) {
-      ex -= builtin_clz<u32>(ux << 9);
-      ux <<= 1 - ex;
-    } else {
-      ux &= <u32>-1 >> 9;
-      ux |= 1 << 23;
-    }
-    if (!ey) {
-      ey -= builtin_clz<u32>(uy << 9);
-      uy <<= 1 - ey;
-    } else {
-      uy &= <u32>-1 >> 9;
-      uy |= 1 << 23;
-    }
-    while (ex > ey) {
-      if (ux >= uy) {
-        if (ux == uy) return 0 * x;
-        ux -= uy;
-      }
-      ux <<= 1;
-      --ex;
-    }
-    if (ux >= uy) {
-      if (ux == uy) return 0 * x;
-      ux -= uy;
-    }
-    // for (; !(ux >> 23); ux <<= 1) --ex;
-    var shift = <i32>builtin_clz<u32>(ux << 8);
-    ex -= shift;
-    ux <<= shift;
-    if (ex > 0) {
-      ux -= 1 << 23;
-      ux |= <u32>ex << 23;
-    } else {
-      ux >>= -ex + 1;
-    }
-    return reinterpret<f32>(ux | sm);
-  }
-
-  export function rem(x: f32, y: f32): f32 { // see: musl/src/math/remquof.c
-    var ux = reinterpret<u32>(x);
-    var uy = reinterpret<u32>(y);
-    var ex = <i32>(ux >> 23 & 0xFF);
-    var ey = <i32>(uy >> 23 & 0xFF);
-    var sx = <i32>(ux >> 31);
-    var uxi = ux;
-    if (uy << 1 == 0 || ex == 0xFF || isNaN(y)) return (x * y) / (x * y);
-    if (ux << 1 == 0) return x;
-    if (!ex) {
-      ex -= builtin_clz<u32>(uxi << 9);
-      uxi <<= 1 - ex;
-    } else {
-      uxi &= <u32>-1 >> 9;
-      uxi |= 1 << 23;
-    }
-    if (!ey) {
-      ey -= builtin_clz<u32>(uy << 9);
-      uy <<= 1 - ey;
-    } else {
-      uy &= <u32>-1 >> 9;
-      uy |= 1 << 23;
-    }
-    var q = 0;
-    do {
-      if (ex < ey) {
-        if (ex + 1 == ey) break; // goto end
-        return x;
-      }
-      while (ex > ey) {
-        if (uxi >= uy) {
-          uxi -= uy;
-          ++q;
-        }
-        uxi <<= 1;
-        q <<= 1;
-        --ex;
-      }
-      if (uxi >= uy) {
-        uxi -= uy;
-        ++q;
-      }
-      if (uxi == 0) ex = -30;
-      else {
-        let shift = builtin_clz<i32>(uxi << 8);
-        ex -= shift;
-        uxi <<= shift;
-      }
-      break;
-    } while (false);
-    // end:
-    if (ex > 0) {
-      uxi -= 1 << 23;
-      uxi |= <u32>ex << 23;
-    } else {
-      uxi >>= -ex + 1;
-    }
-    x = reinterpret<f32>(uxi);
-    y = builtin_abs<f32>(y);
-    var x2 = x + x;
-    if (ex == ey || (ex + 1 == ey && (<f32>x2 > y || (<f32>x2 == y && <bool>(q & 1))))) {
-      x -= y;
-      // q++;
-    }
-    return sx ? -x : x;
-  }
-
-  export function sincos(x: f32): void { // see: musl/tree/src/math/sincosf.c
-    const
-      s1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // 1 * M_PI_2
-      s2pio2 = reinterpret<f64>(0x400921FB54442D18), // 2 * M_PI_2
-      s3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // 3 * M_PI_2
-      s4pio2 = reinterpret<f64>(0x401921FB54442D18); // 4 * M_PI_2
-
-    var ix = reinterpret<u32>(x);
-    var sign = ix >> 31;
-    ix &= 0x7FFFFFFF;
-
-    if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
-      if (ix < 0x39800000) { // |x| < 2**-12
-        sincos_sin = x;
-        sincos_cos = 1;
-        return;
-      }
-      sincos_sin = sin_kernf(x);
-      sincos_cos = cos_kernf(x);
-      return;
-    }
-    if (ASC_SHRINK_LEVEL < 1) {
-      if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
-        if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
-          if (sign) {
-            sincos_sin = -cos_kernf(x + s1pio2);
-            sincos_cos =  sin_kernf(x + s1pio2);
-          } else {
-            sincos_sin = cos_kernf(s1pio2 - x);
-            sincos_cos = sin_kernf(s1pio2 - x);
-          }
-          return;
-        }
-        // -sin(x + c) is not correct if x+c could be 0: -0 vs +0
-        sincos_sin = -sin_kernf(sign ? x + s2pio2 : x - s2pio2);
-        sincos_cos = -cos_kernf(sign ? x + s2pio2 : x - s2pio2);
-        return;
-      }
-      if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
-        if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
-          if (sign) {
-            sincos_sin =  cos_kernf(x + s3pio2);
-            sincos_cos = -sin_kernf(x + s3pio2);
-          } else {
-            sincos_sin = -cos_kernf(x - s3pio2);
-            sincos_cos =  sin_kernf(x - s3pio2);
-          }
-          return;
-        }
-        sincos_sin = sin_kernf(sign ? x + s4pio2 : x - s4pio2);
-        sincos_cos = cos_kernf(sign ? x + s4pio2 : x - s4pio2);
-        return;
-      }
-    }
-    // sin(Inf or NaN) is NaN
-    if (ix >= 0x7F800000) {
-      let xx = x - x;
-      sincos_sin = xx;
-      sincos_cos = xx;
-      return;
-    }
-    // general argument reduction needed
-    var n = rempio2f(x, ix, sign);
-    var y = rempio2f_y;
-    var s = sin_kernf(y);
-    var c = cos_kernf(y);
-    var sin = s, cos = c;
-    if (n & 1) {
-      sin =  c;
-      cos = -s;
-    }
-    if (n & 2) {
-      sin = -sin;
-      cos = -cos;
-    }
-    sincos_sin = sin;
-    sincos_cos = cos;
-  }
-}
-
-export function ipow32(x: i32, e: i32): i32 {
-  var out = 1;
-  if (ASC_SHRINK_LEVEL < 1) {
-    if (x == 2) {
-      return select<i32>(1 << e, 0, <u32>e < 32);
-    }
-    if (e <= 0) {
-      if (x == -1) return select<i32>(-1, 1, e & 1);
-      return i32(e == 0) | i32(x == 1);
-    }
-    else if (e == 1) return x;
-    else if (e == 2) return x * x;
-    else if (e < 32) {
-      let log = 32 - clz(e);
-      // 32 = 2 ^ 5, so need only five cases.
-      // But some extra cases needs for properly overflowing
-      switch (log) {
-        case 5: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 4: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 3: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 2: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 1: {
-          if (e & 1) out *= x;
-        }
-      }
-      return out;
-    }
-  }
-  while (e) {
-    if (e & 1) out *= x;
-    e >>>= 1;
-    x *= x;
-  }
-  return out;
-}
-
-export function ipow64(x: i64, e: i64): i64 {
-  var out: i64 = 1;
-  if (ASC_SHRINK_LEVEL < 1) {
-    if (x == 2) {
-      return select<i64>(1 << e, 0, <u64>e < 64);
-    }
-    if (e <= 0) {
-      if (x == -1) return select<i64>(-1, 1, e & 1);
-      return i64(e == 0) | i64(x == 1);
-    }
-    else if (e == 1) return x;
-    else if (e == 2) return x * x;
-    else if (e < 64) {
-      let log = 64 - <i32>clz(e);
-      // 64 = 2 ^ 6, so need only six cases.
-      // But some extra cases needs for properly overflowing
-      switch (log) {
-        case 6: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 5: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 4: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 3: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 2: {
-          if (e & 1) out *= x;
-          e >>>= 1;
-          x *= x;
-        }
-        case 1: {
-          if (e & 1) out *= x;
-        }
-      }
-      return out;
-    }
-  }
-  while (e) {
-    if (e & 1) out *= x;
-    e >>>= 1;
-    x *= x;
-  }
-  return out;
-}
-
-/*
-TODO:
-In compile time if only exponent is constant we could replace ipow32/ipow64 by shortest addition chains
-which usually faster than exponentiation by squaring
-
-for ipow32 and e < 32:
-
-let b: i32, c: i32, d: i32, h: i32, k: i32, g: i32;
-switch (e) {
-  case  1: return x;
-  case  2: return x * x;
-  case  3: return x * x * x;
-  case  4: return (b = x * x) * b;
-  case  5: return (b = x * x) * b * x;
-  case  6: return (b = x * x) * b * b;
-  case  7: return (b = x * x) * b * b * x;
-  case  8: return (d = (b = x * x) * b) * d;
-  case  9: return (c = x * x * x) * c * c;
-  case 10: return (d = (b = x * x) * b) * d * b;
-  case 11: return (d = (b = x * x) * b) * d * b * x;
-  case 12: return (d = (b = x * x) * b) * d * d;
-  case 13: return (d = (b = x * x) * b) * d * d * x;
-  case 14: return (d = (b = x * x) * b) * d * d * b;
-  case 15: return (k = (b = x * x) * b * x) * k * k;
-  case 16: return (h = (d = (b = x * x) * b) * d) * h;
-  case 17: return (h = (d = (b = x * x) * b) * d) * h * x;
-  case 18: return (h = (d = (b = x * x) * b) * d * x) * h;
-  case 19: return (h = (d = (b = x * x) * b) * d * x) * h * x;
-  case 20: return (h = (k = (b = x * x) * b * x) * k) * h;
-  case 21: return (h = (k = (b = x * x) * b * x) * k) * h * x;
-  case 22: return (g = (h = (k = (b = x * x) * b * x) * k) * x) * g;
-  case 23: return (h = (d = (c = (b = x * x) * x) * b) * d) * h * c;
-  case 24: return (h = (d = (c = x * x * x) * c) * d) * h;
-  case 25: return (h = (d = (c = x * x * x) * c) * d) * h * x;
-  case 26: return (g = (h = (d = (c = x * x * x) * c) * d) * x) * g;
-  case 27: return (h = (d = (c = x * x * x) * c) * d) * h * c;
-  case 28: return (h = (d = (c = x * x * x) * c * x) * d) * h;
-  case 29: return (h = (d = (c = x * x * x) * c * x) * d) * h * x;
-  case 30: return (h = (d = (c = x * x * x) * c) * d * c) * h;
-  case 31: return (h = (d = (c = x * x * x) * c) * d * c) * h * x;
-}
-
-for ipow64: TODO
-switch (e) {
-  case 32:
-  ...
-  case 63:
 }
-*/
diff --git a/std/assembly/util/math.ts b/std/assembly/util/math.ts
index da31d474de..3538901286 100644
--- a/std/assembly/util/math.ts
+++ b/std/assembly/util/math.ts
@@ -1,12 +1,33 @@
-//
-// Lookup data for exp2f
-//
+// Lookup data for pio2f_large_quot
+
+// @ts-ignore: decorator
+@lazy @inline
+const PIO2_TABLE32 = memory.data<u64>([
+  0xA2F9836E4E441529,
+  0xFC2757D1F534DDC0,
+  0xDB6295993C439041,
+  0xFE5163ABDEBBC561
+]);
 
+// Lookup data for pio2_large_quot
+
+/** @internal */
 // @ts-ignore: decorator
-@inline const EXP2F_TABLE_BITS = 5;
+@lazy @inline
+const PIO2_TABLE64 = memory.data<u64>([
+  0x00000000A2F9836E, 0x4E441529FC2757D1, 0xF534DDC0DB629599, 0x3C439041FE5163AB,
+  0xDEBBC561B7246E3A, 0x424DD2E006492EEA, 0x09D1921CFE1DEB1C, 0xB129A73EE88235F5,
+  0x2EBB4484E99C7026, 0xB45F7E413991D639, 0x835339F49C845F8B, 0xBDF9283B1FF897FF,
+  0xDE05980FEF2F118B, 0x5A0A6D1F6D367ECF, 0x27CB09B74F463F66, 0x9E5FEA2D7527BAC7,
+  0xEBE5F17B3D0739F7, 0x8A5292EA6BFB5FB1, 0x1F8D5D0856033046, 0xFC7B6BABF0CFBC20,
+  0x9AF4361DA9E39161, 0x5EE61B086599855F, 0x14A068408DFFD880, 0x4D73273106061557
+]);
+
+// Lookup data for exp2f
 
 // @ts-ignore: decorator
-@lazy @inline const EXP2F_DATA_TAB = memory.data<u64>([
+@lazy @inline
+const EXP2_TABLE32 = memory.data<u64>([
   // exp2f_data_tab[i] = uint(2^(i/N)) - (i << 52-BITS)
   // used for computing 2^(k/N) for an int |k| < 150 N as
   // double(tab[k%N] + (k << 52-BITS))
@@ -20,14 +41,2179 @@
   0x3FEF5818DCFBA487, 0x3FEF7C97337B9B5F, 0x3FEFA4AFA2A490DA, 0x3FEFD0765B6E4540
 ]);
 
+// @ts-ignore: decorator
+@inline
+const EXP2_TABLE32_BITS = 5;
+
+// Lookup data for log2f
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG2_TABLE32 = memory.data<u64>([
+  0x3FF661EC79F8F3BE, 0xBFDEFEC65B963019, // 0x1.661ec79f8f3bep+0, -0x1.efec65b963019p-2,
+  0x3FF571ED4AAF883D, 0xBFDB0B6832D4FCA4, // 0x1.571ed4aaf883dp+0, -0x1.b0b6832d4fca4p-2,
+  0x3FF49539F0F010B0, 0xBFD7418B0A1FB77B, // 0x1.49539f0f010bp+0 , -0x1.7418b0a1fb77bp-2,
+  0x3FF3C995B0B80385, 0xBFD39DE91A6DCF7B, // 0x1.3c995b0b80385p+0, -0x1.39de91a6dcf7bp-2,
+  0x3FF30D190C8864A5, 0xBFD01D9BF3F2B631, // 0x1.30d190c8864a5p+0, -0x1.01d9bf3f2b631p-2,
+  0x3FF25E227B0B8EA0, 0xBFC97C1D1B3B7AF0, // 0x1.25e227b0b8eap+0 , -0x1.97c1d1b3b7afp-3 ,
+  0x3FF1BB4A4A1A343F, 0xBFC2F9E393AF3C9F, // 0x1.1bb4a4a1a343fp+0, -0x1.2f9e393af3c9fp-3,
+  0x3FF12358F08AE5BA, 0xBFB960CBBF788D5C, // 0x1.12358f08ae5bap+0, -0x1.960cbbf788d5cp-4,
+  0x3FF0953F419900A7, 0xBFAA6F9DB6475FCE, // 0x1.0953f419900a7p+0, -0x1.a6f9db6475fcep-5,
+  0x3FF0000000000000, 0,                  // 0x1p+0,                0x0,
+  0x3FEE608CFD9A47AC, 0x3FB338CA9F24F53D, // 0x1.e608cfd9a47acp-1,  0x1.338ca9f24f53dp-4,
+  0x3FECA4B31F026AA0, 0x3FC476A9543891BA, // 0x1.ca4b31f026aap-1 ,  0x1.476a9543891bap-3,
+  0x3FEB2036576AFCE6, 0x3FCE840B4AC4E4D2, // 0x1.b2036576afce6p-1,  0x1.e840b4ac4e4d2p-3,
+  0x3FE9C2D163A1AA2D, 0x3FD40645F0C6651C, // 0x1.9c2d163a1aa2dp-1,  0x1.40645f0c6651cp-2,
+  0x3FE886E6037841ED, 0x3FD88E9C2C1B9FF8, // 0x1.886e6037841edp-1,  0x1.88e9c2c1b9ff8p-2,
+  0x3FE767DCF5534862, 0x3FDCE0A44EB17BCC  // 0x1.767dcf5534862p-1,  0x1.ce0a44eb17bccp-2
+]);
+
+// @ts-ignore: decorator
+@inline
+const LOG2_TABLE32_BITS = 4;
+
+// Lookup data for logf. See: https://git.musl-libc.org/cgit/musl/tree/src/math/logf.c
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG_TABLE32 = memory.data<u64>([
+  0x3FF661EC79F8F3BE, 0xBFD57BF7808CAADE, // 0x1.661ec79f8f3bep+0, -0x1.57bf7808caadep-2,
+  0x3FF571ED4AAF883D, 0xBFD2BEF0A7C06DDB, // 0x1.571ed4aaf883dp+0, -0x1.2bef0a7c06ddbp-2,
+  0x3FF49539F0F010B0, 0xBFD01EAE7F513A67, // 0x1.49539f0f010bp+0 , -0x1.01eae7f513a67p-2,
+  0x3FF3C995B0B80385, 0xBFCB31D8A68224E9, // 0x1.3c995b0b80385p+0, -0x1.b31d8a68224e9p-3,
+  0x3FF30D190C8864A5, 0xBFC6574F0AC07758, // 0x1.30d190c8864a5p+0, -0x1.6574f0ac07758p-3,
+  0x3FF25E227B0B8EA0, 0xBFC1AA2BC79C8100, // 0x1.25e227b0b8eap+0 , -0x1.1aa2bc79c81p-3  ,
+  0x3FF1BB4A4A1A343F, 0xBFBA4E76CE8C0E5E, // 0x1.1bb4a4a1a343fp+0, -0x1.a4e76ce8c0e5ep-4,
+  0x3FF12358F08AE5BA, 0xBFB1973C5A611CCC, // 0x1.12358f08ae5bap+0, -0x1.1973c5a611cccp-4,
+  0x3FF0953F419900A7, 0xBFA252F438E10C1E, // 0x1.0953f419900a7p+0, -0x1.252f438e10c1ep-5,
+  0x3FF0000000000000, 0,                  // 0x1p+0,                0,
+  0x3FEE608CFD9A47AC, 0x3FAAA5AA5DF25984, // 0x1.e608cfd9a47acp-1,  0x1.aa5aa5df25984p-5,
+  0x3FECA4B31F026AA0, 0x3FBC5E53AA362EB4, // 0x1.ca4b31f026aap-1 ,  0x1.c5e53aa362eb4p-4,
+  0x3FEB2036576AFCE6, 0x3FC526E57720DB08, // 0x1.b2036576afce6p-1,  0x1.526e57720db08p-3,
+  0x3FE9C2D163A1AA2D, 0x3FCBC2860D224770, // 0x1.9c2d163a1aa2dp-1,  0x1.bc2860d22477p-3 ,
+  0x3FE886E6037841ED, 0x3FD1058BC8A07EE1, // 0x1.886e6037841edp-1,  0x1.1058bc8a07ee1p-2,
+  0x3FE767DCF5534862, 0x3FD4043057B6EE09  // 0x1.767dcf5534862p-1,  0x1.4043057b6ee09p-2
+]);
+
+// @ts-ignore: decorator
+@inline
+const LOG_TABLE32_BITS = 4;
+
+// Lookup data for exp. See: https://git.musl-libc.org/cgit/musl/tree/src/math/exp.c
+
+// @ts-ignore: decorator
+@lazy @inline
+const EXP_TABLE64 = memory.data<u64>([
+  0x0000000000000000, 0x3FF0000000000000,
+  0x3C9B3B4F1A88BF6E, 0x3FEFF63DA9FB3335,
+  0xBC7160139CD8DC5D, 0x3FEFEC9A3E778061,
+  0xBC905E7A108766D1, 0x3FEFE315E86E7F85,
+  0x3C8CD2523567F613, 0x3FEFD9B0D3158574,
+  0xBC8BCE8023F98EFA, 0x3FEFD06B29DDF6DE,
+  0x3C60F74E61E6C861, 0x3FEFC74518759BC8,
+  0x3C90A3E45B33D399, 0x3FEFBE3ECAC6F383,
+  0x3C979AA65D837B6D, 0x3FEFB5586CF9890F,
+  0x3C8EB51A92FDEFFC, 0x3FEFAC922B7247F7,
+  0x3C3EBE3D702F9CD1, 0x3FEFA3EC32D3D1A2,
+  0xBC6A033489906E0B, 0x3FEF9B66AFFED31B,
+  0xBC9556522A2FBD0E, 0x3FEF9301D0125B51,
+  0xBC5080EF8C4EEA55, 0x3FEF8ABDC06C31CC,
+  0xBC91C923B9D5F416, 0x3FEF829AAEA92DE0,
+  0x3C80D3E3E95C55AF, 0x3FEF7A98C8A58E51,
+  0xBC801B15EAA59348, 0x3FEF72B83C7D517B,
+  0xBC8F1FF055DE323D, 0x3FEF6AF9388C8DEA,
+  0x3C8B898C3F1353BF, 0x3FEF635BEB6FCB75,
+  0xBC96D99C7611EB26, 0x3FEF5BE084045CD4,
+  0x3C9AECF73E3A2F60, 0x3FEF54873168B9AA,
+  0xBC8FE782CB86389D, 0x3FEF4D5022FCD91D,
+  0x3C8A6F4144A6C38D, 0x3FEF463B88628CD6,
+  0x3C807A05B0E4047D, 0x3FEF3F49917DDC96,
+  0x3C968EFDE3A8A894, 0x3FEF387A6E756238,
+  0x3C875E18F274487D, 0x3FEF31CE4FB2A63F,
+  0x3C80472B981FE7F2, 0x3FEF2B4565E27CDD,
+  0xBC96B87B3F71085E, 0x3FEF24DFE1F56381,
+  0x3C82F7E16D09AB31, 0x3FEF1E9DF51FDEE1,
+  0xBC3D219B1A6FBFFA, 0x3FEF187FD0DAD990,
+  0x3C8B3782720C0AB4, 0x3FEF1285A6E4030B,
+  0x3C6E149289CECB8F, 0x3FEF0CAFA93E2F56,
+  0x3C834D754DB0ABB6, 0x3FEF06FE0A31B715,
+  0x3C864201E2AC744C, 0x3FEF0170FC4CD831,
+  0x3C8FDD395DD3F84A, 0x3FEEFC08B26416FF,
+  0xBC86A3803B8E5B04, 0x3FEEF6C55F929FF1,
+  0xBC924AEDCC4B5068, 0x3FEEF1A7373AA9CB,
+  0xBC9907F81B512D8E, 0x3FEEECAE6D05D866,
+  0xBC71D1E83E9436D2, 0x3FEEE7DB34E59FF7,
+  0xBC991919B3CE1B15, 0x3FEEE32DC313A8E5,
+  0x3C859F48A72A4C6D, 0x3FEEDEA64C123422,
+  0xBC9312607A28698A, 0x3FEEDA4504AC801C,
+  0xBC58A78F4817895B, 0x3FEED60A21F72E2A,
+  0xBC7C2C9B67499A1B, 0x3FEED1F5D950A897,
+  0x3C4363ED60C2AC11, 0x3FEECE086061892D,
+  0x3C9666093B0664EF, 0x3FEECA41ED1D0057,
+  0x3C6ECCE1DAA10379, 0x3FEEC6A2B5C13CD0,
+  0x3C93FF8E3F0F1230, 0x3FEEC32AF0D7D3DE,
+  0x3C7690CEBB7AAFB0, 0x3FEEBFDAD5362A27,
+  0x3C931DBDEB54E077, 0x3FEEBCB299FDDD0D,
+  0xBC8F94340071A38E, 0x3FEEB9B2769D2CA7,
+  0xBC87DECCDC93A349, 0x3FEEB6DAA2CF6642,
+  0xBC78DEC6BD0F385F, 0x3FEEB42B569D4F82,
+  0xBC861246EC7B5CF6, 0x3FEEB1A4CA5D920F,
+  0x3C93350518FDD78E, 0x3FEEAF4736B527DA,
+  0x3C7B98B72F8A9B05, 0x3FEEAD12D497C7FD,
+  0x3C9063E1E21C5409, 0x3FEEAB07DD485429,
+  0x3C34C7855019C6EA, 0x3FEEA9268A5946B7,
+  0x3C9432E62B64C035, 0x3FEEA76F15AD2148,
+  0xBC8CE44A6199769F, 0x3FEEA5E1B976DC09,
+  0xBC8C33C53BEF4DA8, 0x3FEEA47EB03A5585,
+  0xBC845378892BE9AE, 0x3FEEA34634CCC320,
+  0xBC93CEDD78565858, 0x3FEEA23882552225,
+  0x3C5710AA807E1964, 0x3FEEA155D44CA973,
+  0xBC93B3EFBF5E2228, 0x3FEEA09E667F3BCD,
+  0xBC6A12AD8734B982, 0x3FEEA012750BDABF,
+  0xBC6367EFB86DA9EE, 0x3FEE9FB23C651A2F,
+  0xBC80DC3D54E08851, 0x3FEE9F7DF9519484,
+  0xBC781F647E5A3ECF, 0x3FEE9F75E8EC5F74,
+  0xBC86EE4AC08B7DB0, 0x3FEE9F9A48A58174,
+  0xBC8619321E55E68A, 0x3FEE9FEB564267C9,
+  0x3C909CCB5E09D4D3, 0x3FEEA0694FDE5D3F,
+  0xBC7B32DCB94DA51D, 0x3FEEA11473EB0187,
+  0x3C94ECFD5467C06B, 0x3FEEA1ED0130C132,
+  0x3C65EBE1ABD66C55, 0x3FEEA2F336CF4E62,
+  0xBC88A1C52FB3CF42, 0x3FEEA427543E1A12,
+  0xBC9369B6F13B3734, 0x3FEEA589994CCE13,
+  0xBC805E843A19FF1E, 0x3FEEA71A4623C7AD,
+  0xBC94D450D872576E, 0x3FEEA8D99B4492ED,
+  0x3C90AD675B0E8A00, 0x3FEEAAC7D98A6699,
+  0x3C8DB72FC1F0EAB4, 0x3FEEACE5422AA0DB,
+  0xBC65B6609CC5E7FF, 0x3FEEAF3216B5448C,
+  0x3C7BF68359F35F44, 0x3FEEB1AE99157736,
+  0xBC93091FA71E3D83, 0x3FEEB45B0B91FFC6,
+  0xBC5DA9B88B6C1E29, 0x3FEEB737B0CDC5E5,
+  0xBC6C23F97C90B959, 0x3FEEBA44CBC8520F,
+  0xBC92434322F4F9AA, 0x3FEEBD829FDE4E50,
+  0xBC85CA6CD7668E4B, 0x3FEEC0F170CA07BA,
+  0x3C71AFFC2B91CE27, 0x3FEEC49182A3F090,
+  0x3C6DD235E10A73BB, 0x3FEEC86319E32323,
+  0xBC87C50422622263, 0x3FEECC667B5DE565,
+  0x3C8B1C86E3E231D5, 0x3FEED09BEC4A2D33,
+  0xBC91BBD1D3BCBB15, 0x3FEED503B23E255D,
+  0x3C90CC319CEE31D2, 0x3FEED99E1330B358,
+  0x3C8469846E735AB3, 0x3FEEDE6B5579FDBF,
+  0xBC82DFCD978E9DB4, 0x3FEEE36BBFD3F37A,
+  0x3C8C1A7792CB3387, 0x3FEEE89F995AD3AD,
+  0xBC907B8F4AD1D9FA, 0x3FEEEE07298DB666,
+  0xBC55C3D956DCAEBA, 0x3FEEF3A2B84F15FB,
+  0xBC90A40E3DA6F640, 0x3FEEF9728DE5593A,
+  0xBC68D6F438AD9334, 0x3FEEFF76F2FB5E47,
+  0xBC91EEE26B588A35, 0x3FEF05B030A1064A,
+  0x3C74FFD70A5FDDCD, 0x3FEF0C1E904BC1D2,
+  0xBC91BDFBFA9298AC, 0x3FEF12C25BD71E09,
+  0x3C736EAE30AF0CB3, 0x3FEF199BDD85529C,
+  0x3C8EE3325C9FFD94, 0x3FEF20AB5FFFD07A,
+  0x3C84E08FD10959AC, 0x3FEF27F12E57D14B,
+  0x3C63CDAF384E1A67, 0x3FEF2F6D9406E7B5,
+  0x3C676B2C6C921968, 0x3FEF3720DCEF9069,
+  0xBC808A1883CCB5D2, 0x3FEF3F0B555DC3FA,
+  0xBC8FAD5D3FFFFA6F, 0x3FEF472D4A07897C,
+  0xBC900DAE3875A949, 0x3FEF4F87080D89F2,
+  0x3C74A385A63D07A7, 0x3FEF5818DCFBA487,
+  0xBC82919E2040220F, 0x3FEF60E316C98398,
+  0x3C8E5A50D5C192AC, 0x3FEF69E603DB3285,
+  0x3C843A59AC016B4B, 0x3FEF7321F301B460,
+  0xBC82D52107B43E1F, 0x3FEF7C97337B9B5F,
+  0xBC892AB93B470DC9, 0x3FEF864614F5A129,
+  0x3C74B604603A88D3, 0x3FEF902EE78B3FF6,
+  0x3C83C5EC519D7271, 0x3FEF9A51FBC74C83,
+  0xBC8FF7128FD391F0, 0x3FEFA4AFA2A490DA,
+  0xBC8DAE98E223747D, 0x3FEFAF482D8E67F1,
+  0x3C8EC3BC41AA2008, 0x3FEFBA1BEE615A27,
+  0x3C842B94C3A9EB32, 0x3FEFC52B376BBA97,
+  0x3C8A64A931D185EE, 0x3FEFD0765B6E4540,
+  0xBC8E37BAE43BE3ED, 0x3FEFDBFDAD9CBE14,
+  0x3C77893B4D91CD9D, 0x3FEFE7C1819E90D8,
+  0x3C5305C14160CC89, 0x3FEFF3C22B8F71F1
+]);
+
+// @ts-ignore: decorator
+@inline
+const EXP_TABLE64_BITS = 7;
+
+// Lookup data for log2. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log2.c
+
+/* Algorithm:
+
+  x = 2^k z
+  log2(x) = k + log2(c) + log2(z/c)
+  log2(z/c) = poly(z/c - 1)
+
+where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
+into the ith one, then table entries are computed as
+
+  tab[i].invc = 1/c
+  tab[i].logc = (double)log2(c)
+  tab2[i].chi = (double)c
+  tab2[i].clo = (double)(c - (double)c)
+
+where c is near the center of the subinterval and is chosen by trying +-2^29
+floating point invc candidates around 1/center and selecting one for which
+
+  1) the rounding error in 0x1.8p10 + logc is 0,
+  2) the rounding error in z - chi - clo is < 0x1p-64 and
+  3) the rounding error in (double)log2(c) is minimized (< 0x1p-68).
+
+Note: 1) ensures that k + logc can be computed without rounding error, 2)
+ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to a
+single rounding error when there is no fast fma for z*invc - 1, 3) ensures
+that logc + poly(z/c - 1) has small error, however near x == 1 when
+|log2(x)| < 0x1p-4, this is not enough so that is special cased. */
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG2_TABLE1_64 = memory.data<u64>([
+  //     invc       ,        logc
+  0x3FF724286BB1ACF8, 0xBFE1095FEECDB000,
+  0x3FF6E1F766D2CCA1, 0xBFE08494BD76D000,
+  0x3FF6A13D0E30D48A, 0xBFE00143AEE8F800,
+  0x3FF661EC32D06C85, 0xBFDEFEC5360B4000,
+  0x3FF623FA951198F8, 0xBFDDFDD91AB7E000,
+  0x3FF5E75BA4CF026C, 0xBFDCFFAE0CC79000,
+  0x3FF5AC055A214FB8, 0xBFDC043811FDA000,
+  0x3FF571ED0F166E1E, 0xBFDB0B67323AE000,
+  0x3FF53909590BF835, 0xBFDA152F5A2DB000,
+  0x3FF5014FED61ADDD, 0xBFD9217F5AF86000,
+  0x3FF4CAB88E487BD0, 0xBFD8304DB0719000,
+  0x3FF49539B4334FEE, 0xBFD74189F9A9E000,
+  0x3FF460CBDFAFD569, 0xBFD6552BB5199000,
+  0x3FF42D664EE4B953, 0xBFD56B23A29B1000,
+  0x3FF3FB01111DD8A6, 0xBFD483650F5FA000,
+  0x3FF3C995B70C5836, 0xBFD39DE937F6A000,
+  0x3FF3991C4AB6FD4A, 0xBFD2BAA1538D6000,
+  0x3FF3698E0CE099B5, 0xBFD1D98340CA4000,
+  0x3FF33AE48213E7B2, 0xBFD0FA853A40E000,
+  0x3FF30D191985BDB1, 0xBFD01D9C32E73000,
+  0x3FF2E025CAB271D7, 0xBFCE857DA2FA6000,
+  0x3FF2B404CF13CD82, 0xBFCCD3C8633D8000,
+  0x3FF288B02C7CCB50, 0xBFCB26034C14A000,
+  0x3FF25E2263944DE5, 0xBFC97C1C2F4FE000,
+  0x3FF234563D8615B1, 0xBFC7D6023F800000,
+  0x3FF20B46E33EAF38, 0xBFC633A71A05E000,
+  0x3FF1E2EEFDCDA3DD, 0xBFC494F5E9570000,
+  0x3FF1BB4A580B3930, 0xBFC2F9E424E0A000,
+  0x3FF19453847F2200, 0xBFC162595AFDC000,
+  0x3FF16E06C0D5D73C, 0xBFBF9C9A75BD8000,
+  0x3FF1485F47B7E4C2, 0xBFBC7B575BF9C000,
+  0x3FF12358AD0085D1, 0xBFB960C60FF48000,
+  0x3FF0FEF00F532227, 0xBFB64CE247B60000,
+  0x3FF0DB2077D03A8F, 0xBFB33F78B2014000,
+  0x3FF0B7E6D65980D9, 0xBFB0387D1A42C000,
+  0x3FF0953EFE7B408D, 0xBFAA6F9208B50000,
+  0x3FF07325CAC53B83, 0xBFA47A954F770000,
+  0x3FF05197E40D1B5C, 0xBF9D23A8C50C0000,
+  0x3FF03091C1208EA2, 0xBF916A2629780000,
+  0x3FF0101025B37E21, 0xBF7720F8D8E80000,
+  0x3FEFC07EF9CAA76B, 0x3F86FE53B1500000,
+  0x3FEF4465D3F6F184, 0x3FA11CCCE10F8000,
+  0x3FEECC079F84107F, 0x3FAC4DFC8C8B8000,
+  0x3FEE573A99975AE8, 0x3FB3AA321E574000,
+  0x3FEDE5D6F0BD3DE6, 0x3FB918A0D08B8000,
+  0x3FED77B681FF38B3, 0x3FBE72E9DA044000,
+  0x3FED0CB5724DE943, 0x3FC1DCD2507F6000,
+  0x3FECA4B2DC0E7563, 0x3FC476AB03DEA000,
+  0x3FEC3F8EE8D6CB51, 0x3FC7074377E22000,
+  0x3FEBDD2B4F020C4C, 0x3FC98EDE8BA94000,
+  0x3FEB7D6C006015CA, 0x3FCC0DB86AD2E000,
+  0x3FEB20366E2E338F, 0x3FCE840AAFCEE000,
+  0x3FEAC57026295039, 0x3FD0790AB4678000,
+  0x3FEA6D01BC2731DD, 0x3FD1AC056801C000,
+  0x3FEA16D3BC3FF18B, 0x3FD2DB11D4FEE000,
+  0x3FE9C2D14967FEAD, 0x3FD406464EC58000,
+  0x3FE970E4F47C9902, 0x3FD52DBE093AF000,
+  0x3FE920FB3982BCF2, 0x3FD651902050D000,
+  0x3FE8D30187F759F1, 0x3FD771D2CDEAF000,
+  0x3FE886E5EBB9F66D, 0x3FD88E9C857D9000,
+  0x3FE83C97B658B994, 0x3FD9A80155E16000,
+  0x3FE7F405FFC61022, 0x3FDABE186ED3D000,
+  0x3FE7AD22181415CA, 0x3FDBD0F2AEA0E000,
+  0x3FE767DCF99EFF8C, 0x3FDCE0A43DBF4000
+]);
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG2_TABLE2_64 = memory.data<u64>([
+  //      chi       ,         clo
+  0x3FE6200012B90A8E, 0x3C8904AB0644B605,
+  0x3FE66000045734A6, 0x3C61FF9BEA62F7A9,
+  0x3FE69FFFC325F2C5, 0x3C827ECFCB3C90BA,
+  0x3FE6E00038B95A04, 0x3C88FF8856739326,
+  0x3FE71FFFE09994E3, 0x3C8AFD40275F82B1,
+  0x3FE7600015590E10, 0xBC72FD75B4238341,
+  0x3FE7A00012655BD5, 0x3C7808E67C242B76,
+  0x3FE7E0003259E9A6, 0xBC6208E426F622B7,
+  0x3FE81FFFEDB4B2D2, 0xBC8402461EA5C92F,
+  0x3FE860002DFAFCC3, 0x3C6DF7F4A2F29A1F,
+  0x3FE89FFFF78C6B50, 0xBC8E0453094995FD,
+  0x3FE8E00039671566, 0xBC8A04F3BEC77B45,
+  0x3FE91FFFE2BF1745, 0xBC77FA34400E203C,
+  0x3FE95FFFCC5C9FD1, 0xBC76FF8005A0695D,
+  0x3FE9A0003BBA4767, 0x3C70F8C4C4EC7E03,
+  0x3FE9DFFFE7B92DA5, 0x3C8E7FD9478C4602,
+  0x3FEA1FFFD72EFDAF, 0xBC6A0C554DCDAE7E,
+  0x3FEA5FFFDE04FF95, 0x3C867DA98CE9B26B,
+  0x3FEA9FFFCA5E8D2B, 0xBC8284C9B54C13DE,
+  0x3FEADFFFDDAD03EA, 0x3C5812C8EA602E3C,
+  0x3FEB1FFFF10D3D4D, 0xBC8EFADDAD27789C,
+  0x3FEB5FFFCE21165A, 0x3C53CB1719C61237,
+  0x3FEB9FFFD950E674, 0x3C73F7D94194CE00,
+  0x3FEBE000139CA8AF, 0x3C750AC4215D9BC0,
+  0x3FEC20005B46DF99, 0x3C6BEEA653E9C1C9,
+  0x3FEC600040B9F7AE, 0xBC7C079F274A70D6,
+  0x3FECA0006255FD8A, 0xBC7A0B4076E84C1F,
+  0x3FECDFFFD94C095D, 0x3C88F933F99AB5D7,
+  0x3FED1FFFF975D6CF, 0xBC582C08665FE1BE,
+  0x3FED5FFFA2561C93, 0xBC7B04289BD295F3,
+  0x3FED9FFF9D228B0C, 0x3C870251340FA236,
+  0x3FEDE00065BC7E16, 0xBC75011E16A4D80C,
+  0x3FEE200002F64791, 0x3C89802F09EF62E0,
+  0x3FEE600057D7A6D8, 0xBC7E0B75580CF7FA,
+  0x3FEEA00027EDC00C, 0xBC8C848309459811,
+  0x3FEEE0006CF5CB7C, 0xBC8F8027951576F4,
+  0x3FEF2000782B7DCC, 0xBC8F81D97274538F,
+  0x3FEF6000260C450A, 0xBC4071002727FFDC,
+  0x3FEF9FFFE88CD533, 0xBC581BDCE1FDA8B0,
+  0x3FEFDFFFD50F8689, 0x3C87F91ACB918E6E,
+  0x3FF0200004292367, 0x3C9B7FF365324681,
+  0x3FF05FFFE3E3D668, 0x3C86FA08DDAE957B,
+  0x3FF0A0000A85A757, 0xBC57E2DE80D3FB91,
+  0x3FF0E0001A5F3FCC, 0xBC91823305C5F014,
+  0x3FF11FFFF8AFBAF5, 0xBC8BFABB6680BAC2,
+  0x3FF15FFFE54D91AD, 0xBC9D7F121737E7EF,
+  0x3FF1A00011AC36E1, 0x3C9C000A0516F5FF,
+  0x3FF1E00019C84248, 0xBC9082FBE4DA5DA0,
+  0x3FF220000FFE5E6E, 0xBC88FDD04C9CFB43,
+  0x3FF26000269FD891, 0x3C8CFE2A7994D182,
+  0x3FF2A00029A6E6DA, 0xBC700273715E8BC5,
+  0x3FF2DFFFE0293E39, 0x3C9B7C39DAB2A6F9,
+  0x3FF31FFFF7DCF082, 0x3C7DF1336EDC5254,
+  0x3FF35FFFF05A8B60, 0xBC9E03564CCD31EB,
+  0x3FF3A0002E0EAECC, 0x3C75F0E74BD3A477,
+  0x3FF3E000043BB236, 0x3C9C7DCB149D8833,
+  0x3FF4200002D187FF, 0x3C7E08AFCF2D3D28,
+  0x3FF460000D387CB1, 0x3C820837856599A6,
+  0x3FF4A00004569F89, 0xBC89FA5C904FBCD2,
+  0x3FF4E000043543F3, 0xBC781125ED175329,
+  0x3FF51FFFCC027F0F, 0x3C9883D8847754DC,
+  0x3FF55FFFFD87B36F, 0xBC8709E731D02807,
+  0x3FF59FFFF21DF7BA, 0x3C87F79F68727B02,
+  0x3FF5DFFFEBFC3481, 0xBC9180902E30E93E
+]);
+
+// @ts-ignore: decorator
+@inline
+const LOG2_TABLE64_BITS = 6;
+
+// Lookup data for log. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log.c
+
+/* Algorithm:
+
+  x = 2^k z
+  log(x) = k ln2 + log(c) + log(z/c)
+  log(z/c) = poly(z/c - 1)
+
+where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
+into the ith one, then table entries are computed as
+
+  tab[i].invc = 1/c
+  tab[i].logc = (double)log(c)
+  tab2[i].chi = (double)c
+  tab2[i].clo = (double)(c - (double)c)
+
+where c is near the center of the subinterval and is chosen by trying +-2^29
+floating point invc candidates around 1/center and selecting one for which
+
+  1) the rounding error in 0x1.8p9 + logc is 0,
+  2) the rounding error in z - chi - clo is < 0x1p-66 and
+  3) the rounding error in (double)log(c) is minimized (< 0x1p-66).
+
+Note: 1) ensures that k*ln2hi + logc can be computed without rounding error,
+2) ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to
+a single rounding error when there is no fast fma for z*invc - 1, 3) ensures
+that logc + poly(z/c - 1) has small error, however near x == 1 when
+|log(x)| < 0x1p-4, this is not enough so that is special cased.*/
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG_TABLE1_64 = memory.data<u64>([
+  //      invc      ,        logc
+  0x3FF734F0C3E0DE9F, 0xBFD7CC7F79E69000,
+  0x3FF713786A2CE91F, 0xBFD76FEEC20D0000,
+  0x3FF6F26008FAB5A0, 0xBFD713E31351E000,
+  0x3FF6D1A61F138C7D, 0xBFD6B85B38287800,
+  0x3FF6B1490BC5B4D1, 0xBFD65D5590807800,
+  0x3FF69147332F0CBA, 0xBFD602D076180000,
+  0x3FF6719F18224223, 0xBFD5A8CA86909000,
+  0x3FF6524F99A51ED9, 0xBFD54F4356035000,
+  0x3FF63356AA8F24C4, 0xBFD4F637C36B4000,
+  0x3FF614B36B9DDC14, 0xBFD49DA7FDA85000,
+  0x3FF5F66452C65C4C, 0xBFD445923989A800,
+  0x3FF5D867B5912C4F, 0xBFD3EDF439B0B800,
+  0x3FF5BABCCB5B90DE, 0xBFD396CE448F7000,
+  0x3FF59D61F2D91A78, 0xBFD3401E17BDA000,
+  0x3FF5805612465687, 0xBFD2E9E2EF468000,
+  0x3FF56397CEE76BD3, 0xBFD2941B3830E000,
+  0x3FF54725E2A77F93, 0xBFD23EC58CDA8800,
+  0x3FF52AFF42064583, 0xBFD1E9E129279000,
+  0x3FF50F22DBB2BDDF, 0xBFD1956D2B48F800,
+  0x3FF4F38F4734DED7, 0xBFD141679AB9F800,
+  0x3FF4D843CFDE2840, 0xBFD0EDD094EF9800,
+  0x3FF4BD3EC078A3C8, 0xBFD09AA518DB1000,
+  0x3FF4A27FC3E0258A, 0xBFD047E65263B800,
+  0x3FF4880524D48434, 0xBFCFEB224586F000,
+  0x3FF46DCE1B192D0B, 0xBFCF474A7517B000,
+  0x3FF453D9D3391854, 0xBFCEA4443D103000,
+  0x3FF43A2744B4845A, 0xBFCE020D44E9B000,
+  0x3FF420B54115F8FB, 0xBFCD60A22977F000,
+  0x3FF40782DA3EF4B1, 0xBFCCC00104959000,
+  0x3FF3EE8F5D57FE8F, 0xBFCC202956891000,
+  0x3FF3D5D9A00B4CE9, 0xBFCB81178D811000,
+  0x3FF3BD60C010C12B, 0xBFCAE2C9CCD3D000,
+  0x3FF3A5242B75DAB8, 0xBFCA45402E129000,
+  0x3FF38D22CD9FD002, 0xBFC9A877681DF000,
+  0x3FF3755BC5847A1C, 0xBFC90C6D69483000,
+  0x3FF35DCE49AD36E2, 0xBFC87120A645C000,
+  0x3FF34679984DD440, 0xBFC7D68FB4143000,
+  0x3FF32F5CCEFFCB24, 0xBFC73CB83C627000,
+  0x3FF3187775A10D49, 0xBFC6A39A9B376000,
+  0x3FF301C8373E3990, 0xBFC60B3154B7A000,
+  0x3FF2EB4EBB95F841, 0xBFC5737D76243000,
+  0x3FF2D50A0219A9D1, 0xBFC4DC7B8FC23000,
+  0x3FF2BEF9A8B7FD2A, 0xBFC4462C51D20000,
+  0x3FF2A91C7A0C1BAB, 0xBFC3B08ABC830000,
+  0x3FF293726014B530, 0xBFC31B996B490000,
+  0x3FF27DFA5757A1F5, 0xBFC2875490A44000,
+  0x3FF268B39B1D3BBF, 0xBFC1F3B9F879A000,
+  0x3FF2539D838FF5BD, 0xBFC160C8252CA000,
+  0x3FF23EB7AAC9083B, 0xBFC0CE7F57F72000,
+  0x3FF22A012BA940B6, 0xBFC03CDC49FEA000,
+  0x3FF2157996CC4132, 0xBFBF57BDBC4B8000,
+  0x3FF201201DD2FC9B, 0xBFBE370896404000,
+  0x3FF1ECF4494D480B, 0xBFBD17983EF94000,
+  0x3FF1D8F5528F6569, 0xBFBBF9674ED8A000,
+  0x3FF1C52311577E7C, 0xBFBADC79202F6000,
+  0x3FF1B17C74CB26E9, 0xBFB9C0C3E7288000,
+  0x3FF19E010C2C1AB6, 0xBFB8A646B372C000,
+  0x3FF18AB07BB670BD, 0xBFB78D01B3AC0000,
+  0x3FF1778A25EFBCB6, 0xBFB674F145380000,
+  0x3FF1648D354C31DA, 0xBFB55E0E6D878000,
+  0x3FF151B990275FDD, 0xBFB4485CDEA1E000,
+  0x3FF13F0EA432D24C, 0xBFB333D94D6AA000,
+  0x3FF12C8B7210F9DA, 0xBFB22079F8C56000,
+  0x3FF11A3028ECB531, 0xBFB10E4698622000,
+  0x3FF107FBDA8434AF, 0xBFAFFA6C6AD20000,
+  0x3FF0F5EE0F4E6BB3, 0xBFADDA8D4A774000,
+  0x3FF0E4065D2A9FCE, 0xBFABBCECE4850000,
+  0x3FF0D244632CA521, 0xBFA9A1894012C000,
+  0x3FF0C0A77CE2981A, 0xBFA788583302C000,
+  0x3FF0AF2F83C636D1, 0xBFA5715E67D68000,
+  0x3FF09DDB98A01339, 0xBFA35C8A49658000,
+  0x3FF08CABAF52E7DF, 0xBFA149E364154000,
+  0x3FF07B9F2F4E28FB, 0xBF9E72C082EB8000,
+  0x3FF06AB58C358F19, 0xBF9A55F152528000,
+  0x3FF059EEA5ECF92C, 0xBF963D62CF818000,
+  0x3FF04949CDD12C90, 0xBF9228FB8CAA0000,
+  0x3FF038C6C6F0ADA9, 0xBF8C317B20F90000,
+  0x3FF02865137932A9, 0xBF8419355DAA0000,
+  0x3FF0182427EA7348, 0xBF781203C2EC0000,
+  0x3FF008040614B195, 0xBF60040979240000,
+  0x3FEFE01FF726FA1A, 0x3F6FEFF384900000,
+  0x3FEFA11CC261EA74, 0x3F87DC41353D0000,
+  0x3FEF6310B081992E, 0x3F93CEA3C4C28000,
+  0x3FEF25F63CEEADCD, 0x3F9B9FC114890000,
+  0x3FEEE9C8039113E7, 0x3FA1B0D8CE110000,
+  0x3FEEAE8078CBB1AB, 0x3FA58A5BD001C000,
+  0x3FEE741AA29D0C9B, 0x3FA95C8340D88000,
+  0x3FEE3A91830A99B5, 0x3FAD276AEF578000,
+  0x3FEE01E009609A56, 0x3FB07598E598C000,
+  0x3FEDCA01E577BB98, 0x3FB253F5E30D2000,
+  0x3FED92F20B7C9103, 0x3FB42EDD8B380000,
+  0x3FED5CAC66FB5CCE, 0x3FB606598757C000,
+  0x3FED272CAA5EDE9D, 0x3FB7DA76356A0000,
+  0x3FECF26E3E6B2CCD, 0x3FB9AB434E1C6000,
+  0x3FECBE6DA2A77902, 0x3FBB78C7BB0D6000,
+  0x3FEC8B266D37086D, 0x3FBD431332E72000,
+  0x3FEC5894BD5D5804, 0x3FBF0A3171DE6000,
+  0x3FEC26B533BB9F8C, 0x3FC067152B914000,
+  0x3FEBF583EEECE73F, 0x3FC147858292B000,
+  0x3FEBC4FD75DB96C1, 0x3FC2266ECDCA3000,
+  0x3FEB951E0C864A28, 0x3FC303D7A6C55000,
+  0x3FEB65E2C5EF3E2C, 0x3FC3DFC33C331000,
+  0x3FEB374867C9888B, 0x3FC4BA366B7A8000,
+  0x3FEB094B211D304A, 0x3FC5933928D1F000,
+  0x3FEADBE885F2EF7E, 0x3FC66ACD2418F000,
+  0x3FEAAF1D31603DA2, 0x3FC740F8EC669000,
+  0x3FEA82E63FD358A7, 0x3FC815C0F51AF000,
+  0x3FEA5740EF09738B, 0x3FC8E92954F68000,
+  0x3FEA2C2A90AB4B27, 0x3FC9BB3602F84000,
+  0x3FEA01A01393F2D1, 0x3FCA8BED1C2C0000,
+  0x3FE9D79F24DB3C1B, 0x3FCB5B515C01D000,
+  0x3FE9AE2505C7B190, 0x3FCC2967CCBCC000,
+  0x3FE9852EF297CE2F, 0x3FCCF635D5486000,
+  0x3FE95CBAEEA44B75, 0x3FCDC1BD3446C000,
+  0x3FE934C69DE74838, 0x3FCE8C01B8CFE000,
+  0x3FE90D4F2F6752E6, 0x3FCF5509C0179000,
+  0x3FE8E6528EFFD79D, 0x3FD00E6C121FB800,
+  0x3FE8BFCE9FCC007C, 0x3FD071B80E93D000,
+  0x3FE899C0DABEC30E, 0x3FD0D46B9E867000,
+  0x3FE87427AA2317FB, 0x3FD13687334BD000,
+  0x3FE84F00ACB39A08, 0x3FD1980D67234800,
+  0x3FE82A49E8653E55, 0x3FD1F8FFE0CC8000,
+  0x3FE8060195F40260, 0x3FD2595FD7636800,
+  0x3FE7E22563E0A329, 0x3FD2B9300914A800,
+  0x3FE7BEB377DCB5AD, 0x3FD3187210436000,
+  0x3FE79BAA679725C2, 0x3FD377266DEC1800,
+  0x3FE77907F2170657, 0x3FD3D54FFBAF3000,
+  0x3FE756CADBD6130C, 0x3FD432EEE32FE000
+]);
+
+// @ts-ignore: decorator
+@lazy @inline
+const LOG_TABLE2_64 = memory.data<u64>([
+  //      chi       ,         clo
+  0x3FE61000014FB66B, 0x3C7E026C91425B3C,
+  0x3FE63000034DB495, 0x3C8DBFEA48005D41,
+  0x3FE650000D94D478, 0x3C8E7FA786D6A5B7,
+  0x3FE67000074E6FAD, 0x3C61FCEA6B54254C,
+  0x3FE68FFFFEDF0FAE, 0xBC7C7E274C590EFD,
+  0x3FE6B0000763C5BC, 0xBC8AC16848DCDA01,
+  0x3FE6D0001E5CC1F6, 0x3C833F1C9D499311,
+  0x3FE6EFFFEB05F63E, 0xBC7E80041AE22D53,
+  0x3FE710000E869780, 0x3C7BFF6671097952,
+  0x3FE72FFFFC67E912, 0x3C8C00E226BD8724,
+  0x3FE74FFFDF81116A, 0xBC6E02916EF101D2,
+  0x3FE770000F679C90, 0xBC67FC71CD549C74,
+  0x3FE78FFFFA7EC835, 0x3C81BEC19EF50483,
+  0x3FE7AFFFFE20C2E6, 0xBC707E1729CC6465,
+  0x3FE7CFFFED3FC900, 0xBC808072087B8B1C,
+  0x3FE7EFFFE9261A76, 0x3C8DC0286D9DF9AE,
+  0x3FE81000049CA3E8, 0x3C897FD251E54C33,
+  0x3FE8300017932C8F, 0xBC8AFEE9B630F381,
+  0x3FE850000633739C, 0x3C89BFBF6B6535BC,
+  0x3FE87000204289C6, 0xBC8BBF65F3117B75,
+  0x3FE88FFFEBF57904, 0xBC89006EA23DCB57,
+  0x3FE8B00022BC04DF, 0xBC7D00DF38E04B0A,
+  0x3FE8CFFFE50C1B8A, 0xBC88007146FF9F05,
+  0x3FE8EFFFFC918E43, 0x3C83817BD07A7038,
+  0x3FE910001EFA5FC7, 0x3C893E9176DFB403,
+  0x3FE9300013467BB9, 0x3C7F804E4B980276,
+  0x3FE94FFFE6EE076F, 0xBC8F7EF0D9FF622E,
+  0x3FE96FFFDE3C12D1, 0xBC7082AA962638BA,
+  0x3FE98FFFF4458A0D, 0xBC87801B9164A8EF,
+  0x3FE9AFFFDD982E3E, 0xBC8740E08A5A9337,
+  0x3FE9CFFFED49FB66, 0x3C3FCE08C19BE000,
+  0x3FE9F00020F19C51, 0xBC8A3FAA27885B0A,
+  0x3FEA10001145B006, 0x3C74FF489958DA56,
+  0x3FEA300007BBF6FA, 0x3C8CBEAB8A2B6D18,
+  0x3FEA500010971D79, 0x3C88FECADD787930,
+  0x3FEA70001DF52E48, 0xBC8F41763DD8ABDB,
+  0x3FEA90001C593352, 0xBC8EBF0284C27612,
+  0x3FEAB0002A4F3E4B, 0xBC69FD043CFF3F5F,
+  0x3FEACFFFD7AE1ED1, 0xBC823EE7129070B4,
+  0x3FEAEFFFEE510478, 0x3C6A063EE00EDEA3,
+  0x3FEB0FFFDB650D5B, 0x3C5A06C8381F0AB9,
+  0x3FEB2FFFFEAACA57, 0xBC79011E74233C1D,
+  0x3FEB4FFFD995BADC, 0xBC79FF1068862A9F,
+  0x3FEB7000249E659C, 0x3C8AFF45D0864F3E,
+  0x3FEB8FFFF9871640, 0x3C7CFE7796C2C3F9,
+  0x3FEBAFFFD204CB4F, 0xBC63FF27EEF22BC4,
+  0x3FEBCFFFD2415C45, 0xBC6CFFB7EE3BEA21,
+  0x3FEBEFFFF86309DF, 0xBC814103972E0B5C,
+  0x3FEC0FFFE1B57653, 0x3C8BC16494B76A19,
+  0x3FEC2FFFF1FA57E3, 0xBC64FEEF8D30C6ED,
+  0x3FEC4FFFDCBFE424, 0xBC843F68BCEC4775,
+  0x3FEC6FFFED54B9F7, 0x3C847EA3F053E0EC,
+  0x3FEC8FFFEB998FD5, 0x3C7383068DF992F1,
+  0x3FECB0002125219A, 0xBC68FD8E64180E04,
+  0x3FECCFFFDD94469C, 0x3C8E7EBE1CC7EA72,
+  0x3FECEFFFEAFDC476, 0x3C8EBE39AD9F88FE,
+  0x3FED1000169AF82B, 0x3C757D91A8B95A71,
+  0x3FED30000D0FF71D, 0x3C89C1906970C7DA,
+  0x3FED4FFFEA790FC4, 0xBC580E37C558FE0C,
+  0x3FED70002EDC87E5, 0xBC7F80D64DC10F44,
+  0x3FED900021DC82AA, 0xBC747C8F94FD5C5C,
+  0x3FEDAFFFD86B0283, 0x3C8C7F1DC521617E,
+  0x3FEDD000296C4739, 0x3C88019EB2FFB153,
+  0x3FEDEFFFE54490F5, 0x3C6E00D2C652CC89,
+  0x3FEE0FFFCDABF694, 0xBC7F8340202D69D2,
+  0x3FEE2FFFDB52C8DD, 0x3C7B00C1CA1B0864,
+  0x3FEE4FFFF24216EF, 0x3C72FFA8B094AB51,
+  0x3FEE6FFFE88A5E11, 0xBC57F673B1EFBE59,
+  0x3FEE9000119EFF0D, 0xBC84808D5E0BC801,
+  0x3FEEAFFFDFA51744, 0x3C780006D54320B5,
+  0x3FEED0001A127FA1, 0xBC5002F860565C92,
+  0x3FEEF00007BABCC4, 0xBC8540445D35E611,
+  0x3FEF0FFFF57A8D02, 0xBC4FFB3139EF9105,
+  0x3FEF30001EE58AC7, 0x3C8A81ACF2731155,
+  0x3FEF4FFFF5823494, 0x3C8A3F41D4D7C743,
+  0x3FEF6FFFFCA94C6B, 0xBC6202F41C987875,
+  0x3FEF8FFFE1F9C441, 0x3C777DD1F477E74B,
+  0x3FEFAFFFD2E0E37E, 0xBC6F01199A7CA331,
+  0x3FEFD0001C77E49E, 0x3C7181EE4BCEACB1,
+  0x3FEFEFFFF7E0C331, 0xBC6E05370170875A,
+  0x3FF00FFFF465606E, 0xBC8A7EAD491C0ADA,
+  0x3FF02FFFF3867A58, 0xBC977F69C3FCB2E0,
+  0x3FF04FFFFDFC0D17, 0x3C97BFFE34CB945B,
+  0x3FF0700003CD4D82, 0x3C820083C0E456CB,
+  0x3FF08FFFF9F2CBE8, 0xBC6DFFDFBE37751A,
+  0x3FF0B000010CDA65, 0xBC913F7FAEE626EB,
+  0x3FF0D00001A4D338, 0x3C807DFA79489FF7,
+  0x3FF0EFFFFADAFDFD, 0xBC77040570D66BC0,
+  0x3FF110000BBAFD96, 0x3C8E80D4846D0B62,
+  0x3FF12FFFFAE5F45D, 0x3C9DBFFA64FD36EF,
+  0x3FF150000DD59AD9, 0x3C9A0077701250AE,
+  0x3FF170000F21559A, 0x3C8DFDF9E2E3DEEE,
+  0x3FF18FFFFC275426, 0x3C910030DC3B7273,
+  0x3FF1B000123D3C59, 0x3C997F7980030188,
+  0x3FF1CFFFF8299EB7, 0xBC65F932AB9F8C67,
+  0x3FF1EFFFF48AD400, 0x3C937FBF9DA75BEB,
+  0x3FF210000C8B86A4, 0x3C9F806B91FD5B22,
+  0x3FF2300003854303, 0x3C93FFC2EB9FBF33,
+  0x3FF24FFFFFBCF684, 0x3C7601E77E2E2E72,
+  0x3FF26FFFF52921D9, 0x3C7FFCBB767F0C61,
+  0x3FF2900014933A3C, 0xBC7202CA3C02412B,
+  0x3FF2B00014556313, 0xBC92808233F21F02,
+  0x3FF2CFFFEBFE523B, 0xBC88FF7E384FDCF2,
+  0x3FF2F0000BB8AD96, 0xBC85FF51503041C5,
+  0x3FF30FFFFB7AE2AF, 0xBC810071885E289D,
+  0x3FF32FFFFEAC5F7F, 0xBC91FF5D3FB7B715,
+  0x3FF350000CA66756, 0x3C957F82228B82BD,
+  0x3FF3700011FBF721, 0x3C8000BAC40DD5CC,
+  0x3FF38FFFF9592FB9, 0xBC943F9D2DB2A751,
+  0x3FF3B00004DDD242, 0x3C857F6B707638E1,
+  0x3FF3CFFFF5B2C957, 0x3C7A023A10BF1231,
+  0x3FF3EFFFEAB0B418, 0x3C987F6D66B152B0,
+  0x3FF410001532AFF4, 0x3C67F8375F198524,
+  0x3FF4300017478B29, 0x3C8301E672DC5143,
+  0x3FF44FFFE795B463, 0x3C89FF69B8B2895A,
+  0x3FF46FFFE80475E0, 0xBC95C0B19BC2F254,
+  0x3FF48FFFEF6FC1E7, 0x3C9B4009F23A2A72,
+  0x3FF4AFFFE5BEA704, 0xBC94FFB7BF0D7D45,
+  0x3FF4D000171027DE, 0xBC99C06471DC6A3D,
+  0x3FF4F0000FF03EE2, 0x3C977F890B85531C,
+  0x3FF5100012DC4BD1, 0x3C6004657166A436,
+  0x3FF530001605277A, 0xBC96BFCECE233209,
+  0x3FF54FFFECDB704C, 0xBC8902720505A1D7,
+  0x3FF56FFFEF5F54A9, 0x3C9BBFE60EC96412,
+  0x3FF5900017E61012, 0x3C887EC581AFEF90,
+  0x3FF5B00003C93E92, 0xBC9F41080ABF0CC0,
+  0x3FF5D0001D4919BC, 0xBC98812AFB254729,
+  0x3FF5EFFFE7B87A89, 0xBC947EB780ED6904
+]);
+
+// @ts-ignore: decorator
+@inline
+const LOG_TABLE64_BITS = 7;
+
+// Lookup data for pow. See: https://git.musl-libc.org/cgit/musl/tree/src/math/pow.c
+
+/* Algorithm:
+
+  x = 2^k z
+  log(x) = k ln2 + log(c) + log(z/c)
+  log(z/c) = poly(z/c - 1)
+
+where z is in [0x1.69555p-1; 0x1.69555p0] which is split into N subintervals
+and z falls into the ith one, then table entries are computed as
+
+  tab[i].invc = 1/c
+  tab[i].logc = round(0x1p43*log(c))/0x1p43
+  tab[i].logctail = (double)(log(c) - logc)
+
+where c is chosen near the center of the subinterval such that 1/c has only a
+few precision bits so z/c - 1 is exactly representible as double:
+
+  1/c = center < 1 ? round(N/center)/N : round(2*N/center)/N/2
+
+Note: |z/c - 1| < 1/N for the chosen c, |log(c) - logc - logctail| < 0x1p-97,
+the last few bits of logc are rounded away so k*ln2hi + logc has no rounding
+error and the interval for z is selected such that near x == 1, where log(x)
+is tiny, large cancellation error is avoided in logc + poly(z/c - 1). */
+
+// @ts-ignore: decorator
+@lazy @inline
+const POW_LOG_TABLE64 = memory.data<u64>([
+  //      invc      ,pad,       logc       ,       logctail
+  0x3FF6A00000000000, 0, 0xBFD62C82F2B9C800, 0x3CFAB42428375680,
+  0x3FF6800000000000, 0, 0xBFD5D1BDBF580800, 0xBD1CA508D8E0F720,
+  0x3FF6600000000000, 0, 0xBFD5767717455800, 0xBD2362A4D5B6506D,
+  0x3FF6400000000000, 0, 0xBFD51AAD872DF800, 0xBCE684E49EB067D5,
+  0x3FF6200000000000, 0, 0xBFD4BE5F95777800, 0xBD041B6993293EE0,
+  0x3FF6000000000000, 0, 0xBFD4618BC21C6000, 0x3D13D82F484C84CC,
+  0x3FF5E00000000000, 0, 0xBFD404308686A800, 0x3CDC42F3ED820B3A,
+  0x3FF5C00000000000, 0, 0xBFD3A64C55694800, 0x3D20B1C686519460,
+  0x3FF5A00000000000, 0, 0xBFD347DD9A988000, 0x3D25594DD4C58092,
+  0x3FF5800000000000, 0, 0xBFD2E8E2BAE12000, 0x3D267B1E99B72BD8,
+  0x3FF5600000000000, 0, 0xBFD2895A13DE8800, 0x3D15CA14B6CFB03F,
+  0x3FF5600000000000, 0, 0xBFD2895A13DE8800, 0x3D15CA14B6CFB03F,
+  0x3FF5400000000000, 0, 0xBFD22941FBCF7800, 0xBD165A242853DA76,
+  0x3FF5200000000000, 0, 0xBFD1C898C1699800, 0xBD1FAFBC68E75404,
+  0x3FF5000000000000, 0, 0xBFD1675CABABA800, 0x3D1F1FC63382A8F0,
+  0x3FF4E00000000000, 0, 0xBFD1058BF9AE4800, 0xBD26A8C4FD055A66,
+  0x3FF4C00000000000, 0, 0xBFD0A324E2739000, 0xBD0C6BEE7EF4030E,
+  0x3FF4A00000000000, 0, 0xBFD0402594B4D000, 0xBCF036B89EF42D7F,
+  0x3FF4A00000000000, 0, 0xBFD0402594B4D000, 0xBCF036B89EF42D7F,
+  0x3FF4800000000000, 0, 0xBFCFB9186D5E4000, 0x3D0D572AAB993C87,
+  0x3FF4600000000000, 0, 0xBFCEF0ADCBDC6000, 0x3D2B26B79C86AF24,
+  0x3FF4400000000000, 0, 0xBFCE27076E2AF000, 0xBD172F4F543FFF10,
+  0x3FF4200000000000, 0, 0xBFCD5C216B4FC000, 0x3D21BA91BBCA681B,
+  0x3FF4000000000000, 0, 0xBFCC8FF7C79AA000, 0x3D27794F689F8434,
+  0x3FF4000000000000, 0, 0xBFCC8FF7C79AA000, 0x3D27794F689F8434,
+  0x3FF3E00000000000, 0, 0xBFCBC286742D9000, 0x3D194EB0318BB78F,
+  0x3FF3C00000000000, 0, 0xBFCAF3C94E80C000, 0x3CBA4E633FCD9066,
+  0x3FF3A00000000000, 0, 0xBFCA23BC1FE2B000, 0xBD258C64DC46C1EA,
+  0x3FF3A00000000000, 0, 0xBFCA23BC1FE2B000, 0xBD258C64DC46C1EA,
+  0x3FF3800000000000, 0, 0xBFC9525A9CF45000, 0xBD2AD1D904C1D4E3,
+  0x3FF3600000000000, 0, 0xBFC87FA06520D000, 0x3D2BBDBF7FDBFA09,
+  0x3FF3400000000000, 0, 0xBFC7AB890210E000, 0x3D2BDB9072534A58,
+  0x3FF3400000000000, 0, 0xBFC7AB890210E000, 0x3D2BDB9072534A58,
+  0x3FF3200000000000, 0, 0xBFC6D60FE719D000, 0xBD10E46AA3B2E266,
+  0x3FF3000000000000, 0, 0xBFC5FF3070A79000, 0xBD1E9E439F105039,
+  0x3FF3000000000000, 0, 0xBFC5FF3070A79000, 0xBD1E9E439F105039,
+  0x3FF2E00000000000, 0, 0xBFC526E5E3A1B000, 0xBD20DE8B90075B8F,
+  0x3FF2C00000000000, 0, 0xBFC44D2B6CCB8000, 0x3D170CC16135783C,
+  0x3FF2C00000000000, 0, 0xBFC44D2B6CCB8000, 0x3D170CC16135783C,
+  0x3FF2A00000000000, 0, 0xBFC371FC201E9000, 0x3CF178864D27543A,
+  0x3FF2800000000000, 0, 0xBFC29552F81FF000, 0xBD248D301771C408,
+  0x3FF2600000000000, 0, 0xBFC1B72AD52F6000, 0xBD2E80A41811A396,
+  0x3FF2600000000000, 0, 0xBFC1B72AD52F6000, 0xBD2E80A41811A396,
+  0x3FF2400000000000, 0, 0xBFC0D77E7CD09000, 0x3D0A699688E85BF4,
+  0x3FF2400000000000, 0, 0xBFC0D77E7CD09000, 0x3D0A699688E85BF4,
+  0x3FF2200000000000, 0, 0xBFBFEC9131DBE000, 0xBD2575545CA333F2,
+  0x3FF2000000000000, 0, 0xBFBE27076E2B0000, 0x3D2A342C2AF0003C,
+  0x3FF2000000000000, 0, 0xBFBE27076E2B0000, 0x3D2A342C2AF0003C,
+  0x3FF1E00000000000, 0, 0xBFBC5E548F5BC000, 0xBD1D0C57585FBE06,
+  0x3FF1C00000000000, 0, 0xBFBA926D3A4AE000, 0x3D253935E85BAAC8,
+  0x3FF1C00000000000, 0, 0xBFBA926D3A4AE000, 0x3D253935E85BAAC8,
+  0x3FF1A00000000000, 0, 0xBFB8C345D631A000, 0x3D137C294D2F5668,
+  0x3FF1A00000000000, 0, 0xBFB8C345D631A000, 0x3D137C294D2F5668,
+  0x3FF1800000000000, 0, 0xBFB6F0D28AE56000, 0xBD269737C93373DA,
+  0x3FF1600000000000, 0, 0xBFB51B073F062000, 0x3D1F025B61C65E57,
+  0x3FF1600000000000, 0, 0xBFB51B073F062000, 0x3D1F025B61C65E57,
+  0x3FF1400000000000, 0, 0xBFB341D7961BE000, 0x3D2C5EDACCF913DF,
+  0x3FF1400000000000, 0, 0xBFB341D7961BE000, 0x3D2C5EDACCF913DF,
+  0x3FF1200000000000, 0, 0xBFB16536EEA38000, 0x3D147C5E768FA309,
+  0x3FF1000000000000, 0, 0xBFAF0A30C0118000, 0x3D2D599E83368E91,
+  0x3FF1000000000000, 0, 0xBFAF0A30C0118000, 0x3D2D599E83368E91,
+  0x3FF0E00000000000, 0, 0xBFAB42DD71198000, 0x3D1C827AE5D6704C,
+  0x3FF0E00000000000, 0, 0xBFAB42DD71198000, 0x3D1C827AE5D6704C,
+  0x3FF0C00000000000, 0, 0xBFA77458F632C000, 0xBD2CFC4634F2A1EE,
+  0x3FF0C00000000000, 0, 0xBFA77458F632C000, 0xBD2CFC4634F2A1EE,
+  0x3FF0A00000000000, 0, 0xBFA39E87B9FEC000, 0x3CF502B7F526FEAA,
+  0x3FF0A00000000000, 0, 0xBFA39E87B9FEC000, 0x3CF502B7F526FEAA,
+  0x3FF0800000000000, 0, 0xBF9F829B0E780000, 0xBD2980267C7E09E4,
+  0x3FF0800000000000, 0, 0xBF9F829B0E780000, 0xBD2980267C7E09E4,
+  0x3FF0600000000000, 0, 0xBF97B91B07D58000, 0xBD288D5493FAA639,
+  0x3FF0400000000000, 0, 0xBF8FC0A8B0FC0000, 0xBCDF1E7CF6D3A69C,
+  0x3FF0400000000000, 0, 0xBF8FC0A8B0FC0000, 0xBCDF1E7CF6D3A69C,
+  0x3FF0200000000000, 0, 0xBF7FE02A6B100000, 0xBD19E23F0DDA40E4,
+  0x3FF0200000000000, 0, 0xBF7FE02A6B100000, 0xBD19E23F0DDA40E4,
+  0x3FF0000000000000, 0, 0,                  0,
+  0x3FF0000000000000, 0, 0,                  0,
+  0x3FEFC00000000000, 0, 0x3F80101575890000, 0xBD10C76B999D2BE8,
+  0x3FEF800000000000, 0, 0x3F90205658938000, 0xBD23DC5B06E2F7D2,
+  0x3FEF400000000000, 0, 0x3F98492528C90000, 0xBD2AA0BA325A0C34,
+  0x3FEF000000000000, 0, 0x3FA0415D89E74000, 0x3D0111C05CF1D753,
+  0x3FEEC00000000000, 0, 0x3FA466AED42E0000, 0xBD2C167375BDFD28,
+  0x3FEE800000000000, 0, 0x3FA894AA149FC000, 0xBD197995D05A267D,
+  0x3FEE400000000000, 0, 0x3FACCB73CDDDC000, 0xBD1A68F247D82807,
+  0x3FEE200000000000, 0, 0x3FAEEA31C006C000, 0xBD0E113E4FC93B7B,
+  0x3FEDE00000000000, 0, 0x3FB1973BD1466000, 0xBD25325D560D9E9B,
+  0x3FEDA00000000000, 0, 0x3FB3BDF5A7D1E000, 0x3D2CC85EA5DB4ED7,
+  0x3FED600000000000, 0, 0x3FB5E95A4D97A000, 0xBD2C69063C5D1D1E,
+  0x3FED400000000000, 0, 0x3FB700D30AEAC000, 0x3CEC1E8DA99DED32,
+  0x3FED000000000000, 0, 0x3FB9335E5D594000, 0x3D23115C3ABD47DA,
+  0x3FECC00000000000, 0, 0x3FBB6AC88DAD6000, 0xBD1390802BF768E5,
+  0x3FECA00000000000, 0, 0x3FBC885801BC4000, 0x3D2646D1C65AACD3,
+  0x3FEC600000000000, 0, 0x3FBEC739830A2000, 0xBD2DC068AFE645E0,
+  0x3FEC400000000000, 0, 0x3FBFE89139DBE000, 0xBD2534D64FA10AFD,
+  0x3FEC000000000000, 0, 0x3FC1178E8227E000, 0x3D21EF78CE2D07F2,
+  0x3FEBE00000000000, 0, 0x3FC1AA2B7E23F000, 0x3D2CA78E44389934,
+  0x3FEBA00000000000, 0, 0x3FC2D1610C868000, 0x3D039D6CCB81B4A1,
+  0x3FEB800000000000, 0, 0x3FC365FCB0159000, 0x3CC62FA8234B7289,
+  0x3FEB400000000000, 0, 0x3FC4913D8333B000, 0x3D25837954FDB678,
+  0x3FEB200000000000, 0, 0x3FC527E5E4A1B000, 0x3D2633E8E5697DC7,
+  0x3FEAE00000000000, 0, 0x3FC6574EBE8C1000, 0x3D19CF8B2C3C2E78,
+  0x3FEAC00000000000, 0, 0x3FC6F0128B757000, 0xBD25118DE59C21E1,
+  0x3FEAA00000000000, 0, 0x3FC7898D85445000, 0xBD1C661070914305,
+  0x3FEA600000000000, 0, 0x3FC8BEAFEB390000, 0xBD073D54AAE92CD1,
+  0x3FEA400000000000, 0, 0x3FC95A5ADCF70000, 0x3D07F22858A0FF6F,
+  0x3FEA000000000000, 0, 0x3FCA93ED3C8AE000, 0xBD28724350562169,
+  0x3FE9E00000000000, 0, 0x3FCB31D8575BD000, 0xBD0C358D4EACE1AA,
+  0x3FE9C00000000000, 0, 0x3FCBD087383BE000, 0xBD2D4BC4595412B6,
+  0x3FE9A00000000000, 0, 0x3FCC6FFBC6F01000, 0xBCF1EC72C5962BD2,
+  0x3FE9600000000000, 0, 0x3FCDB13DB0D49000, 0xBD2AFF2AF715B035,
+  0x3FE9400000000000, 0, 0x3FCE530EFFE71000, 0x3CC212276041F430,
+  0x3FE9200000000000, 0, 0x3FCEF5ADE4DD0000, 0xBCCA211565BB8E11,
+  0x3FE9000000000000, 0, 0x3FCF991C6CB3B000, 0x3D1BCBECCA0CDF30,
+  0x3FE8C00000000000, 0, 0x3FD07138604D5800, 0x3CF89CDB16ED4E91,
+  0x3FE8A00000000000, 0, 0x3FD0C42D67616000, 0x3D27188B163CEAE9,
+  0x3FE8800000000000, 0, 0x3FD1178E8227E800, 0xBD2C210E63A5F01C,
+  0x3FE8600000000000, 0, 0x3FD16B5CCBACF800, 0x3D2B9ACDF7A51681,
+  0x3FE8400000000000, 0, 0x3FD1BF99635A6800, 0x3D2CA6ED5147BDB7,
+  0x3FE8200000000000, 0, 0x3FD214456D0EB800, 0x3D0A87DEBA46BAEA,
+  0x3FE7E00000000000, 0, 0x3FD2BEF07CDC9000, 0x3D2A9CFA4A5004F4,
+  0x3FE7C00000000000, 0, 0x3FD314F1E1D36000, 0xBD28E27AD3213CB8,
+  0x3FE7A00000000000, 0, 0x3FD36B6776BE1000, 0x3D116ECDB0F177C8,
+  0x3FE7800000000000, 0, 0x3FD3C25277333000, 0x3D183B54B606BD5C,
+  0x3FE7600000000000, 0, 0x3FD419B423D5E800, 0x3D08E436EC90E09D,
+  0x3FE7400000000000, 0, 0x3FD4718DC271C800, 0xBD2F27CE0967D675,
+  0x3FE7200000000000, 0, 0x3FD4C9E09E173000, 0xBD2E20891B0AD8A4,
+  0x3FE7000000000000, 0, 0x3FD522AE0738A000, 0x3D2EBE708164C759,
+  0x3FE6E00000000000, 0, 0x3FD57BF753C8D000, 0x3D1FADEDEE5D40EF,
+  0x3FE6C00000000000, 0, 0x3FD5D5BDDF596000, 0xBD0A0B2A08A465DC
+]);
+
+// @ts-ignore: decorator
+@inline
+const POW_LOG_TABLE64_BITS = 7;
+
+
+/** @internal */
+// @ts-ignore: decorator
+@lazy var
+  rempio2_32_y: f64,
+  rempio2_y0: f64,
+  rempio2_y1: f64,
+  res128_hi:  u64;
+
+/** @internal */
+// @ts-ignore: decorator
+@lazy export var
+  sincos_cos32: f32,
+  sincos_cos64: f64;
+
+
+/** @internal */
+export function murmurHash3(h: u64): u64 { // Force all bits of a hash block to avalanche
+  h ^= h >> 33;                     // see: https://github.com/aappleby/smhasher
+  h *= 0xFF51AFD7ED558CCD;
+  h ^= h >> 33;
+  h *= 0xC4CEB9FE1A85EC53;
+  h ^= h >> 33;
+  return h;
+}
+
+/** @internal */
+function R32(z: f32): f32 { // Rational approximation of (asin(x)-x)/x^3
+  const                    // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above
+    pS0 = reinterpret<f32>(0x3E2AAA75), //  1.6666586697e-01f
+    pS1 = reinterpret<f32>(0xBD2F13BA), // -4.2743422091e-02f
+    pS2 = reinterpret<f32>(0xBC0DD36B), // -8.6563630030e-03f
+    qS1 = reinterpret<f32>(0xBF34E5AE); // -7.0662963390e-01f
+
+  var p = z * (pS0 + z * (pS1 + z * pS2));
+  var q: f32 = 1 + z * qS1;
+  return p / q;
+}
+
+/** @internal */
+function R64(z: f64): f64 { // Rational approximation of (asin(x)-x)/x^3
+  const                   // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above
+    pS0 = reinterpret<f64>(0x3FC5555555555555), //  1.66666666666666657415e-01
+    pS1 = reinterpret<f64>(0xBFD4D61203EB6F7D), // -3.25565818622400915405e-01
+    pS2 = reinterpret<f64>(0x3FC9C1550E884455), //  2.01212532134862925881e-01
+    pS3 = reinterpret<f64>(0xBFA48228B5688F3B), // -4.00555345006794114027e-02
+    pS4 = reinterpret<f64>(0x3F49EFE07501B288), //  7.91534994289814532176e-04
+    pS5 = reinterpret<f64>(0x3F023DE10DFDF709), //  3.47933107596021167570e-05
+    qS1 = reinterpret<f64>(0xC0033A271C8A2D4B), // -2.40339491173441421878e+00
+    qS2 = reinterpret<f64>(0x40002AE59C598AC8), //  2.02094576023350569471e+00
+    qS3 = reinterpret<f64>(0xBFE6066C1B8D0159), // -6.88283971605453293030e-01
+    qS4 = reinterpret<f64>(0x3FB3B8C5B12E9282); //  7.70381505559019352791e-02
+
+  var p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5)))));
+  var q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4)));
+  return p / q;
+}
+
+// @ts-ignore: decorator
+@inline
+function expo2_32(x: f32, sign: f32): f32 { // exp(x)/2 for x >= log(DBL_MAX)
+  const                                // see: musl/src/math/__expo2f.c
+    k    = <u32>235,
+    kln2 = reinterpret<f32>(0x4322E3BC); // 0x1.45c778p+7f
+  var scale = reinterpret<f32>(<u32>(0x7F + (k >> 1)) << 23);
+  // in directed rounding correct sign before rounding or overflow is important
+  return exp32(x - kln2) * (sign * scale) * scale;
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function expo2_64(x: f64, sign: f64): f64 { // exp(x)/2 for x >= log(DBL_MAX)
+  const                       // see: musl/src/math/__expo2.c
+    k    = <u32>2043,
+    kln2 = reinterpret<f64>(0x40962066151ADD8B); // 0x1.62066151add8bp+10
+  var scale = reinterpret<f64>(<u64>((<u32>0x3FF + k / 2) << 20) << 32);
+  // in directed rounding correct sign before rounding or overflow is important
+  return exp64(x - kln2) * (sign * scale) * scale;
+}
+
+/** @internal */
+// helper for pow32
+// See: jdh8/metallic/src/math/float/log2f.c and jdh8/metallic/src/math/float/kernel/atanh.h
+// @ts-ignore: decorator
+@inline
+function log2up32(x: f64): f64 {
+  const
+    log2e = reinterpret<f64>(0x3FF71547652B82FE), // 1.44269504088896340736
+    c0 = reinterpret<f64>(0x3FD555554FD9CAEF),    // 0.33333332822728226129
+    c1 = reinterpret<f64>(0x3FC999A7A8AF4132),    // 0.20000167595436263505
+    c2 = reinterpret<f64>(0x3FC2438D79437030),    // 0.14268654271188685375
+    c3 = reinterpret<f64>(0x3FBE2F663B001C97);    // 0.11791075649681414150
+
+  var i = reinterpret<i64>(x);
+  var exponent = (i - 0x3FE6A09E667F3BCD) >> 52;
+  x = reinterpret<f64>(i - (exponent << 52));
+  x = (x - 1) / (x + 1);
+  var xx = x * x;
+  var y = x + x * xx * (c0 + c1 * xx + (c2 + c3 * xx) * (xx * xx));
+  return (2 * log2e) * y + <f64>exponent;
+}
+
+/** @internal */
+// helper for pow32
+// See: jdh8/metallic/src/math/float/exp2f.h and jdh8/metallic/blob/master/src/math/float/kernel/exp2f.h
+// @ts-ignore: decorator
+@inline
+function exp2up32(x: f64): f64 {
+  const
+    c0 = reinterpret<f64>(0x3FE62E4302FCC24A), // 6.931471880289532425e-1
+    c1 = reinterpret<f64>(0x3FCEBFBE07D97B91), // 2.402265108421173406e-1
+    c2 = reinterpret<f64>(0x3FAC6AF6CCFC1A65), // 5.550357105498874537e-2
+    c3 = reinterpret<f64>(0x3F83B29E3CE9AEF6), // 9.618030771171497658e-3
+    c4 = reinterpret<f64>(0x3F55F0896145A89F), // 1.339086685300950937e-3
+    c5 = reinterpret<f64>(0x3F2446C81E384864); // 1.546973499989028719e-4
+
+  if (x < -1022) return 0;
+  if (x >= 1024) return Infinity;
+
+  var n = nearest(x);
+  x -= n;
+  var xx = x * x;
+  var y = 1 + x * (c0 + c1 * x + (c2 + c3 * x) * xx + (c4 + c5 * x) * (xx * xx));
+  return reinterpret<f64>(reinterpret<i64>(y) + (<i64>n << 52));
+}
+
+/** @internal */
+/* Helper function to eventually get bits of π/2 * |x|
+ *
+ * y = π/4 * (frac << clz(frac) >> 11)
+ * return clz(frac)
+ *
+ * Right shift 11 bits to make upper half fit in `double`
+ */
+// @ts-ignore: decorator
+@inline
+function pio2_right(q0: u64, q1: u64): u64 { // see: jdh8/metallic/blob/master/src/math/double/rem_pio2.c
+  // Bits of π/4
+  const p0: u64 = 0xC4C6628B80DC1CD1;
+  const p1: u64 = 0xC90FDAA22168C234;
+
+  const Ox1p_64 = reinterpret<f64>(0x3BF0000000000000); // 0x1p-64
+  const Ox1p_75 = reinterpret<f64>(0x3B40000000000000); // 0x1p-75
+
+  var shift = clz(q1);
+
+  q1 = q1 << shift | q0 >> (64 - shift);
+  q0 <<= shift;
+
+  var lo = umuldi(p1, q1);
+  var hi = res128_hi;
+
+  var ahi = hi >> 11;
+  var alo = lo >> 11 | hi << 53;
+  var blo = <u64>(Ox1p_75 * <f64>p0 * <f64>q1 + Ox1p_75 * <f64>p1 * <f64>q0);
+
+  rempio2_y0 = <f64>(ahi + u64(lo < blo));
+  rempio2_y1 = Ox1p_64 * <f64>(alo + blo);
+
+  return shift;
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function umuldi(u: u64, v: u64): u64 {
+  var u1: u64 , v1: u64, w0: u64, w1: u64, t: u64;
+
+  u1 = u & 0xFFFFFFFF;
+  v1 = v & 0xFFFFFFFF;
+
+  u >>= 32;
+  v >>= 32;
+
+  t  = u1 * v1;
+  w0 = t & 0xFFFFFFFF;
+  t  = u * v1 + (t >> 32);
+  w1 = t >> 32;
+  t  = u1 * v + (t & 0xFFFFFFFF);
+
+  res128_hi = u * v + w1 + (t >> 32);
+  return (t << 32) + w0;
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function pio2_32_large_quot(x: f32, u: i32): i32 { // see: jdh8/metallic/blob/master/src/math/float/rem_pio2f.c
+  const coeff = reinterpret<f64>(0x3BF921FB54442D18); // π * 0x1p-65 = 8.51530395021638647334e-20
+
+  var offset = (u >> 23) - 152;
+  var shift  = <u64>(offset & 63);
+  var tblPtr = PIO2_TABLE32 + (offset >> 6 << 3);
+
+  var b0 = load<u64>(tblPtr, 0 << 3);
+  var b1 = load<u64>(tblPtr, 1 << 3);
+  var lo: u64;
+
+  if (shift > 32) {
+    let b2 = load<u64>(tblPtr, 2 << 3);
+    lo  = b2 >> (96 - shift);
+    lo |= b1 << (shift - 32);
+  } else {
+    lo = b1 >> (32 - shift);
+  }
+
+  var hi = (b1 >> (64 - shift)) | (b0 << shift);
+  var mantissa: u64 = (u & 0x007FFFFF) | 0x00800000;
+  var product = mantissa * hi + (mantissa * lo >> 32);
+  var r: i64 = product << 2;
+  var q = <i32>((product >> 62) + (r >>> 63));
+  rempio2_32_y = copysign<f64>(coeff, x) * <f64>r;
+  return q;
+}
+
+/** @internal */
+function pio2_64_large_quot(x: f64, u: i64): i32 { // see: jdh8/metallic/blob/master/src/math/double/rem_pio2.c
+  var magnitude = u & 0x7FFFFFFFFFFFFFFF;
+  var offset = (magnitude >> 52) - 1045;
+  var shift  = offset & 63;
+  var tblPtr = PIO2_TABLE64 + (<i32>(offset >> 6) << 3);
+  var s0: u64, s1: u64, s2: u64;
+
+  var b0 = load<u64>(tblPtr, 0 << 3);
+  var b1 = load<u64>(tblPtr, 1 << 3);
+  var b2 = load<u64>(tblPtr, 2 << 3);
+
+  // Get 192 bits of 0x1p-31 / π with `offset` bits skipped
+  if (shift) {
+    let rshift = 64 - shift;
+    let b3 = load<u64>(tblPtr, 3 << 3);
+    s0 = b1 >> rshift | b0 << shift;
+    s1 = b2 >> rshift | b1 << shift;
+    s2 = b3 >> rshift | b2 << shift;
+  } else {
+    s0 = b0;
+    s1 = b1;
+    s2 = b2;
+  }
+
+  var significand = (u & 0x000FFFFFFFFFFFFF) | 0x0010000000000000;
+
+  // First 128 bits of fractional part of x/(2π)
+  var blo = umuldi(s1, significand);
+  var bhi = res128_hi;
+
+  var ahi = s0 * significand;
+  var clo = (s2 >> 32) * (significand >> 32);
+  var plo = blo + clo;
+  var phi = ahi + bhi + u64(plo < clo);
+
+  // r: u128 = p << 2
+  var rlo = plo << 2;
+  var rhi = phi << 2 | plo >> 62;
+
+  // s: i128 = r >> 127
+  var slo = <i64>rhi >> 63;
+  var shi = slo >> 1;
+  var q   = (<i64>phi >> 62) - slo;
+
+  var shifter = 0x3CB0000000000000 - (pio2_right(rlo ^ slo, rhi ^ shi) << 52);
+  var signbit = (u ^ rhi) & 0x8000000000000000;
+  var coeff   = reinterpret<f64>(shifter | signbit);
+
+  rempio2_y0 *= coeff;
+  rempio2_y1 *= coeff;
+
+  return <i32>q;
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function rempio2_32(x: f32, u: u32, sign: i32): i32 { // see: jdh8/metallic/blob/master/src/math/float/rem_pio2f.c
+  const
+    pi2hi = reinterpret<f64>(0x3FF921FB50000000), // 1.57079631090164184570
+    pi2lo = reinterpret<f64>(0x3E5110B4611A6263), // 1.58932547735281966916e-8
+    _2_pi = reinterpret<f64>(0x3FE45F306DC9C883); // 0.63661977236758134308
+
+  if (u < 0x4DC90FDB) { // π * 0x1p28
+    let q = nearest<f64>(x * _2_pi);
+    rempio2_32_y = x - q * pi2hi - q * pi2lo;
+    return <i32>q;
+  }
+
+  var q = pio2_32_large_quot(x, u);
+  return select<i32>(-q, q, sign);
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function rempio2_64(x: f64, u: u64, sign: i32): i32 {
+  const
+    pio2_1  = reinterpret<f64>(0x3FF921FB54400000), // 1.57079632673412561417e+00
+    pio2_1t = reinterpret<f64>(0x3DD0B4611A626331), // 6.07710050650619224932e-11
+    pio2_2  = reinterpret<f64>(0x3DD0B4611A600000), // 6.07710050630396597660e-11
+    pio2_2t = reinterpret<f64>(0x3BA3198A2E037073), // 2.02226624879595063154e-21
+    pio2_3  = reinterpret<f64>(0x3BA3198A2E000000), // 2.02226624871116645580e-21
+    pio2_3t = reinterpret<f64>(0x397B839A252049C1), // 8.47842766036889956997e-32
+    invpio2 = reinterpret<f64>(0x3FE45F306DC9C883); // 0.63661977236758134308
+
+  var ix = <u32>(u >> 32) & 0x7FFFFFFF;
+
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (ix < 0x4002D97C) { // |x| < 3pi/4, special case with n=+-1
+      let q = 1, z: f64, y0: f64, y1: f64;
+      if (!sign) {
+        z = x - pio2_1;
+        if (ix != 0x3FF921FB) { // 33+53 bit pi is good enough
+          y0 = z - pio2_1t;
+          y1 = (z - y0) - pio2_1t;
+        } else { // near pi/2, use 33+33+53 bit pi
+          z -= pio2_2;
+          y0 = z - pio2_2t;
+          y1 = (z - y0) - pio2_2t;
+        }
+      } else { // negative x
+        z = x + pio2_1;
+        if (ix != 0x3FF921FB) { // 33+53 bit pi is good enough
+          y0 = z + pio2_1t;
+          y1 = (z - y0) + pio2_1t;
+        } else { // near pi/2, use 33+33+53 bit pi
+          z += pio2_2;
+          y0 = z + pio2_2t;
+          y1 = (z - y0) + pio2_2t;
+        }
+        q = -1;
+      }
+      rempio2_y0 = y0;
+      rempio2_y1 = y1;
+      return q;
+    }
+  }
+
+  if (ix < 0x413921FB) { // |x| ~< 2^20*pi/2 (1647099)
+    // Use precise Cody Waite scheme
+    let q  = nearest<f64>(x * invpio2);
+    let r  = x - q * pio2_1;
+    let w  = q * pio2_1t; // 1st round good to 85 bit
+    let j  = ix >> 20;
+    let y0 = r - w;
+    let hi = <u32>(reinterpret<u64>(y0) >> 32);
+    let i  = j - ((hi >> 20) & 0x7FF);
+
+    if (i > 16) { // 2nd iteration needed, good to 118
+      let t = r;
+      w  = q * pio2_2;
+      r  = t - w;
+      w  = q * pio2_2t - ((t - r) - w);
+      y0 = r - w;
+      hi = <u32>(reinterpret<u64>(y0) >> 32);
+      i = j - ((hi >> 20) & 0x7FF);
+      if (i > 49) { // 3rd iteration need, 151 bits acc
+        let t = r;
+        w  = q * pio2_3;
+        r  = t - w;
+        w  = q * pio2_3t - ((t - r) - w);
+        y0 = r - w;
+      }
+    }
+    let y1 = (r - y0) - w;
+    rempio2_y0 = y0;
+    rempio2_y1 = y1;
+    return <i32>q;
+  }
+  var q = pio2_64_large_quot(x, u);
+  return select<i32>(-q, q, sign);
+}
+
+/** @internal */
+// |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]).
+// @ts-ignore: decorator
+@inline
+function sin32_kern(x: f64): f32 { // see: musl/tree/src/math/__sindf.c
+  const
+    S1 = reinterpret<f64>(0xBFC5555554CBAC77), // -0x15555554cbac77.0p-55
+    S2 = reinterpret<f64>(0x3F811110896EFBB2), //  0x111110896efbb2.0p-59
+    S3 = reinterpret<f64>(0xBF2A00F9E2CAE774), // -0x1a00f9e2cae774.0p-65
+    S4 = reinterpret<f64>(0x3EC6CD878C3B46A7); //  0x16cd878c3b46a7.0p-71
+
+  var z = x * x;
+  var w = z * z;
+  var r = S3 + z * S4;
+  var s = z * x;
+  return <f32>((x + s * (S1 + z * S2)) + s * w * r);
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function sin64_kern(x: f64, y: f64, iy: i32): f64 { // see: musl/tree/src/math/__sin.c
+  const
+    S1 = reinterpret<f64>(0xBFC5555555555549), // -1.66666666666666324348e-01
+    S2 = reinterpret<f64>(0x3F8111111110F8A6), //  8.33333333332248946124e-03
+    S3 = reinterpret<f64>(0xBF2A01A019C161D5), // -1.98412698298579493134e-04
+    S4 = reinterpret<f64>(0x3EC71DE357B1FE7D), //  2.75573137070700676789e-06
+    S5 = reinterpret<f64>(0xBE5AE5E68A2B9CEB), // -2.50507602534068634195e-08
+    S6 = reinterpret<f64>(0x3DE5D93A5ACFD57C); //  1.58969099521155010221e-10
+
+  var z = x * x;
+  var w = z * z;
+  var r = S2 + z * (S3 + z * S4) + z * w * (S5 + z * S6);
+  var v = z * x;
+  if (!iy) {
+    return x + v * (S1 + z * r);
+  } else {
+    return x - ((z * (0.5 * y - v * r) - y) - v * S1);
+  }
+}
+
+/** @internal */
+// |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]).
+// @ts-ignore: decorator
+@inline
+function cos32_kern(x: f64): f32 { // see: musl/tree/src/math/__cosdf.c
+  const
+    C0 = reinterpret<f64>(0xBFDFFFFFFD0C5E81), // -0x1ffffffd0c5e81.0p-54
+    C1 = reinterpret<f64>(0x3FA55553E1053A42), //  0x155553e1053a42.0p-57
+    C2 = reinterpret<f64>(0xBF56C087E80F1E27), // -0x16c087e80f1e27.0p-62
+    C3 = reinterpret<f64>(0x3EF99342E0EE5069); //  0x199342e0ee5069.0p-68
+
+  var z = x * x;
+  var w = z * z;
+  var r = C2 + z * C3;
+  return <f32>(((1 + z * C0) + w * C1) + (w * z) * r);
+}
+
+/** @internal */
+// @ts-ignore: decorator
+@inline
+function cos64_kern(x: f64, y: f64): f64 { // see: musl/tree/src/math/__cos.c
+  const
+    C1 = reinterpret<f64>(0x3FA555555555554C), //  4.16666666666666019037e-02
+    C2 = reinterpret<f64>(0xBF56C16C16C15177), // -1.38888888888741095749e-03
+    C3 = reinterpret<f64>(0x3EFA01A019CB1590), //  2.48015872894767294178e-05
+    C4 = reinterpret<f64>(0xBE927E4F809C52AD), // -2.75573143513906633035e-07
+    C5 = reinterpret<f64>(0x3E21EE9EBDB4B1C4), //  2.08757232129817482790e-09
+    C6 = reinterpret<f64>(0xBDA8FAE9BE8838D4); // -1.13596475577881948265e-11
+
+  var z = x * x;
+  var w = z * z;
+  var r = z * (C1 + z * (C2 + z * C3)) + w * w * (C4 + z * (C5 + z * C6));
+  var hz = 0.5 * z;
+  w = 1.0 - hz;
+  return w + (((1.0 - w) - hz) + (z * r - x * y));
+}
+
+/** @internal */
+// |tan(x)/x - t(x)| < 2**-25.5 (~[-2e-08, 2e-08]).
+// @ts-ignore: decorator
+@inline
+function tan32_kern(x: f64, odd: i32): f32 { // see: musl/tree/src/math/__tandf.c
+  const
+    T0 = reinterpret<f64>(0x3FD5554D3418C99F), // 0x15554d3418c99f.0p-54
+    T1 = reinterpret<f64>(0x3FC112FD38999F72), // 0x1112fd38999f72.0p-55
+    T2 = reinterpret<f64>(0x3FAB54C91D865AFE), // 0x1b54c91d865afe.0p-57
+    T3 = reinterpret<f64>(0x3F991DF3908C33CE), // 0x191df3908c33ce.0p-58
+    T4 = reinterpret<f64>(0x3F685DADFCECF44E), // 0x185dadfcecf44e.0p-61
+    T5 = reinterpret<f64>(0x3F8362B9BF971BCD); // 0x1362b9bf971bcd.0p-59
+
+  var z = x * x;
+  var r = T4 + z * T5;
+  var t = T2 + z * T3;
+  var w = z * z;
+  var s = z * x;
+  var u = T0 + z * T1;
+
+  r = (x + s * u) + (s * w) * (t + w * r);
+  return <f32>(odd ? -1 / r : r);
+}
+
+/** @internal */
+function tan64_kern(x: f64, y: f64, iy: i32): f64 { // see: src/lib/msun/src/k_tan.c
+  const
+    T0  = reinterpret<f64>(0x3FD5555555555563), //  3.33333333333334091986e-01
+    T1  = reinterpret<f64>(0x3FC111111110FE7A), //  1.33333333333201242699e-01
+    T2  = reinterpret<f64>(0x3FABA1BA1BB341FE), //  5.39682539762260521377e-02
+    T3  = reinterpret<f64>(0x3F9664F48406D637), //  2.18694882948595424599e-02
+    T4  = reinterpret<f64>(0x3F8226E3E96E8493), //  8.86323982359930005737e-03
+    T5  = reinterpret<f64>(0x3F6D6D22C9560328), //  3.59207910759131235356e-03
+    T6  = reinterpret<f64>(0x3F57DBC8FEE08315), //  1.45620945432529025516e-03
+    T7  = reinterpret<f64>(0x3F4344D8F2F26501), //  5.88041240820264096874e-04
+    T8  = reinterpret<f64>(0x3F3026F71A8D1068), //  2.46463134818469906812e-04
+    T9  = reinterpret<f64>(0x3F147E88A03792A6), //  7.81794442939557092300e-05
+    T10 = reinterpret<f64>(0x3F12B80F32F0A7E9), //  7.14072491382608190305e-05
+    T11 = reinterpret<f64>(0xBEF375CBDB605373), // -1.85586374855275456654e-05
+    T12 = reinterpret<f64>(0x3EFB2A7074BF7AD4); //  2.59073051863633712884e-05
+
+  const
+    one    = reinterpret<f64>(0x3FF0000000000000), // 1.00000000000000000000e+00
+    pio4   = reinterpret<f64>(0x3FE921FB54442D18), // 7.85398163397448278999e-01
+    pio4lo = reinterpret<f64>(0x3C81A62633145C07); // 3.06161699786838301793e-17
+
+  var z: f64, r: f64, v: f64, w: f64, s: f64;
+  var hx = <i32>(reinterpret<u64>(x) >> 32); // high word of x
+  var ix = hx & 0x7FFFFFFF; // high word of |x|
+  var big = ix >= 0x3FE59428;
+  if (big) { // |x| >= 0.6744
+    if (hx < 0) { x = -x, y = -y; }
+    z = pio4 - x;
+    w = pio4lo - y;
+    x = z + w;
+    y = 0.0;
+  }
+  z = x * x;
+  w = z * z;
+  r = T1 + w * (T3 + w * (T5 + w * (T7 + w * (T9 + w * T11))));
+  v = z * (T2 + w * (T4 + w * (T6 + w * (T8 + w * (T10 + w * T12)))));
+  s = z * x;
+  r = y + z * (s * (r + v) + y);
+  r += T0 * s;
+  w = x + r;
+  if (big) {
+    v = iy;
+    return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r)));
+  }
+  if (iy == 1) return w;
+  var a: f64, t: f64;
+  z = w;
+  z = reinterpret<f64>(reinterpret<u64>(z) & 0xFFFFFFFF00000000);
+  v = r - (z - x);  // z + v = r + x
+  t = a = -one / w; // a = -1.0 / w
+  t = reinterpret<f64>(reinterpret<u64>(t) & 0xFFFFFFFF00000000);
+  s = one + t * z;
+  return t + a * (s + t * v);
+}
+
+/** @internal */
+export function dtoi32(x: f64): i32 {
+  if (ASC_SHRINK_LEVEL > 0) {
+    const inv32 = 1.0 / 4294967296;
+    return <i32><i64>(x - 4294967296 * floor(x * inv32));
+  } else {
+    let result = 0;
+    let u = reinterpret<u64>(x);
+    let e = (u >> 52) & 0x7FF;
+    if (e <= 1023 + 30) {
+      result = <i32>x;
+    } else if (e <= 1023 + 30 + 53) {
+      let v = (u & ((<u64>1 << 52) - 1)) | (<u64>1 << 52);
+      v = v << e - 1023 - 52 + 32;
+      result = <i32>(v >> 32);
+      result = select<i32>(-result, result, u >> 63);
+    }
+    return result;
+  }
+}
+
+export function ipow32(x: i32, e: i32): i32 {
+  var out = 1;
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (x == 2) {
+      return select<i32>(1 << e, 0, <u32>e < 32);
+    }
+    if (e <= 0) {
+      if (x == -1) return select<i32>(-1, 1, e & 1);
+      return i32(e == 0) | i32(x == 1);
+    }
+    else if (e == 1) return x;
+    else if (e == 2) return x * x;
+    else if (e < 32) {
+      let log = 32 - clz<i32>(e);
+      // 32 = 2 ^ 5, so need only five cases.
+      // But some extra cases needs for properly overflowing
+      switch (log) {
+        case 5: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 4: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 3: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 2: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 1: {
+          if (e & 1) out *= x;
+        }
+      }
+      return out;
+    }
+  }
+  while (e) {
+    if (e & 1) out *= x;
+    e >>>= 1;
+    x *= x;
+  }
+  return out;
+}
+
+export function ipow64(x: i64, e: i64): i64 {
+  var out: i64 = 1;
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (x == 2) {
+      return select<i64>(1 << e, 0, <u64>e < 64);
+    }
+    if (e <= 0) {
+      if (x == -1) return select<i64>(-1, 1, e & 1);
+      return i64(e == 0) | i64(x == 1);
+    }
+    else if (e == 1) return x;
+    else if (e == 2) return x * x;
+    else if (e < 64) {
+      let log = 64 - <i32>clz<i64>(e);
+      // 64 = 2 ^ 6, so need only six cases.
+      // But some extra cases needs for properly overflowing
+      switch (log) {
+        case 6: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 5: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 4: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 3: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 2: {
+          if (e & 1) out *= x;
+          e >>>= 1;
+          x *= x;
+        }
+        case 1: {
+          if (e & 1) out *= x;
+        }
+      }
+      return out;
+    }
+  }
+  while (e) {
+    if (e & 1) out *= x;
+    e >>>= 1;
+    x *= x;
+  }
+  return out;
+}
+
+export function acos32(x: f32): f32 { // see: musl/src/math/acosf.c and SUN COPYRIGHT NOTICE above
+  const
+    pio2_hi   = reinterpret<f32>(0x3FC90FDA), // 1.5707962513e+00f
+    pio2_lo   = reinterpret<f32>(0x33A22168), // 7.5497894159e-08f
+    Ox1p_120f = reinterpret<f32>(0x03800000); // 0x1p-120f
+
+  var hx = reinterpret<u32>(x);
+  var ix = hx & 0x7FFFFFFF;
+  if (ix >= 0x3F800000) {
+    if (ix == 0x3F800000) {
+      if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;
+      return 0;
+    }
+    return 0 / (x - x);
+  }
+  if (ix < 0x3F000000) {
+    if (ix <= 0x32800000) return pio2_hi + Ox1p_120f;
+    return pio2_hi - (x - (pio2_lo - x * R32(x * x)));
+  }
+  var z: f32, w: f32, s: f32;
+  if (hx >> 31) {
+    // z = (1 + x) * 0.5;
+    z = 0.5 + x * 0.5;
+    s = sqrt<f32>(z);
+    w = R32(z) * s - pio2_lo;
+    return 2 * (pio2_hi - (s + w));
+  }
+  // z = (1 - x) * 0.5;
+  z = 0.5 - x * 0.5;
+  s = sqrt<f32>(z);
+  hx = reinterpret<u32>(s);
+  var df = reinterpret<f32>(hx & 0xFFFFF000);
+  var c = (z - df * df) / (s + df);
+  w = R32(z) * s + c;
+  return 2 * (df + w);
+}
+
+export function acos64(x: f64): f64 { // see: musl/src/math/acos.c and SUN COPYRIGHT NOTICE above
+  const
+    pio2_hi   = reinterpret<f64>(0x3FF921FB54442D18), // 1.57079632679489655800e+00
+    pio2_lo   = reinterpret<f64>(0x3C91A62633145C07), // 6.12323399573676603587e-17
+    Ox1p_120f = reinterpret<f32>(0x03800000);
+
+  var hx = <u32>(reinterpret<u64>(x) >> 32);
+  var ix = hx & 0x7FFFFFFF;
+  if (ix >= 0x3FF00000) {
+    let lx = <u32>reinterpret<u64>(x);
+    if ((ix - 0x3FF00000 | lx) == 0) {
+      if (hx >> 31) return 2 * pio2_hi + Ox1p_120f;
+      return 0;
+    }
+    return 0 / (x - x);
+  }
+  if (ix < 0x3FE00000) {
+    if (ix <= 0x3C600000) return pio2_hi + Ox1p_120f;
+    return pio2_hi - (x - (pio2_lo - x * R64(x * x)));
+  }
+  var s: f64, w: f64, z: f64;
+  if (hx >> 31) {
+    // z = (1.0 + x) * 0.5;
+    z = 0.5 + x * 0.5;
+    s = sqrt<f64>(z);
+    w = R64(z) * s - pio2_lo;
+    return 2 * (pio2_hi - (s + w));
+  }
+  // z = (1.0 - x) * 0.5;
+  z = 0.5 - x * 0.5;
+  s = sqrt<f64>(z);
+  var df = reinterpret<f64>(reinterpret<u64>(s) & 0xFFFFFFFF00000000);
+  var c = (z - df * df) / (s + df);
+  w = R64(z) * s + c;
+  return 2 * (df + w);
+}
+
+export function acosh32(x: f32): f32 { // see: musl/src/math/acoshf.c
+  const s = reinterpret<f32>(0x3F317218); // 0.693147180559945309417232121458176568f
+  var u = reinterpret<u32>(x);
+  var a = u & 0x7FFFFFFF;
+  if (a < 0x3F800000 + (1 << 23)) { // |x| < 2, invalid if x < 1
+    let xm1 = x - 1;
+    return log1p32(xm1 + sqrt<f32>(xm1 * (xm1 + 2)));
+  }
+  if (u < 0x3F800000 + (12 << 23)) { // 2 <= x < 0x1p12
+    return log32(2 * x - 1 / (x + sqrt<f32>(x * x - 1)));
+  }
+  // x >= 0x1p12 or x <= -2 or NaN
+  return log32(x) + s;
+}
+
+export function acosh64(x: f64): f64 { // see: musl/src/math/acosh.c
+  const s = reinterpret<f64>(0x3FE62E42FEFA39EF);
+  var u = reinterpret<u64>(x);
+  // Prevent propagation for all input values less than 1.0.
+  // Note musl lib didn't fix this yet.
+  if (<i64>u < 0x3FF0000000000000) return (x - x) / 0.0;
+  var e = u >> 52 & 0x7FF;
+  if (e < 0x3FF + 1) return log1p64(x - 1 + sqrt<f64>((x - 1) * (x - 1) + 2 * (x - 1)));
+  if (e < 0x3FF + 26) return log64(2 * x - 1 / (x + sqrt<f64>(x * x - 1)));
+  return log64(x) + s;
+}
+
+export function asin32(x: f32): f32 { // see: musl/src/math/asinf.c and SUN COPYRIGHT NOTICE above
+  const
+    pio2      = reinterpret<f32>(0x3FC90FDB), // 1.570796326794896558e+00f
+    Ox1p_120f = reinterpret<f32>(0x03800000); // 0x1p-120f
+
+  var sx = x;
+  var hx = reinterpret<u32>(x) & 0x7FFFFFFF;
+  if (hx >= 0x3F800000) {
+    if (hx == 0x3F800000) return x * pio2 + Ox1p_120f;
+    return 0 / (x - x);
+  }
+  if (hx < 0x3F000000) {
+    if (hx < 0x39800000 && hx >= 0x00800000) return x;
+    return x + x * R32(x * x);
+  }
+  // var z: f32 = (1 - builtin_abs<f32>(x)) * 0.5;
+  var z: f32 = 0.5 - abs<f32>(x) * 0.5;
+  var s = sqrt<f64>(z); // sic
+  x = <f32>(pio2 - 2 * (s + s * R32(z)));
+  return copysign<f32>(x, sx);
+}
+
+export function asin64(x: f64): f64 { // see: musl/src/math/asin.c and SUN COPYRIGHT NOTICE above
+  const
+    pio2_hi   = reinterpret<f64>(0x3FF921FB54442D18), // 1.57079632679489655800e+00
+    pio2_lo   = reinterpret<f64>(0x3C91A62633145C07), // 6.12323399573676603587e-17
+    Ox1p_120f = reinterpret<f32>(0x03800000);
+
+  var hx = <u32>(reinterpret<u64>(x) >> 32);
+  var ix = hx & 0x7FFFFFFF;
+  if (ix >= 0x3FF00000) {
+    let lx = <u32>reinterpret<u64>(x);
+    if ((ix - 0x3FF00000 | lx) == 0) return x * pio2_hi + Ox1p_120f;
+    return 0 / (x - x);
+  }
+  if (ix < 0x3FE00000) {
+    if (ix < 0x3E500000 && ix >= 0x00100000) return x;
+    return x + x * R64(x * x);
+  }
+  // var z = (1.0 - builtin_abs<f64>(x)) * 0.5;
+  var z = 0.5 - abs<f64>(x) * 0.5;
+  var s = sqrt<f64>(z);
+  var r = R64(z);
+  if (ix >= 0x3FEF3333) x = pio2_hi - (2 * (s + s * r) - pio2_lo);
+  else {
+    let f = reinterpret<f64>(reinterpret<u64>(s) & 0xFFFFFFFF00000000);
+    let c = (z - f * f) / (s + f);
+    x = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f));
+  }
+  if (hx >> 31) return -x;
+  return x;
+}
+
+export function asinh32(x: f32): f32 { // see: musl/src/math/asinhf.c
+  const c = reinterpret<f32>(0x3F317218); // 0.693147180559945309417232121458176568f
+  var u = reinterpret<u32>(x) & 0x7FFFFFFF;
+  var y = reinterpret<f32>(u);
+  if (u >= 0x3F800000 + (12 << 23)) y = log32(y) + c;
+  else if (u >= 0x3F800000 + (1 << 23))  y =   log32(2 * y + 1 / (sqrt<f32>(y * y + 1) + y));
+  else if (u >= 0x3F800000 - (12 << 23)) y = log1p32(y + y * y / (sqrt<f32>(y * y + 1) + 1));
+  return copysign<f32>(y, x);
+}
+
+export function asinh64(x: f64): f64 { // see: musl/src/math/asinh.c
+  const c = reinterpret<f64>(0x3FE62E42FEFA39EF); // 0.693147180559945309417232121458176568
+  var u = reinterpret<u64>(x);
+  var e = u >> 52 & 0x7FF;
+  var y = reinterpret<f64>(u & 0x7FFFFFFFFFFFFFFF);
+  if (e >= 0x3FF + 26) y = log64(y) + c;
+  else if (e >= 0x3FF + 1)  y =   log64(2 * y + 1 / (sqrt<f64>(y * y + 1) + y));
+  else if (e >= 0x3FF - 26) y = log1p64(y + y * y / (sqrt<f64>(y * y + 1) + 1));
+  return copysign<f64>(y, x);
+}
+
+export function atan32(x: f32): f32 { // see: musl/src/math/atanf.c and SUN COPYRIGHT NOTICE above
+  const
+    atanhi0   = reinterpret<f32>(0x3EED6338), //  4.6364760399e-01f
+    atanhi1   = reinterpret<f32>(0x3F490FDA), //  7.8539812565e-01f
+    atanhi2   = reinterpret<f32>(0x3F7B985E), //  9.8279368877e-01f
+    atanhi3   = reinterpret<f32>(0x3FC90FDA), //  1.5707962513e+00f
+    atanlo0   = reinterpret<f32>(0x31AC3769), //  5.0121582440e-09f
+    atanlo1   = reinterpret<f32>(0x33222168), //  3.7748947079e-08f
+    atanlo2   = reinterpret<f32>(0x33140FB4), //  3.4473217170e-08f
+    atanlo3   = reinterpret<f32>(0x33A22168), //  7.5497894159e-08f
+    aT0       = reinterpret<f32>(0x3EAAAAA9), //  3.3333328366e-01f
+    aT1       = reinterpret<f32>(0xBE4CCA98), // -1.9999158382e-01f
+    aT2       = reinterpret<f32>(0x3E11F50D), //  1.4253635705e-01f
+    aT3       = reinterpret<f32>(0xBDDA1247), // -1.0648017377e-01f
+    aT4       = reinterpret<f32>(0x3D7CAC25), //  6.1687607318e-02f
+    Ox1p_120f = reinterpret<f32>(0x03800000); //  0x1p-120f
+
+  var ix = reinterpret<u32>(x);
+  var sx = x;
+  ix &= 0x7FFFFFFF;
+  var z: f32;
+  if (ix >= 0x4C800000) {
+    if (isNaN(x)) return x;
+    z = atanhi3 + Ox1p_120f;
+    return copysign<f32>(z, sx);
+  }
+  var id: i32;
+  if (ix < 0x3EE00000) {
+    if (ix < 0x39800000) return x;
+    id = -1;
+  } else {
+    x = abs<f32>(x);
+    if (ix < 0x3F980000) {
+      if (ix < 0x3F300000) {
+        id = 0;
+        x = (2.0 * x - 1.0) / (2.0 + x);
+      } else {
+        id = 1;
+        x = (x - 1.0) / (x + 1.0);
+      }
+    } else {
+      if (ix < 0x401C0000) {
+        id = 2;
+        x = (x - 1.5) / (1.0 + 1.5 * x);
+      } else {
+        id = 3;
+        x = -1.0 / x;
+      }
+    }
+  }
+  z = x * x;
+  var w = z * z;
+  var s1 = z * (aT0 + w * (aT2 + w * aT4));
+  var s2 = w * (aT1 + w * aT3);
+  var s3 = x * (s1 + s2);
+  if (id < 0) return x - s3;
+  switch (id) {
+    case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }
+    case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }
+    case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }
+    case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }
+    default: unreachable();
+  }
+  return copysign<f32>(z, sx);
+}
+
+export function atan64(x: f64): f64 { // see musl/src/math/atan.c and SUN COPYRIGHT NOTICE above
+  const
+    atanhi0   = reinterpret<f64>(0x3FDDAC670561BB4F), //  4.63647609000806093515e-01
+    atanhi1   = reinterpret<f64>(0x3FE921FB54442D18), //  7.85398163397448278999e-01
+    atanhi2   = reinterpret<f64>(0x3FEF730BD281F69B), //  9.82793723247329054082e-01
+    atanhi3   = reinterpret<f64>(0x3FF921FB54442D18), //  1.57079632679489655800e+00
+    atanlo0   = reinterpret<f64>(0x3C7A2B7F222F65E2), //  2.26987774529616870924e-17
+    atanlo1   = reinterpret<f64>(0x3C81A62633145C07), //  3.06161699786838301793e-17
+    atanlo2   = reinterpret<f64>(0x3C7007887AF0CBBD), //  1.39033110312309984516e-17
+    atanlo3   = reinterpret<f64>(0x3C91A62633145C07), //  6.12323399573676603587e-17
+    aT0       = reinterpret<f64>(0x3FD555555555550D), //  3.33333333333329318027e-01
+    aT1       = reinterpret<f64>(0xBFC999999998EBC4), // -1.99999999998764832476e-01
+    aT2       = reinterpret<f64>(0x3FC24924920083FF), //  1.42857142725034663711e-01
+    aT3       = reinterpret<f64>(0xBFBC71C6FE231671), // -1.11111104054623557880e-01,
+    aT4       = reinterpret<f64>(0x3FB745CDC54C206E), //  9.09088713343650656196e-02
+    aT5       = reinterpret<f64>(0xBFB3B0F2AF749A6D), // -7.69187620504482999495e-02
+    aT6       = reinterpret<f64>(0x3FB10D66A0D03D51), //  6.66107313738753120669e-02
+    aT7       = reinterpret<f64>(0xBFADDE2D52DEFD9A), // -5.83357013379057348645e-02
+    aT8       = reinterpret<f64>(0x3FA97B4B24760DEB), //  4.97687799461593236017e-02
+    aT9       = reinterpret<f64>(0xBFA2B4442C6A6C2F), // -3.65315727442169155270e-02
+    aT10      = reinterpret<f64>(0x3F90AD3AE322DA11), //  1.62858201153657823623e-02
+    Ox1p_120f = reinterpret<f32>(0x03800000);
+
+  var ix = <u32>(reinterpret<u64>(x) >> 32);
+  var sx = x;
+  ix &= 0x7FFFFFFF;
+  var z: f64;
+  if (ix >= 0x44100000) {
+    if (isNaN(x)) return x;
+    z = atanhi3 + Ox1p_120f;
+    return copysign<f64>(z, sx);
+  }
+  var id: i32;
+  if (ix < 0x3FDC0000) {
+    if (ix < 0x3E400000) return x;
+    id = -1;
+  } else {
+    x = abs<f64>(x);
+    if (ix < 0x3FF30000) {
+      if (ix < 0x3FE60000) {
+        id = 0;
+        x = (2.0 * x - 1.0) / (2.0 + x);
+      } else {
+        id = 1;
+        x = (x - 1.0) / (x + 1.0);
+      }
+    } else {
+      if (ix < 0x40038000) {
+        id = 2;
+        x = (x - 1.5) / (1.0 + 1.5 * x);
+      } else {
+        id = 3;
+        x = -1.0 / x;
+      }
+    }
+  }
+  z = x * x;
+  var w = z * z;
+  var s1 = z * (aT0 + w * (aT2 + w * (aT4 + w * (aT6 + w * (aT8 + w * aT10)))));
+  var s2 = w * (aT1 + w * (aT3 + w * (aT5 + w * (aT7 + w * aT9))));
+  var s3 = x * (s1 + s2);
+  if (id < 0) return x - s3;
+  switch (id) {
+    case 0: { z = atanhi0 - ((s3 - atanlo0) - x); break; }
+    case 1: { z = atanhi1 - ((s3 - atanlo1) - x); break; }
+    case 2: { z = atanhi2 - ((s3 - atanlo2) - x); break; }
+    case 3: { z = atanhi3 - ((s3 - atanlo3) - x); break; }
+    default: unreachable();
+  }
+  return copysign<f64>(z, sx);
+}
+
+export function atanh32(x: f32): f32 { // see: musl/src/math/atanhf.c
+  var u = reinterpret<u32>(x);
+  var y = abs<f32>(x);
+  if (u < 0x3F800000 - (1 << 23)) {
+    if (u >= 0x3F800000 - (32 << 23)) y = 0.5 * log1p32(2 * y * (1.0 + y / (1 - y)));
+  } else y = 0.5 * log1p32(2 * (y / (1 - y)));
+  return copysign<f32>(y, x);
+}
+
+export function atanh64(x: f64): f64 { // see: musl/src/math/atanh.c
+  var u = reinterpret<u64>(x);
+  var e = u >> 52 & 0x7FF;
+  var y = abs<f64>(x);
+  if (e < 0x3FF - 1) {
+    if (e >= 0x3FF - 32) y = 0.5 * log1p64(2 * y + 2 * y * y / (1 - y));
+  } else {
+    y = 0.5 * log1p64(2 * (y / (1 - y)));
+  }
+  return copysign<f64>(y, x);
+}
+
+export function atan2_32(y: f32, x: f32): f32 { // see: musl/src/math/atan2f.c and SUN COPYRIGHT NOTICE above
+  const
+    pi    = reinterpret<f32>(0x40490FDB), //  3.1415927410e+00f
+    pi_lo = reinterpret<f32>(0xB3BBBD2E); // -8.7422776573e-08f
+
+  if (isNaN(x) || isNaN(y)) return x + y;
+  var ix = reinterpret<u32>(x);
+  var iy = reinterpret<u32>(y);
+  if (ix == 0x3F800000) return atan32(y);
+  var m = <u32>(((iy >> 31) & 1) | ((ix >> 30) & 2));
+  ix &= 0x7FFFFFFF;
+  iy &= 0x7FFFFFFF;
+  if (iy == 0) {
+    switch (m) {
+      case 0:
+      case 1: return  y;
+      case 2: return  pi;
+      case 3: return -pi;
+    }
+  }
+  if (ix == 0) return m & 1 ? -pi / 2 : pi / 2;
+  if (ix == 0x7F800000) {
+    if (iy == 0x7F800000) {
+      let t: f32 = m & 2 ? 3 * pi / 4 : pi / 4;
+      return m & 1 ? -t : t;
+    } else {
+      let t: f32 = m & 2 ? pi : 0.0;
+      return m & 1 ? -t : t;
+    }
+  }
+  if (ix + (26 << 23) < iy || iy == 0x7F800000) return m & 1 ? -pi / 2 : pi / 2;
+  var z: f32;
+  if ((m & 2) && iy + (26 << 23) < ix) z = 0.0;
+  else z = atan32(abs<f32>(y / x));
+  switch (m) {
+    case 0: return  z;
+    case 1: return -z;
+    case 2: return pi - (z - pi_lo);
+    case 3: return (z - pi_lo) - pi;
+  }
+  return unreachable();
+}
+
+export function atan2_64(y: f64, x: f64): f64 { // see: musl/src/math/atan2.c and SUN COPYRIGHT NOTICE above
+  const
+    pi    = reinterpret<f64>(0x400921FB54442D18), // 3.14159265358979323846
+    pi_lo = reinterpret<f64>(0x3CA1A62633145C07); // 1.2246467991473531772E-16
+
+  if (isNaN(x) || isNaN(y)) return x + y;
+  var u = reinterpret<u64>(x);
+  var ix = <u32>(u >> 32);
+  var lx = <u32>u;
+  u = reinterpret<u64>(y);
+  var iy = <u32>(u >> 32);
+  var ly = <u32>u;
+  if ((ix - 0x3FF00000 | lx) == 0) return atan64(y);
+  var m = ((iy >> 31) & 1) | ((ix >> 30) & 2);
+  ix = ix & 0x7FFFFFFF;
+  iy = iy & 0x7FFFFFFF;
+  if ((iy | ly) == 0) {
+    switch (m) {
+      case 0:
+      case 1: return  y;
+      case 2: return  pi;
+      case 3: return -pi;
+    }
+  }
+  if ((ix | lx) == 0) return m & 1 ? -pi / 2 : pi / 2;
+  if (ix == 0x7FF00000) {
+    if (iy == 0x7FF00000) {
+      let t = m & 2 ? 3 * pi / 4 : pi / 4;
+      return m & 1 ? -t : t;
+    } else {
+      let t = m & 2 ? pi : 0;
+      return m & 1 ? -t : t;
+    }
+  }
+  var z: f64;
+  if (ix + (64 << 20) < iy || iy == 0x7FF00000) return m & 1 ? -pi / 2 : pi / 2;
+  if ((m & 2) && iy + (64 << 20) < ix) z = 0;
+  else z = atan64(abs<f64>(y / x));
+  switch (m) {
+    case 0: return  z;
+    case 1: return -z;
+    case 2: return pi - (z - pi_lo);
+    case 3: return (z - pi_lo) - pi;
+  }
+  return unreachable();
+}
+
+export function cbrt32(x: f32): f32 { // see: musl/src/math/cbrtf.c and SUN COPYRIGHT NOTICE above
+  const
+    B1      = <u32>709958130,
+    B2      = <u32>642849266,
+    Ox1p24f = reinterpret<f32>(0x4B800000);
+
+  var u = reinterpret<u32>(x);
+  var hx = u & 0x7FFFFFFF;
+  if (hx >= 0x7F800000) return x + x;
+  if (hx < 0x00800000) {
+    if (hx == 0) return x;
+    u = reinterpret<u32>(x * Ox1p24f);
+    hx = u & 0x7FFFFFFF;
+    hx = hx / 3 + B2;
+  } else {
+    hx = hx / 3 + B1;
+  }
+  u &= 0x80000000;
+  u |= hx;
+  var t = <f64>reinterpret<f32>(u);
+  var r = t * t * t;
+  t = t * (<f64>x + x + r) / (x + r + r);
+  r = t * t * t;
+  t = t * (<f64>x + x + r) / (x + r + r);
+  return <f32>t;
+}
+
+export function cbrt64(x: f64): f64 { // see: musl/src/math/cbrt.c and SUN COPYRIGHT NOTICE above
+  const
+    B1     = <u32>715094163,
+    B2     = <u32>696219795,
+    P0     = reinterpret<f64>(0x3FFE03E60F61E692), //  1.87595182427177009643
+    P1     = reinterpret<f64>(0xBFFE28E092F02420), // -1.88497979543377169875
+    P2     = reinterpret<f64>(0x3FF9F1604A49D6C2), //  1.621429720105354466140
+    P3     = reinterpret<f64>(0xBFE844CBBEE751D9), // -0.758397934778766047437
+    P4     = reinterpret<f64>(0x3FC2B000D4E4EDD7), //  0.145996192886612446982
+    Ox1p54 = reinterpret<f64>(0x4350000000000000); //  0x1p54
+
+  var u = reinterpret<u64>(x);
+  var hx = <u32>(u >> 32) & 0x7FFFFFFF;
+  if (hx >= 0x7FF00000) return x + x;
+  if (hx < 0x00100000) {
+    u = reinterpret<u64>(x * Ox1p54);
+    hx = <u32>(u >> 32) & 0x7FFFFFFF;
+    if (hx == 0) return x;
+    hx = hx / 3 + B2;
+  } else {
+    hx = hx / 3 + B1;
+  }
+  u &= 1 << 63;
+  u |= <u64>hx << 32;
+  var t = reinterpret<f64>(u);
+  var r = (t * t) * (t / x);
+  t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4));
+  t = reinterpret<f64>((reinterpret<u64>(t) + 0x80000000) & 0xFFFFFFFFC0000000);
+  var s = t * t;
+  r = x / s;
+  r = (r - t) / (2 * t + r);
+  t = t + t * r;
+  return t;
+}
+
+export function cos32(x: f32): f32 { // see: musl/src/math/cosf.c
+  const
+    c1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // M_PI_2 * 1
+    c2pio2 = reinterpret<f64>(0x400921FB54442D18), // M_PI_2 * 2
+    c3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // M_PI_2 * 3
+    c4pio2 = reinterpret<f64>(0x401921FB54442D18); // M_PI_2 * 4
+
+  var ix = reinterpret<u32>(x);
+  var sign = ix >> 31;
+  ix &= 0x7FFFFFFF;
+
+  if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
+    if (ix < 0x39800000) { // |x| < 2**-12
+      // raise inexact if x != 0
+      return 1;
+    }
+    return cos32_kern(x);
+  }
+
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (ix <= 0x407B53D1) {  // |x| ~<= 5π/4
+      if (ix > 0x4016CBE3) { // |x|  ~> 3π/4
+        return -cos32_kern(sign ? x + c2pio2 : x - c2pio2);
+      } else {
+        return sign ? sin32_kern(x + c1pio2) : sin32_kern(c1pio2 - x);
+      }
+    }
+    if (ix <= 0x40E231D5) {  // |x| ~<= 9π/4
+      if (ix > 0x40AFEDDF) { // |x|  ~> 7π/4
+        return cos32_kern(sign ? x + c4pio2 : x - c4pio2);
+      } else {
+        return sign ? sin32_kern(-x - c3pio2) : sin32_kern(x - c3pio2);
+      }
+    }
+  }
+
+  // cos(Inf or NaN) is NaN
+  if (ix >= 0x7F800000) return x - x;
+
+  // general argument reduction needed
+  var n = rempio2_32(x, ix, sign);
+  var y = rempio2_32_y;
+
+  var t = n & 1 ? sin32_kern(y) : cos32_kern(y);
+  return (n + 1) & 2 ? -t : t;
+}
+
+export function cos64(x: f64): f64 { // see: musl/src/math/cos.c
+  var u  = reinterpret<u64>(x);
+  var ix = <u32>(u >> 32);
+  var sign = ix >> 31;
+
+  ix &= 0x7FFFFFFF;
+
+  // |x| ~< pi/4
+  if (ix <= 0x3FE921FB) {
+    if (ix < 0x3E46A09E) {  // |x| < 2**-27 * sqrt(2)
+      return 1.0;
+    }
+    return cos64_kern(x, 0);
+  }
+
+  // sin(Inf or NaN) is NaN
+  if (ix >= 0x7FF00000) return x - x;
+
+  // argument reduction needed
+  var n  = rempio2_64(x, u, sign);
+  var y0 = rempio2_y0;
+  var y1 = rempio2_y1;
+
+  x = n & 1 ? sin64_kern(y0, y1, 1) : cos64_kern(y0, y1);
+  return (n + 1) & 2 ? -x : x;
+}
+
+export function cosh32(x: f32): f32 { // see: musl/src/math/coshf.c
+  var u = reinterpret<u32>(x);
+  u &= 0x7FFFFFFF;
+  x = reinterpret<f32>(u);
+  if (u < 0x3F317217) {
+    if (u < 0x3F800000 - (12 << 23)) return 1;
+    let t = expm1_32(x);
+    // return 1 + t * t / (2 * (1 + t));
+    return 1 + t * t / (2 + 2 * t);
+  }
+  if (u < 0x42B17217) {
+    let t = exp32(x);
+    // return 0.5 * (t + 1 / t);
+    return 0.5 * t + 0.5 / t;
+  }
+  return expo2_32(x, 1);
+}
+
+export function cosh64(x: f64): f64 { // see: musl/src/math/cosh.c
+  var u = reinterpret<u64>(x);
+  u &= 0x7FFFFFFFFFFFFFFF;
+  x = reinterpret<f64>(u);
+  var w = <u32>(u >> 32);
+  var t: f64;
+  if (w < 0x3FE62E42) {
+    if (w < 0x3FF00000 - (26 << 20)) return 1;
+    t = expm1_64(x);
+    // return 1 + t * t / (2 * (1 + t));
+    return 1 + t * t / (2 + 2 * t);
+  }
+  if (w < 0x40862E42) {
+    t = exp64(x);
+    return 0.5 * (t + 1 / t);
+  }
+  t = expo2_64(x, 1);
+  return t;
+}
+
+export function hypot32(x: f32, y: f32): f32 { // see: musl/src/math/hypotf.c
+  const
+    Ox1p90f  = reinterpret<f32>(0x6C800000),
+    Ox1p_90f = reinterpret<f32>(0x12800000);
+
+  var ux = reinterpret<u32>(x);
+  var uy = reinterpret<u32>(y);
+  ux &= 0x7FFFFFFF;
+  uy &= 0x7FFFFFFF;
+  if (ux < uy) {
+    let ut = ux;
+    ux = uy;
+    uy = ut;
+  }
+  x = reinterpret<f32>(ux);
+  y = reinterpret<f32>(uy);
+  if (uy == 0xFF << 23) return y;
+  if (ux >= 0xFF << 23 || uy == 0 || ux - uy >= 25 << 23) return x + y;
+  var z: f32 = 1;
+  if (ux >= (0x7F + 60) << 23) {
+    z  = Ox1p90f;
+    x *= Ox1p_90f;
+    y *= Ox1p_90f;
+  } else if (uy < (0x7F - 60) << 23) {
+    z  = Ox1p_90f;
+    x *= Ox1p90f;
+    y *= Ox1p90f;
+  }
+  return z * sqrt<f32>(<f32>(<f64>x * x + <f64>y * y));
+}
+
+export function hypot64(x: f64, y: f64): f64 { // see: musl/src/math/hypot.c
+  const
+    SPLIT    = reinterpret<f64>(0x41A0000000000000) + 1, // 0x1p27 + 1
+    Ox1p700  = reinterpret<f64>(0x6BB0000000000000),
+    Ox1p_700 = reinterpret<f64>(0x1430000000000000);
+
+  var ux = reinterpret<u64>(x);
+  var uy = reinterpret<u64>(y);
+  ux &= 0x7FFFFFFFFFFFFFFF;
+  uy &= 0x7FFFFFFFFFFFFFFF;
+  if (ux < uy) {
+    let ut = ux;
+    ux = uy;
+    uy = ut;
+  }
+  var ex = <i32>(ux >> 52);
+  var ey = <i32>(uy >> 52);
+  y = reinterpret<f64>(uy);
+  if (ey == 0x7FF) return y;
+  x = reinterpret<f64>(ux);
+  if (ex == 0x7FF || uy == 0) return x;
+  if (ex - ey > 64) return x + y;
+  var z = 1.0;
+  if (ex > 0x3FF + 510) {
+    z  = Ox1p700;
+    x *= Ox1p_700;
+    y *= Ox1p_700;
+  } else if (ey < 0x3FF - 450) {
+    z  = Ox1p_700;
+    x *= Ox1p700;
+    y *= Ox1p700;
+  }
+  var c = x * SPLIT;
+  var h = x - c + c;
+  var l = x - h;
+  var hx = x * x;
+  var lx = h * h - hx + (2 * h + l) * l;
+  c = y * SPLIT;
+  h = y - c + c;
+  l = y - h;
+  var hy = y * y;
+  var ly = h * h - hy + (2 * h + l) * l;
+  return z * sqrt<f64>(ly + lx + hy + hx);
+}
+
 // ULP error: 0.502 (nearest rounding.)
 // Relative error: 1.69 * 2^-34 in [-1/64, 1/64] (before rounding.)
 // Wrong count: 168353 (all nearest rounding wrong results with fma.)
-// @ts-ignore: decorator
-@inline
-export function exp2f_lut(x: f32): f32 {
+export function exp2_32_lut(x: f32): f32 {
   const
-    N      = 1 << EXP2F_TABLE_BITS,
+    N      = 1 << EXP2_TABLE32_BITS,
     N_MASK = N - 1,
     shift  = reinterpret<f64>(0x4338000000000000) / N, // 0x1.8p+52
     Ox127f = reinterpret<f32>(0x7F000000);
@@ -55,8 +2241,8 @@ export function exp2f_lut(x: f32): f32 {
   var t: u64, y: f64, s: f64;
 
   // exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1)
-  t  = load<u64>(EXP2F_DATA_TAB + ((<usize>ki & N_MASK) << alignof<u64>()));
-  t += ki << (52 - EXP2F_TABLE_BITS);
+  t  = load<u64>(EXP2_TABLE32 + ((<usize>ki & N_MASK) << alignof<u64>()));
+  t += ki << (52 - EXP2_TABLE32_BITS);
   s  = reinterpret<f64>(t);
   y  = C2 * r + 1;
   y += (C0 * r + C1) * (r  * r);
@@ -70,9 +2256,9 @@ export function exp2f_lut(x: f32): f32 {
 // Wrong count: 170635 (all nearest rounding wrong results with fma.)
 // @ts-ignore: decorator
 @inline
-export function expf_lut(x: f32): f32 {
+export function exp32_lut(x: f32): f32 {
   const
-    N        = 1 << EXP2F_TABLE_BITS,
+    N        = 1 << EXP2_TABLE32_BITS,
     N_MASK   = N - 1,
     shift    = reinterpret<f64>(0x4338000000000000),        // 0x1.8p+52
     InvLn2N  = reinterpret<f64>(0x3FF71547652B82FE) * N,    // 0x1.71547652b82fep+0
@@ -106,8 +2292,8 @@ export function expf_lut(x: f32): f32 {
   var s: f64, y: f64, t: u64;
 
   // exp(x) = 2^(k/N) * 2^(r/N) ~= s * (C0*r^3 + C1*r^2 + C2*r + 1)
-  t  = load<u64>(EXP2F_DATA_TAB + ((<usize>ki & N_MASK) << alignof<u64>()));
-  t += ki << (52 - EXP2F_TABLE_BITS);
+  t  = load<u64>(EXP2_TABLE32 + ((<usize>ki & N_MASK) << alignof<u64>()));
+  t += ki << (52 - EXP2_TABLE32_BITS);
   s  = reinterpret<f64>(t);
   z  = C0 * r + C1;
   y  = C2 * r + 1;
@@ -117,40 +2303,13 @@ export function expf_lut(x: f32): f32 {
   return <f32>y;
 }
 
-//
-// Lookup data for log2f
-//
-
-// @ts-ignore: decorator
-@inline const LOG2F_TABLE_BITS = 4;
-
-// @ts-ignore: decorator
-@lazy @inline const LOG2F_DATA_TAB = memory.data<f64>([
-  reinterpret<f64>(0x3FF661EC79F8F3BE), reinterpret<f64>(0xBFDEFEC65B963019), // 0x1.661ec79f8f3bep+0, -0x1.efec65b963019p-2,
-  reinterpret<f64>(0x3FF571ED4AAF883D), reinterpret<f64>(0xBFDB0B6832D4FCA4), // 0x1.571ed4aaf883dp+0, -0x1.b0b6832d4fca4p-2,
-  reinterpret<f64>(0x3FF49539F0F010B0), reinterpret<f64>(0xBFD7418B0A1FB77B), // 0x1.49539f0f010bp+0 , -0x1.7418b0a1fb77bp-2,
-  reinterpret<f64>(0x3FF3C995B0B80385), reinterpret<f64>(0xBFD39DE91A6DCF7B), // 0x1.3c995b0b80385p+0, -0x1.39de91a6dcf7bp-2,
-  reinterpret<f64>(0x3FF30D190C8864A5), reinterpret<f64>(0xBFD01D9BF3F2B631), // 0x1.30d190c8864a5p+0, -0x1.01d9bf3f2b631p-2,
-  reinterpret<f64>(0x3FF25E227B0B8EA0), reinterpret<f64>(0xBFC97C1D1B3B7AF0), // 0x1.25e227b0b8eap+0 , -0x1.97c1d1b3b7afp-3 ,
-  reinterpret<f64>(0x3FF1BB4A4A1A343F), reinterpret<f64>(0xBFC2F9E393AF3C9F), // 0x1.1bb4a4a1a343fp+0, -0x1.2f9e393af3c9fp-3,
-  reinterpret<f64>(0x3FF12358F08AE5BA), reinterpret<f64>(0xBFB960CBBF788D5C), // 0x1.12358f08ae5bap+0, -0x1.960cbbf788d5cp-4,
-  reinterpret<f64>(0x3FF0953F419900A7), reinterpret<f64>(0xBFAA6F9DB6475FCE), // 0x1.0953f419900a7p+0, -0x1.a6f9db6475fcep-5,
-  reinterpret<f64>(0x3FF0000000000000), 0,                                    // 0x1p+0,                0x0,
-  reinterpret<f64>(0x3FEE608CFD9A47AC), reinterpret<f64>(0x3FB338CA9F24F53D), // 0x1.e608cfd9a47acp-1,  0x1.338ca9f24f53dp-4,
-  reinterpret<f64>(0x3FECA4B31F026AA0), reinterpret<f64>(0x3FC476A9543891BA), // 0x1.ca4b31f026aap-1 ,  0x1.476a9543891bap-3,
-  reinterpret<f64>(0x3FEB2036576AFCE6), reinterpret<f64>(0x3FCE840B4AC4E4D2), // 0x1.b2036576afce6p-1,  0x1.e840b4ac4e4d2p-3,
-  reinterpret<f64>(0x3FE9C2D163A1AA2D), reinterpret<f64>(0x3FD40645F0C6651C), // 0x1.9c2d163a1aa2dp-1,  0x1.40645f0c6651cp-2,
-  reinterpret<f64>(0x3FE886E6037841ED), reinterpret<f64>(0x3FD88E9C2C1B9FF8), // 0x1.886e6037841edp-1,  0x1.88e9c2c1b9ff8p-2,
-  reinterpret<f64>(0x3FE767DCF5534862), reinterpret<f64>(0x3FDCE0A44EB17BCC)  // 0x1.767dcf5534862p-1,  0x1.ce0a44eb17bccp-2
-]);
-
 // ULP error: 0.752 (nearest rounding.)
 // Relative error: 1.9 * 2^-26 (before rounding.)
 // @ts-ignore: decorator
 @inline
-export function log2f_lut(x: f32): f32 {
+export function log2_32_lut(x: f32): f32 {
   const
-    N_MASK  = (1 << LOG2F_TABLE_BITS) - 1,
+    N_MASK  = (1 << LOG2_TABLE32_BITS) - 1,
     Ox1p23f = reinterpret<f32>(0x4B000000); // 0x1p23f
 
   const
@@ -175,13 +2334,13 @@ export function log2f_lut(x: f32): f32 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp  = ux - 0x3F330000;
-  var i    = (tmp >> (23 - LOG2F_TABLE_BITS)) & N_MASK;
+  var i    = (tmp >> (23 - LOG2_TABLE32_BITS)) & N_MASK;
   var top  = tmp & 0xFF800000;
   var iz   = ux - top;
   var k    = <i32>tmp >> 23;
 
-  var invc = load<f64>(LOG2F_DATA_TAB + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
-  var logc = load<f64>(LOG2F_DATA_TAB + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
+  var invc = load<f64>(LOG2_TABLE32 + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
+  var logc = load<f64>(LOG2_TABLE32 + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
   var z    = <f64>reinterpret<f32>(iz);
 
   // log2(x) = log1p(z/c-1)/ln2 + log2(c) + k
@@ -198,40 +2357,13 @@ export function log2f_lut(x: f32): f32 {
   return <f32>y;
 }
 
-//
-// Lookup data for logf. See: https://git.musl-libc.org/cgit/musl/tree/src/math/logf.c
-//
-
-// @ts-ignore: decorator
-@inline const LOGF_TABLE_BITS = 4;
-
-// @ts-ignore: decorator
-@lazy @inline const LOGF_DATA_TAB = memory.data<f64>([
-  reinterpret<f64>(0x3FF661EC79F8F3BE), reinterpret<f64>(0xBFD57BF7808CAADE), // 0x1.661ec79f8f3bep+0, -0x1.57bf7808caadep-2,
-  reinterpret<f64>(0x3FF571ED4AAF883D), reinterpret<f64>(0xBFD2BEF0A7C06DDB), // 0x1.571ed4aaf883dp+0, -0x1.2bef0a7c06ddbp-2,
-  reinterpret<f64>(0x3FF49539F0F010B0), reinterpret<f64>(0xBFD01EAE7F513A67), // 0x1.49539f0f010bp+0 , -0x1.01eae7f513a67p-2,
-  reinterpret<f64>(0x3FF3C995B0B80385), reinterpret<f64>(0xBFCB31D8A68224E9), // 0x1.3c995b0b80385p+0, -0x1.b31d8a68224e9p-3,
-  reinterpret<f64>(0x3FF30D190C8864A5), reinterpret<f64>(0xBFC6574F0AC07758), // 0x1.30d190c8864a5p+0, -0x1.6574f0ac07758p-3,
-  reinterpret<f64>(0x3FF25E227B0B8EA0), reinterpret<f64>(0xBFC1AA2BC79C8100), // 0x1.25e227b0b8eap+0 , -0x1.1aa2bc79c81p-3  ,
-  reinterpret<f64>(0x3FF1BB4A4A1A343F), reinterpret<f64>(0xBFBA4E76CE8C0E5E), // 0x1.1bb4a4a1a343fp+0, -0x1.a4e76ce8c0e5ep-4,
-  reinterpret<f64>(0x3FF12358F08AE5BA), reinterpret<f64>(0xBFB1973C5A611CCC), // 0x1.12358f08ae5bap+0, -0x1.1973c5a611cccp-4,
-  reinterpret<f64>(0x3FF0953F419900A7), reinterpret<f64>(0xBFA252F438E10C1E), // 0x1.0953f419900a7p+0, -0x1.252f438e10c1ep-5,
-  reinterpret<f64>(0x3FF0000000000000), 0,                                    // 0x1p+0,                0,
-  reinterpret<f64>(0x3FEE608CFD9A47AC), reinterpret<f64>(0x3FAAA5AA5DF25984), // 0x1.e608cfd9a47acp-1,  0x1.aa5aa5df25984p-5,
-  reinterpret<f64>(0x3FECA4B31F026AA0), reinterpret<f64>(0x3FBC5E53AA362EB4), // 0x1.ca4b31f026aap-1 ,  0x1.c5e53aa362eb4p-4,
-  reinterpret<f64>(0x3FEB2036576AFCE6), reinterpret<f64>(0x3FC526E57720DB08), // 0x1.b2036576afce6p-1,  0x1.526e57720db08p-3,
-  reinterpret<f64>(0x3FE9C2D163A1AA2D), reinterpret<f64>(0x3FCBC2860D224770), // 0x1.9c2d163a1aa2dp-1,  0x1.bc2860d22477p-3 ,
-  reinterpret<f64>(0x3FE886E6037841ED), reinterpret<f64>(0x3FD1058BC8A07EE1), // 0x1.886e6037841edp-1,  0x1.1058bc8a07ee1p-2,
-  reinterpret<f64>(0x3FE767DCF5534862), reinterpret<f64>(0x3FD4043057B6EE09)  // 0x1.767dcf5534862p-1,  0x1.4043057b6ee09p-2
-]);
-
 // ULP error: 0.818 (nearest rounding.)
 // Relative error: 1.957 * 2^-26 (before rounding.)
 // @ts-ignore: decorator
 @inline
 export function logf_lut(x: f32): f32 {
   const
-    N_MASK  = (1 << LOGF_TABLE_BITS) - 1,
+    N_MASK  = (1 << LOG_TABLE32_BITS) - 1,
     Ox1p23f = reinterpret<f32>(0x4B000000); // 0x1p23f
 
   const
@@ -256,12 +2388,12 @@ export function logf_lut(x: f32): f32 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp = ux - 0x3F330000;
-  var i   = (tmp >> (23 - LOGF_TABLE_BITS)) & N_MASK;
+  var i   = (tmp >> (23 - LOG_TABLE32_BITS)) & N_MASK;
   var k   = <i32>tmp >> 23;
   var iz  = ux - (tmp & 0x1FF << 23);
 
-  var invc = load<f64>(LOGF_DATA_TAB + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
-  var logc = load<f64>(LOGF_DATA_TAB + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
+  var invc = load<f64>(LOG_TABLE32 + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
+  var logc = load<f64>(LOG_TABLE32 + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
 
   var z = <f64>reinterpret<f32>(iz);
 
@@ -284,7 +2416,7 @@ export function logf_lut(x: f32): f32 {
 
 // @ts-ignore: decorator
 @inline
-function zeroinfnanf(ux: u32): bool {
+function zeroinfnan32(ux: u32): bool {
   return (ux << 1) - 1 >= (<u32>0x7f800000 << 1) - 1;
 }
 
@@ -292,7 +2424,7 @@ function zeroinfnanf(ux: u32): bool {
 // the bit representation of a non-zero finite floating-point value.
 // @ts-ignore: decorator
 @inline
-function checkintf(iy: u32): i32 {
+function checkint32(iy: u32): i32 {
   var e = iy >> 23 & 0xFF;
   if (e < 0x7F     ) return 0;
   if (e > 0x7F + 23) return 2;
@@ -306,8 +2438,8 @@ function checkintf(iy: u32): i32 {
 // Output is multiplied by N (POWF_SCALE) if TOINT_INTRINICS is set.
 // @ts-ignore: decorator
 @inline
-function log2f_inline(ux: u32): f64 {
-  const N_MASK = (1 << LOG2F_TABLE_BITS) - 1;
+function log2_32_inline(ux: u32): f64 {
+  const N_MASK = (1 << LOG2_TABLE32_BITS) - 1;
 
   const
     A0 = reinterpret<f64>(0x3FD27616C9496E0B), //  0x1.27616c9496e0bp-2
@@ -320,13 +2452,13 @@ function log2f_inline(ux: u32): f64 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp  = ux - 0x3F330000;
-  var i    = <usize>((tmp >> (23 - LOG2F_TABLE_BITS)) & N_MASK);
+  var i    = <usize>((tmp >> (23 - LOG2_TABLE32_BITS)) & N_MASK);
   var top  = tmp & 0xFF800000;
   var uz   = ux - top;
   var k    = <i32>(<i32>top >> 23);
 
-  var invc = load<f64>(LOG2F_DATA_TAB + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
-  var logc = load<f64>(LOG2F_DATA_TAB + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
+  var invc = load<f64>(LOG2_TABLE32 + (i << (1 + alignof<f64>())), 0 << alignof<f64>());
+  var logc = load<f64>(LOG2_TABLE32 + (i << (1 + alignof<f64>())), 1 << alignof<f64>());
   var z    = <f64>reinterpret<f32>(uz);
 
   // log2(x) = log1p(z/c-1)/ln2 + log2(c) + k
@@ -350,9 +2482,9 @@ function log2f_inline(ux: u32): f64 {
 // in [-1021,1023], sign_bias sets the sign of the result.
 // @ts-ignore: decorator
 @inline
-function exp2f_inline(xd: f64, signBias: u32): f32 {
+function exp2_32_inline(xd: f64, signBias: u32): f32 {
   const
-    N      = 1 << EXP2F_TABLE_BITS,
+    N      = 1 << EXP2_TABLE32_BITS,
     N_MASK = N - 1,
     shift  = reinterpret<f64>(0x4338000000000000) / N; // 0x1.8p+52
 
@@ -368,8 +2500,8 @@ function exp2f_inline(xd: f64, signBias: u32): f32 {
   var t: u64, z: f64, y: f64, s: f64;
 
   // exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1)
-  t  = load<u64>(EXP2F_DATA_TAB + ((<usize>ki & N_MASK) << alignof<u64>()));
-  t += (ki + signBias) << (52 - EXP2F_TABLE_BITS);
+  t  = load<u64>(EXP2_TABLE32 + ((<usize>ki & N_MASK) << alignof<u64>()));
+  t += (ki + signBias) << (52 - EXP2_TABLE32_BITS);
   s  = reinterpret<f64>(t);
   z  = C0 * r + C1;
   y  = C2 * r + 1;
@@ -380,37 +2512,37 @@ function exp2f_inline(xd: f64, signBias: u32): f32 {
 
 // @ts-ignore: decorator
 @inline
-function xflowf(sign: u32, y: f32): f32 {
+function xflow32(sign: u32, y: f32): f32 {
   return select<f32>(-y, y, sign) * y;
 }
 
 // @ts-ignore: decorator
 @inline
-function oflowf(sign: u32): f32 {
-  return xflowf(sign, reinterpret<f32>(0x70000000)); // 0x1p97f
+function oflow32(sign: u32): f32 {
+  return xflow32(sign, reinterpret<f32>(0x70000000)); // 0x1p97f
 }
 
 // @ts-ignore: decorator
 @inline
-function uflowf(sign: u32): f32 {
-  return xflowf(sign, reinterpret<f32>(0x10000000)); // 0x1p-95f
+function uflow32(sign: u32): f32 {
+  return xflow32(sign, reinterpret<f32>(0x10000000)); // 0x1p-95f
 }
 
 // @ts-ignore: decorator
 @inline
-export function powf_lut(x: f32, y: f32): f32 {
+function pow32_lut(x: f32, y: f32): f32 {
   const
     Ox1p23f     = reinterpret<f32>(0x4B000000), // 0x1p23f
     UPPER_LIMIT = reinterpret<f64>(0x405FFFFFFFD1D571), // 0x1.fffffffd1d571p+6
     LOWER_LIMIT = -150.0,
-    SIGN_BIAS   = 1 << (EXP2F_TABLE_BITS + 11);
+    SIGN_BIAS   = 1 << (EXP2_TABLE32_BITS + 11);
 
   var signBias: u32 = 0;
   var ix = reinterpret<u32>(x);
   var iy = reinterpret<u32>(y);
   var ny = 0;
 
-  if (i32(ix - 0x00800000 >= 0x7f800000 - 0x00800000) | (ny = i32(zeroinfnanf(iy)))) {
+  if (i32(ix - 0x00800000 >= 0x7f800000 - 0x00800000) | (ny = i32(zeroinfnan32(iy)))) {
     // Either (x < 0x1p-126 or inf or nan) or (y is 0 or inf or nan).
     if (ny) {
       if ((iy << 1) == 0) return 1.0;
@@ -420,15 +2552,15 @@ export function powf_lut(x: f32, y: f32): f32 {
       if (((ix << 1) < (0x3F800000 << 1)) == !(iy >> 31)) return 0; // |x| < 1 && y==inf or |x| > 1 && y==-inf.
       return y * y;
     }
-    if (zeroinfnanf(ix)) {
+    if (zeroinfnan32(ix)) {
       let x2 = x * x;
-      if ((ix >> 31) && checkintf(iy) == 1) x2 = -x2;
+      if ((ix >> 31) && checkint32(iy) == 1) x2 = -x2;
       return iy >> 31 ? 1 / x2 : x2;
     }
     // x and y are non-zero finite.
     if (ix >> 31) {
       // Finite x < 0.
-      let yint = checkintf(iy);
+      let yint = checkint32(iy);
       if (yint == 0) return (x - x) / (x - x);
       if (yint == 1) signBias = SIGN_BIAS;
       ix &= 0x7FFFFFFF;
@@ -440,155 +2572,16 @@ export function powf_lut(x: f32, y: f32): f32 {
       ix -= 23 << 23;
     }
   }
-  var logx = log2f_inline(ix);
+  var logx = log2_32_inline(ix);
   var ylogx = y * logx; // cannot overflow, y is single prec.
   if ((reinterpret<u64>(ylogx) >> 47 & 0xFFFF) >= 0x80BF) { // reinterpret<u64>(126.0) >> 47
     // |y * log(x)| >= 126
-    if (ylogx  > UPPER_LIMIT) return oflowf(signBias); // overflow
-    if (ylogx <= LOWER_LIMIT) return uflowf(signBias); // underflow
+    if (ylogx  > UPPER_LIMIT) return oflow32(signBias); // overflow
+    if (ylogx <= LOWER_LIMIT) return uflow32(signBias); // underflow
   }
-  return exp2f_inline(ylogx, signBias);
+  return exp2_32_inline(ylogx, signBias);
 }
 
-//
-// Lookup data for exp. See: https://git.musl-libc.org/cgit/musl/tree/src/math/exp.c
-//
-
-// @ts-ignore: decorator
-@inline const EXP_TABLE_BITS = 7;
-
-// @ts-ignore: decorator
-@lazy @inline const EXP_DATA_TAB = memory.data<u64>([
-  0x0000000000000000, 0x3FF0000000000000,
-  0x3C9B3B4F1A88BF6E, 0x3FEFF63DA9FB3335,
-  0xBC7160139CD8DC5D, 0x3FEFEC9A3E778061,
-  0xBC905E7A108766D1, 0x3FEFE315E86E7F85,
-  0x3C8CD2523567F613, 0x3FEFD9B0D3158574,
-  0xBC8BCE8023F98EFA, 0x3FEFD06B29DDF6DE,
-  0x3C60F74E61E6C861, 0x3FEFC74518759BC8,
-  0x3C90A3E45B33D399, 0x3FEFBE3ECAC6F383,
-  0x3C979AA65D837B6D, 0x3FEFB5586CF9890F,
-  0x3C8EB51A92FDEFFC, 0x3FEFAC922B7247F7,
-  0x3C3EBE3D702F9CD1, 0x3FEFA3EC32D3D1A2,
-  0xBC6A033489906E0B, 0x3FEF9B66AFFED31B,
-  0xBC9556522A2FBD0E, 0x3FEF9301D0125B51,
-  0xBC5080EF8C4EEA55, 0x3FEF8ABDC06C31CC,
-  0xBC91C923B9D5F416, 0x3FEF829AAEA92DE0,
-  0x3C80D3E3E95C55AF, 0x3FEF7A98C8A58E51,
-  0xBC801B15EAA59348, 0x3FEF72B83C7D517B,
-  0xBC8F1FF055DE323D, 0x3FEF6AF9388C8DEA,
-  0x3C8B898C3F1353BF, 0x3FEF635BEB6FCB75,
-  0xBC96D99C7611EB26, 0x3FEF5BE084045CD4,
-  0x3C9AECF73E3A2F60, 0x3FEF54873168B9AA,
-  0xBC8FE782CB86389D, 0x3FEF4D5022FCD91D,
-  0x3C8A6F4144A6C38D, 0x3FEF463B88628CD6,
-  0x3C807A05B0E4047D, 0x3FEF3F49917DDC96,
-  0x3C968EFDE3A8A894, 0x3FEF387A6E756238,
-  0x3C875E18F274487D, 0x3FEF31CE4FB2A63F,
-  0x3C80472B981FE7F2, 0x3FEF2B4565E27CDD,
-  0xBC96B87B3F71085E, 0x3FEF24DFE1F56381,
-  0x3C82F7E16D09AB31, 0x3FEF1E9DF51FDEE1,
-  0xBC3D219B1A6FBFFA, 0x3FEF187FD0DAD990,
-  0x3C8B3782720C0AB4, 0x3FEF1285A6E4030B,
-  0x3C6E149289CECB8F, 0x3FEF0CAFA93E2F56,
-  0x3C834D754DB0ABB6, 0x3FEF06FE0A31B715,
-  0x3C864201E2AC744C, 0x3FEF0170FC4CD831,
-  0x3C8FDD395DD3F84A, 0x3FEEFC08B26416FF,
-  0xBC86A3803B8E5B04, 0x3FEEF6C55F929FF1,
-  0xBC924AEDCC4B5068, 0x3FEEF1A7373AA9CB,
-  0xBC9907F81B512D8E, 0x3FEEECAE6D05D866,
-  0xBC71D1E83E9436D2, 0x3FEEE7DB34E59FF7,
-  0xBC991919B3CE1B15, 0x3FEEE32DC313A8E5,
-  0x3C859F48A72A4C6D, 0x3FEEDEA64C123422,
-  0xBC9312607A28698A, 0x3FEEDA4504AC801C,
-  0xBC58A78F4817895B, 0x3FEED60A21F72E2A,
-  0xBC7C2C9B67499A1B, 0x3FEED1F5D950A897,
-  0x3C4363ED60C2AC11, 0x3FEECE086061892D,
-  0x3C9666093B0664EF, 0x3FEECA41ED1D0057,
-  0x3C6ECCE1DAA10379, 0x3FEEC6A2B5C13CD0,
-  0x3C93FF8E3F0F1230, 0x3FEEC32AF0D7D3DE,
-  0x3C7690CEBB7AAFB0, 0x3FEEBFDAD5362A27,
-  0x3C931DBDEB54E077, 0x3FEEBCB299FDDD0D,
-  0xBC8F94340071A38E, 0x3FEEB9B2769D2CA7,
-  0xBC87DECCDC93A349, 0x3FEEB6DAA2CF6642,
-  0xBC78DEC6BD0F385F, 0x3FEEB42B569D4F82,
-  0xBC861246EC7B5CF6, 0x3FEEB1A4CA5D920F,
-  0x3C93350518FDD78E, 0x3FEEAF4736B527DA,
-  0x3C7B98B72F8A9B05, 0x3FEEAD12D497C7FD,
-  0x3C9063E1E21C5409, 0x3FEEAB07DD485429,
-  0x3C34C7855019C6EA, 0x3FEEA9268A5946B7,
-  0x3C9432E62B64C035, 0x3FEEA76F15AD2148,
-  0xBC8CE44A6199769F, 0x3FEEA5E1B976DC09,
-  0xBC8C33C53BEF4DA8, 0x3FEEA47EB03A5585,
-  0xBC845378892BE9AE, 0x3FEEA34634CCC320,
-  0xBC93CEDD78565858, 0x3FEEA23882552225,
-  0x3C5710AA807E1964, 0x3FEEA155D44CA973,
-  0xBC93B3EFBF5E2228, 0x3FEEA09E667F3BCD,
-  0xBC6A12AD8734B982, 0x3FEEA012750BDABF,
-  0xBC6367EFB86DA9EE, 0x3FEE9FB23C651A2F,
-  0xBC80DC3D54E08851, 0x3FEE9F7DF9519484,
-  0xBC781F647E5A3ECF, 0x3FEE9F75E8EC5F74,
-  0xBC86EE4AC08B7DB0, 0x3FEE9F9A48A58174,
-  0xBC8619321E55E68A, 0x3FEE9FEB564267C9,
-  0x3C909CCB5E09D4D3, 0x3FEEA0694FDE5D3F,
-  0xBC7B32DCB94DA51D, 0x3FEEA11473EB0187,
-  0x3C94ECFD5467C06B, 0x3FEEA1ED0130C132,
-  0x3C65EBE1ABD66C55, 0x3FEEA2F336CF4E62,
-  0xBC88A1C52FB3CF42, 0x3FEEA427543E1A12,
-  0xBC9369B6F13B3734, 0x3FEEA589994CCE13,
-  0xBC805E843A19FF1E, 0x3FEEA71A4623C7AD,
-  0xBC94D450D872576E, 0x3FEEA8D99B4492ED,
-  0x3C90AD675B0E8A00, 0x3FEEAAC7D98A6699,
-  0x3C8DB72FC1F0EAB4, 0x3FEEACE5422AA0DB,
-  0xBC65B6609CC5E7FF, 0x3FEEAF3216B5448C,
-  0x3C7BF68359F35F44, 0x3FEEB1AE99157736,
-  0xBC93091FA71E3D83, 0x3FEEB45B0B91FFC6,
-  0xBC5DA9B88B6C1E29, 0x3FEEB737B0CDC5E5,
-  0xBC6C23F97C90B959, 0x3FEEBA44CBC8520F,
-  0xBC92434322F4F9AA, 0x3FEEBD829FDE4E50,
-  0xBC85CA6CD7668E4B, 0x3FEEC0F170CA07BA,
-  0x3C71AFFC2B91CE27, 0x3FEEC49182A3F090,
-  0x3C6DD235E10A73BB, 0x3FEEC86319E32323,
-  0xBC87C50422622263, 0x3FEECC667B5DE565,
-  0x3C8B1C86E3E231D5, 0x3FEED09BEC4A2D33,
-  0xBC91BBD1D3BCBB15, 0x3FEED503B23E255D,
-  0x3C90CC319CEE31D2, 0x3FEED99E1330B358,
-  0x3C8469846E735AB3, 0x3FEEDE6B5579FDBF,
-  0xBC82DFCD978E9DB4, 0x3FEEE36BBFD3F37A,
-  0x3C8C1A7792CB3387, 0x3FEEE89F995AD3AD,
-  0xBC907B8F4AD1D9FA, 0x3FEEEE07298DB666,
-  0xBC55C3D956DCAEBA, 0x3FEEF3A2B84F15FB,
-  0xBC90A40E3DA6F640, 0x3FEEF9728DE5593A,
-  0xBC68D6F438AD9334, 0x3FEEFF76F2FB5E47,
-  0xBC91EEE26B588A35, 0x3FEF05B030A1064A,
-  0x3C74FFD70A5FDDCD, 0x3FEF0C1E904BC1D2,
-  0xBC91BDFBFA9298AC, 0x3FEF12C25BD71E09,
-  0x3C736EAE30AF0CB3, 0x3FEF199BDD85529C,
-  0x3C8EE3325C9FFD94, 0x3FEF20AB5FFFD07A,
-  0x3C84E08FD10959AC, 0x3FEF27F12E57D14B,
-  0x3C63CDAF384E1A67, 0x3FEF2F6D9406E7B5,
-  0x3C676B2C6C921968, 0x3FEF3720DCEF9069,
-  0xBC808A1883CCB5D2, 0x3FEF3F0B555DC3FA,
-  0xBC8FAD5D3FFFFA6F, 0x3FEF472D4A07897C,
-  0xBC900DAE3875A949, 0x3FEF4F87080D89F2,
-  0x3C74A385A63D07A7, 0x3FEF5818DCFBA487,
-  0xBC82919E2040220F, 0x3FEF60E316C98398,
-  0x3C8E5A50D5C192AC, 0x3FEF69E603DB3285,
-  0x3C843A59AC016B4B, 0x3FEF7321F301B460,
-  0xBC82D52107B43E1F, 0x3FEF7C97337B9B5F,
-  0xBC892AB93B470DC9, 0x3FEF864614F5A129,
-  0x3C74B604603A88D3, 0x3FEF902EE78B3FF6,
-  0x3C83C5EC519D7271, 0x3FEF9A51FBC74C83,
-  0xBC8FF7128FD391F0, 0x3FEFA4AFA2A490DA,
-  0xBC8DAE98E223747D, 0x3FEFAF482D8E67F1,
-  0x3C8EC3BC41AA2008, 0x3FEFBA1BEE615A27,
-  0x3C842B94C3A9EB32, 0x3FEFC52B376BBA97,
-  0x3C8A64A931D185EE, 0x3FEFD0765B6E4540,
-  0xBC8E37BAE43BE3ED, 0x3FEFDBFDAD9CBE14,
-  0x3C77893B4D91CD9D, 0x3FEFE7C1819E90D8,
-  0x3C5305C14160CC89, 0x3FEFF3C22B8F71F1
-]);
-
 // Handle cases that may overflow or underflow when computing the result that
 // is scale*(1+TMP) without intermediate rounding. The bit representation of
 // scale is in SBITS, however it has a computed exponent that may have
@@ -615,12 +2608,12 @@ function specialcase(tmp: f64, sbits: u64, ki: u64): f64 {
   // Note: sbits is signed scale.
   scale = reinterpret<f64>(sbits);
   var y = scale + scale * tmp;
-  if (abs(y) < 1.0) {
+  if (abs<f64>(y) < 1.0) {
     // Round y to the right precision before scaling it into the subnormal
     // range to avoid double rounding that can cause 0.5+E/2 ulp error where
     // E is the worst-case ulp error outside the subnormal range.  So this
     // is only useful if the goal is better than 1 ulp worst-case error.
-    let one = copysign(1.0, y);
+    let one = copysign<f64>(1.0, y);
     let lo = scale - y + scale * tmp;
     let hi = one + y;
     lo = one - hi + y + lo;
@@ -635,7 +2628,7 @@ function specialcase(tmp: f64, sbits: u64, ki: u64): f64 {
 @inline
 export function exp_lut(x: f64): f64 {
   const
-    N      = 1 << EXP_TABLE_BITS,
+    N      = 1 << EXP_TABLE64_BITS,
     N_MASK = N - 1;
 
   const
@@ -683,11 +2676,11 @@ export function exp_lut(x: f64): f64 {
   var r = x + kd * NegLn2hiN + kd * NegLn2loN;
   // 2^(k/N) ~= scale * (1 + tail).
   var idx = <usize>((ki & N_MASK) << 1);
-  var top = ki << (52 - EXP_TABLE_BITS);
+  var top = ki << (52 - EXP_TABLE64_BITS);
 
-  var tail = reinterpret<f64>(load<u64>(EXP_DATA_TAB + (idx << alignof<u64>()))); // T[idx]
+  var tail = reinterpret<f64>(load<u64>(EXP_TABLE64 + (idx << alignof<u64>()))); // T[idx]
   // This is only a valid scale when -1023*N < k < 1024*N
-  var sbits = load<u64>(EXP_DATA_TAB + (idx << alignof<u64>()), 1 << alignof<u64>()) + top; // T[idx + 1]
+  var sbits = load<u64>(EXP_TABLE64 + (idx << alignof<u64>()), 1 << alignof<u64>()) + top; // T[idx + 1]
   // exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1).
   // Evaluation is optimized assuming superscalar pipelined execution.
   var r2 = r * r;
@@ -741,11 +2734,9 @@ function specialcase2(tmp: f64, sbits: u64, ki: u64): f64 {
   return y * Ox1p_1022;
 }
 
-// @ts-ignore: decorator
-@inline
-export function exp2_lut(x: f64): f64 {
+export function exp2_64_lut(x: f64): f64 {
   const
-    N      = 1 << EXP_TABLE_BITS,
+    N      = 1 << EXP_TABLE64_BITS,
     N_MASK = N - 1,
     shift  = reinterpret<f64>(0x4338000000000000) / N; // 0x1.8p52
 
@@ -777,11 +2768,11 @@ export function exp2_lut(x: f64): f64 {
   var r = x - kd;
   // 2^(k/N) ~= scale * (1 + tail)
   var idx = <usize>((ki & N_MASK) << 1);
-  var top = ki << (52 - EXP_TABLE_BITS);
+  var top = ki << (52 - EXP_TABLE64_BITS);
 
-  var tail = reinterpret<f64>(load<u64>(EXP_DATA_TAB + (idx << alignof<u64>()), 0 << alignof<u64>())); // T[idx])
+  var tail = reinterpret<f64>(load<u64>(EXP_TABLE64 + (idx << alignof<u64>()), 0 << alignof<u64>())); // T[idx])
   // This is only a valid scale when -1023*N < k < 1024*N
-  var sbits = load<u64>(EXP_DATA_TAB + (idx << alignof<u64>()), 1 << alignof<u64>()) + top; // T[idx + 1]
+  var sbits = load<u64>(EXP_TABLE64 + (idx << alignof<u64>()), 1 << alignof<u64>()) + top; // T[idx + 1]
   // exp2(x) = 2^(k/N) * 2^r ~= scale + scale * (tail + 2^r - 1).
   // Evaluation is optimized assuming superscalar pipelined execution
   var r2 = r * r;
@@ -795,182 +2786,10 @@ export function exp2_lut(x: f64): f64 {
   return scale * tmp + scale;
 }
 
-//
-// Lookup data for log2. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log2.c
-//
-
-// @ts-ignore: decorator
-@inline const LOG2_TABLE_BITS = 6;
-
-/* Algorithm:
-
-  x = 2^k z
-  log2(x) = k + log2(c) + log2(z/c)
-  log2(z/c) = poly(z/c - 1)
-
-where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
-into the ith one, then table entries are computed as
-
-  tab[i].invc = 1/c
-  tab[i].logc = (double)log2(c)
-  tab2[i].chi = (double)c
-  tab2[i].clo = (double)(c - (double)c)
-
-where c is near the center of the subinterval and is chosen by trying +-2^29
-floating point invc candidates around 1/center and selecting one for which
-
-  1) the rounding error in 0x1.8p10 + logc is 0,
-  2) the rounding error in z - chi - clo is < 0x1p-64 and
-  3) the rounding error in (double)log2(c) is minimized (< 0x1p-68).
-
-Note: 1) ensures that k + logc can be computed without rounding error, 2)
-ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to a
-single rounding error when there is no fast fma for z*invc - 1, 3) ensures
-that logc + poly(z/c - 1) has small error, however near x == 1 when
-|log2(x)| < 0x1p-4, this is not enough so that is special cased. */
-
-// @ts-ignore: decorator
-@lazy @inline const LOG2_DATA_TAB1 = memory.data<f64>([
-  //            invc                  ,                logc
-  reinterpret<f64>(0x3FF724286BB1ACF8), reinterpret<f64>(0xBFE1095FEECDB000),
-  reinterpret<f64>(0x3FF6E1F766D2CCA1), reinterpret<f64>(0xBFE08494BD76D000),
-  reinterpret<f64>(0x3FF6A13D0E30D48A), reinterpret<f64>(0xBFE00143AEE8F800),
-  reinterpret<f64>(0x3FF661EC32D06C85), reinterpret<f64>(0xBFDEFEC5360B4000),
-  reinterpret<f64>(0x3FF623FA951198F8), reinterpret<f64>(0xBFDDFDD91AB7E000),
-  reinterpret<f64>(0x3FF5E75BA4CF026C), reinterpret<f64>(0xBFDCFFAE0CC79000),
-  reinterpret<f64>(0x3FF5AC055A214FB8), reinterpret<f64>(0xBFDC043811FDA000),
-  reinterpret<f64>(0x3FF571ED0F166E1E), reinterpret<f64>(0xBFDB0B67323AE000),
-  reinterpret<f64>(0x3FF53909590BF835), reinterpret<f64>(0xBFDA152F5A2DB000),
-  reinterpret<f64>(0x3FF5014FED61ADDD), reinterpret<f64>(0xBFD9217F5AF86000),
-  reinterpret<f64>(0x3FF4CAB88E487BD0), reinterpret<f64>(0xBFD8304DB0719000),
-  reinterpret<f64>(0x3FF49539B4334FEE), reinterpret<f64>(0xBFD74189F9A9E000),
-  reinterpret<f64>(0x3FF460CBDFAFD569), reinterpret<f64>(0xBFD6552BB5199000),
-  reinterpret<f64>(0x3FF42D664EE4B953), reinterpret<f64>(0xBFD56B23A29B1000),
-  reinterpret<f64>(0x3FF3FB01111DD8A6), reinterpret<f64>(0xBFD483650F5FA000),
-  reinterpret<f64>(0x3FF3C995B70C5836), reinterpret<f64>(0xBFD39DE937F6A000),
-  reinterpret<f64>(0x3FF3991C4AB6FD4A), reinterpret<f64>(0xBFD2BAA1538D6000),
-  reinterpret<f64>(0x3FF3698E0CE099B5), reinterpret<f64>(0xBFD1D98340CA4000),
-  reinterpret<f64>(0x3FF33AE48213E7B2), reinterpret<f64>(0xBFD0FA853A40E000),
-  reinterpret<f64>(0x3FF30D191985BDB1), reinterpret<f64>(0xBFD01D9C32E73000),
-  reinterpret<f64>(0x3FF2E025CAB271D7), reinterpret<f64>(0xBFCE857DA2FA6000),
-  reinterpret<f64>(0x3FF2B404CF13CD82), reinterpret<f64>(0xBFCCD3C8633D8000),
-  reinterpret<f64>(0x3FF288B02C7CCB50), reinterpret<f64>(0xBFCB26034C14A000),
-  reinterpret<f64>(0x3FF25E2263944DE5), reinterpret<f64>(0xBFC97C1C2F4FE000),
-  reinterpret<f64>(0x3FF234563D8615B1), reinterpret<f64>(0xBFC7D6023F800000),
-  reinterpret<f64>(0x3FF20B46E33EAF38), reinterpret<f64>(0xBFC633A71A05E000),
-  reinterpret<f64>(0x3FF1E2EEFDCDA3DD), reinterpret<f64>(0xBFC494F5E9570000),
-  reinterpret<f64>(0x3FF1BB4A580B3930), reinterpret<f64>(0xBFC2F9E424E0A000),
-  reinterpret<f64>(0x3FF19453847F2200), reinterpret<f64>(0xBFC162595AFDC000),
-  reinterpret<f64>(0x3FF16E06C0D5D73C), reinterpret<f64>(0xBFBF9C9A75BD8000),
-  reinterpret<f64>(0x3FF1485F47B7E4C2), reinterpret<f64>(0xBFBC7B575BF9C000),
-  reinterpret<f64>(0x3FF12358AD0085D1), reinterpret<f64>(0xBFB960C60FF48000),
-  reinterpret<f64>(0x3FF0FEF00F532227), reinterpret<f64>(0xBFB64CE247B60000),
-  reinterpret<f64>(0x3FF0DB2077D03A8F), reinterpret<f64>(0xBFB33F78B2014000),
-  reinterpret<f64>(0x3FF0B7E6D65980D9), reinterpret<f64>(0xBFB0387D1A42C000),
-  reinterpret<f64>(0x3FF0953EFE7B408D), reinterpret<f64>(0xBFAA6F9208B50000),
-  reinterpret<f64>(0x3FF07325CAC53B83), reinterpret<f64>(0xBFA47A954F770000),
-  reinterpret<f64>(0x3FF05197E40D1B5C), reinterpret<f64>(0xBF9D23A8C50C0000),
-  reinterpret<f64>(0x3FF03091C1208EA2), reinterpret<f64>(0xBF916A2629780000),
-  reinterpret<f64>(0x3FF0101025B37E21), reinterpret<f64>(0xBF7720F8D8E80000),
-  reinterpret<f64>(0x3FEFC07EF9CAA76B), reinterpret<f64>(0x3F86FE53B1500000),
-  reinterpret<f64>(0x3FEF4465D3F6F184), reinterpret<f64>(0x3FA11CCCE10F8000),
-  reinterpret<f64>(0x3FEECC079F84107F), reinterpret<f64>(0x3FAC4DFC8C8B8000),
-  reinterpret<f64>(0x3FEE573A99975AE8), reinterpret<f64>(0x3FB3AA321E574000),
-  reinterpret<f64>(0x3FEDE5D6F0BD3DE6), reinterpret<f64>(0x3FB918A0D08B8000),
-  reinterpret<f64>(0x3FED77B681FF38B3), reinterpret<f64>(0x3FBE72E9DA044000),
-  reinterpret<f64>(0x3FED0CB5724DE943), reinterpret<f64>(0x3FC1DCD2507F6000),
-  reinterpret<f64>(0x3FECA4B2DC0E7563), reinterpret<f64>(0x3FC476AB03DEA000),
-  reinterpret<f64>(0x3FEC3F8EE8D6CB51), reinterpret<f64>(0x3FC7074377E22000),
-  reinterpret<f64>(0x3FEBDD2B4F020C4C), reinterpret<f64>(0x3FC98EDE8BA94000),
-  reinterpret<f64>(0x3FEB7D6C006015CA), reinterpret<f64>(0x3FCC0DB86AD2E000),
-  reinterpret<f64>(0x3FEB20366E2E338F), reinterpret<f64>(0x3FCE840AAFCEE000),
-  reinterpret<f64>(0x3FEAC57026295039), reinterpret<f64>(0x3FD0790AB4678000),
-  reinterpret<f64>(0x3FEA6D01BC2731DD), reinterpret<f64>(0x3FD1AC056801C000),
-  reinterpret<f64>(0x3FEA16D3BC3FF18B), reinterpret<f64>(0x3FD2DB11D4FEE000),
-  reinterpret<f64>(0x3FE9C2D14967FEAD), reinterpret<f64>(0x3FD406464EC58000),
-  reinterpret<f64>(0x3FE970E4F47C9902), reinterpret<f64>(0x3FD52DBE093AF000),
-  reinterpret<f64>(0x3FE920FB3982BCF2), reinterpret<f64>(0x3FD651902050D000),
-  reinterpret<f64>(0x3FE8D30187F759F1), reinterpret<f64>(0x3FD771D2CDEAF000),
-  reinterpret<f64>(0x3FE886E5EBB9F66D), reinterpret<f64>(0x3FD88E9C857D9000),
-  reinterpret<f64>(0x3FE83C97B658B994), reinterpret<f64>(0x3FD9A80155E16000),
-  reinterpret<f64>(0x3FE7F405FFC61022), reinterpret<f64>(0x3FDABE186ED3D000),
-  reinterpret<f64>(0x3FE7AD22181415CA), reinterpret<f64>(0x3FDBD0F2AEA0E000),
-  reinterpret<f64>(0x3FE767DCF99EFF8C), reinterpret<f64>(0x3FDCE0A43DBF4000)
-]);
-
-// @ts-ignore: decorator
-@lazy @inline const LOG2_DATA_TAB2 = memory.data<f64>([
-  //              chi                 ,                 clo
-  reinterpret<f64>(0x3FE6200012B90A8E), reinterpret<f64>(0x3C8904AB0644B605),
-  reinterpret<f64>(0x3FE66000045734A6), reinterpret<f64>(0x3C61FF9BEA62F7A9),
-  reinterpret<f64>(0x3FE69FFFC325F2C5), reinterpret<f64>(0x3C827ECFCB3C90BA),
-  reinterpret<f64>(0x3FE6E00038B95A04), reinterpret<f64>(0x3C88FF8856739326),
-  reinterpret<f64>(0x3FE71FFFE09994E3), reinterpret<f64>(0x3C8AFD40275F82B1),
-  reinterpret<f64>(0x3FE7600015590E10), reinterpret<f64>(0xBC72FD75B4238341),
-  reinterpret<f64>(0x3FE7A00012655BD5), reinterpret<f64>(0x3C7808E67C242B76),
-  reinterpret<f64>(0x3FE7E0003259E9A6), reinterpret<f64>(0xBC6208E426F622B7),
-  reinterpret<f64>(0x3FE81FFFEDB4B2D2), reinterpret<f64>(0xBC8402461EA5C92F),
-  reinterpret<f64>(0x3FE860002DFAFCC3), reinterpret<f64>(0x3C6DF7F4A2F29A1F),
-  reinterpret<f64>(0x3FE89FFFF78C6B50), reinterpret<f64>(0xBC8E0453094995FD),
-  reinterpret<f64>(0x3FE8E00039671566), reinterpret<f64>(0xBC8A04F3BEC77B45),
-  reinterpret<f64>(0x3FE91FFFE2BF1745), reinterpret<f64>(0xBC77FA34400E203C),
-  reinterpret<f64>(0x3FE95FFFCC5C9FD1), reinterpret<f64>(0xBC76FF8005A0695D),
-  reinterpret<f64>(0x3FE9A0003BBA4767), reinterpret<f64>(0x3C70F8C4C4EC7E03),
-  reinterpret<f64>(0x3FE9DFFFE7B92DA5), reinterpret<f64>(0x3C8E7FD9478C4602),
-  reinterpret<f64>(0x3FEA1FFFD72EFDAF), reinterpret<f64>(0xBC6A0C554DCDAE7E),
-  reinterpret<f64>(0x3FEA5FFFDE04FF95), reinterpret<f64>(0x3C867DA98CE9B26B),
-  reinterpret<f64>(0x3FEA9FFFCA5E8D2B), reinterpret<f64>(0xBC8284C9B54C13DE),
-  reinterpret<f64>(0x3FEADFFFDDAD03EA), reinterpret<f64>(0x3C5812C8EA602E3C),
-  reinterpret<f64>(0x3FEB1FFFF10D3D4D), reinterpret<f64>(0xBC8EFADDAD27789C),
-  reinterpret<f64>(0x3FEB5FFFCE21165A), reinterpret<f64>(0x3C53CB1719C61237),
-  reinterpret<f64>(0x3FEB9FFFD950E674), reinterpret<f64>(0x3C73F7D94194CE00),
-  reinterpret<f64>(0x3FEBE000139CA8AF), reinterpret<f64>(0x3C750AC4215D9BC0),
-  reinterpret<f64>(0x3FEC20005B46DF99), reinterpret<f64>(0x3C6BEEA653E9C1C9),
-  reinterpret<f64>(0x3FEC600040B9F7AE), reinterpret<f64>(0xBC7C079F274A70D6),
-  reinterpret<f64>(0x3FECA0006255FD8A), reinterpret<f64>(0xBC7A0B4076E84C1F),
-  reinterpret<f64>(0x3FECDFFFD94C095D), reinterpret<f64>(0x3C88F933F99AB5D7),
-  reinterpret<f64>(0x3FED1FFFF975D6CF), reinterpret<f64>(0xBC582C08665FE1BE),
-  reinterpret<f64>(0x3FED5FFFA2561C93), reinterpret<f64>(0xBC7B04289BD295F3),
-  reinterpret<f64>(0x3FED9FFF9D228B0C), reinterpret<f64>(0x3C870251340FA236),
-  reinterpret<f64>(0x3FEDE00065BC7E16), reinterpret<f64>(0xBC75011E16A4D80C),
-  reinterpret<f64>(0x3FEE200002F64791), reinterpret<f64>(0x3C89802F09EF62E0),
-  reinterpret<f64>(0x3FEE600057D7A6D8), reinterpret<f64>(0xBC7E0B75580CF7FA),
-  reinterpret<f64>(0x3FEEA00027EDC00C), reinterpret<f64>(0xBC8C848309459811),
-  reinterpret<f64>(0x3FEEE0006CF5CB7C), reinterpret<f64>(0xBC8F8027951576F4),
-  reinterpret<f64>(0x3FEF2000782B7DCC), reinterpret<f64>(0xBC8F81D97274538F),
-  reinterpret<f64>(0x3FEF6000260C450A), reinterpret<f64>(0xBC4071002727FFDC),
-  reinterpret<f64>(0x3FEF9FFFE88CD533), reinterpret<f64>(0xBC581BDCE1FDA8B0),
-  reinterpret<f64>(0x3FEFDFFFD50F8689), reinterpret<f64>(0x3C87F91ACB918E6E),
-  reinterpret<f64>(0x3FF0200004292367), reinterpret<f64>(0x3C9B7FF365324681),
-  reinterpret<f64>(0x3FF05FFFE3E3D668), reinterpret<f64>(0x3C86FA08DDAE957B),
-  reinterpret<f64>(0x3FF0A0000A85A757), reinterpret<f64>(0xBC57E2DE80D3FB91),
-  reinterpret<f64>(0x3FF0E0001A5F3FCC), reinterpret<f64>(0xBC91823305C5F014),
-  reinterpret<f64>(0x3FF11FFFF8AFBAF5), reinterpret<f64>(0xBC8BFABB6680BAC2),
-  reinterpret<f64>(0x3FF15FFFE54D91AD), reinterpret<f64>(0xBC9D7F121737E7EF),
-  reinterpret<f64>(0x3FF1A00011AC36E1), reinterpret<f64>(0x3C9C000A0516F5FF),
-  reinterpret<f64>(0x3FF1E00019C84248), reinterpret<f64>(0xBC9082FBE4DA5DA0),
-  reinterpret<f64>(0x3FF220000FFE5E6E), reinterpret<f64>(0xBC88FDD04C9CFB43),
-  reinterpret<f64>(0x3FF26000269FD891), reinterpret<f64>(0x3C8CFE2A7994D182),
-  reinterpret<f64>(0x3FF2A00029A6E6DA), reinterpret<f64>(0xBC700273715E8BC5),
-  reinterpret<f64>(0x3FF2DFFFE0293E39), reinterpret<f64>(0x3C9B7C39DAB2A6F9),
-  reinterpret<f64>(0x3FF31FFFF7DCF082), reinterpret<f64>(0x3C7DF1336EDC5254),
-  reinterpret<f64>(0x3FF35FFFF05A8B60), reinterpret<f64>(0xBC9E03564CCD31EB),
-  reinterpret<f64>(0x3FF3A0002E0EAECC), reinterpret<f64>(0x3C75F0E74BD3A477),
-  reinterpret<f64>(0x3FF3E000043BB236), reinterpret<f64>(0x3C9C7DCB149D8833),
-  reinterpret<f64>(0x3FF4200002D187FF), reinterpret<f64>(0x3C7E08AFCF2D3D28),
-  reinterpret<f64>(0x3FF460000D387CB1), reinterpret<f64>(0x3C820837856599A6),
-  reinterpret<f64>(0x3FF4A00004569F89), reinterpret<f64>(0xBC89FA5C904FBCD2),
-  reinterpret<f64>(0x3FF4E000043543F3), reinterpret<f64>(0xBC781125ED175329),
-  reinterpret<f64>(0x3FF51FFFCC027F0F), reinterpret<f64>(0x3C9883D8847754DC),
-  reinterpret<f64>(0x3FF55FFFFD87B36F), reinterpret<f64>(0xBC8709E731D02807),
-  reinterpret<f64>(0x3FF59FFFF21DF7BA), reinterpret<f64>(0x3C87F79F68727B02),
-  reinterpret<f64>(0x3FF5DFFFEBFC3481), reinterpret<f64>(0xBC9180902E30E93E)
-]);
-
 // @ts-ignore: decorator
 @inline
-export function log2_lut(x: f64): f64 {
-  const N_MASK = (1 << LOG2_TABLE_BITS) - 1;
+export function log2_64_lut(x: f64): f64 {
+  const N_MASK = (1 << LOG2_TABLE64_BITS) - 1;
 
   const
     LO: u64 = 0x3FEEA4AF00000000, // reinterpret<u64>(1.0 - 0x1.5b51p-5)
@@ -1038,12 +2857,12 @@ export function log2_lut(x: f64): f64 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp  = ix - 0x3FE6000000000000;
-  var i    = <usize>((tmp >> (52 - LOG2_TABLE_BITS)) & N_MASK);
+  var i    = <usize>((tmp >> (52 - LOG2_TABLE64_BITS)) & N_MASK);
   var k    = <i64>tmp >> 52;
   var iz   = ix - (tmp & 0xFFF0000000000000);
 
-  var invc = load<f64>(LOG2_DATA_TAB1  + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].invc;
-  var logc = load<f64>(LOG2_DATA_TAB1  + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].logc;
+  var invc = load<f64>(LOG2_TABLE1_64  + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].invc;
+  var logc = load<f64>(LOG2_TABLE1_64  + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].logc;
   var z    = reinterpret<f64>(iz);
   var kd   = <f64>k;
 
@@ -1056,334 +2875,34 @@ export function log2_lut(x: f64): f64 {
   // 	t2 = r * InvLn2lo + __builtin_fma(r, InvLn2hi, -t1);
   // #else
   // rounding error: 0x1p-55/N + 0x1p-65.
-  var chi = load<f64>(LOG2_DATA_TAB2 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].chi;
-  var clo = load<f64>(LOG2_DATA_TAB2 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].clo;
-
-  var r   = (z - chi - clo) * invc;
-  var rhi = reinterpret<f64>(reinterpret<u64>(r) & 0xFFFFFFFF00000000);
-  var rlo = r - rhi;
-  var t1  = rhi * InvLn2hi;
-  var t2  = rlo * InvLn2hi + r * InvLn2lo;
-  // #endif
-
-  // hi + lo = r/ln2 + log2(c) + k
-  var t3 = kd + logc;
-  var hi = t3 + t1;
-  var lo = t3 - hi + t1 + t2;
-
-  // log2(r+1) = r/ln2 + r^2*poly(r)
-  // Evaluation is optimized assuming superscalar pipelined execution
-  var r2 = r * r; // rounding error: 0x1p-54/N^2
-  // Worst-case error if |y| > 0x1p-4: 0.547 ULP (0.550 ULP without fma).
-  // ~ 0.5 + 2/N/ln2 + abs-poly-error*0x1p56 ULP (+ 0.003 ULP without fma).
-  var p = A0 + r * A1 + r2 * (A2 + r * A3) + (r2 * r2) * (A4 + r * A5);
-  return lo + r2 * p + hi;
-}
-
-//
-// Lookup data for log. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log.c
-//
-
-// @ts-ignore: decorator
-@inline const LOG_TABLE_BITS = 7;
-
-/* Algorithm:
-
-  x = 2^k z
-  log(x) = k ln2 + log(c) + log(z/c)
-  log(z/c) = poly(z/c - 1)
-
-where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
-into the ith one, then table entries are computed as
-
-  tab[i].invc = 1/c
-  tab[i].logc = (double)log(c)
-  tab2[i].chi = (double)c
-  tab2[i].clo = (double)(c - (double)c)
-
-where c is near the center of the subinterval and is chosen by trying +-2^29
-floating point invc candidates around 1/center and selecting one for which
-
-  1) the rounding error in 0x1.8p9 + logc is 0,
-  2) the rounding error in z - chi - clo is < 0x1p-66 and
-  3) the rounding error in (double)log(c) is minimized (< 0x1p-66).
-
-Note: 1) ensures that k*ln2hi + logc can be computed without rounding error,
-2) ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to
-a single rounding error when there is no fast fma for z*invc - 1, 3) ensures
-that logc + poly(z/c - 1) has small error, however near x == 1 when
-|log(x)| < 0x1p-4, this is not enough so that is special cased.*/
+  var chi = load<f64>(LOG2_TABLE2_64 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].chi;
+  var clo = load<f64>(LOG2_TABLE2_64 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].clo;
 
-// @ts-ignore: decorator
-@lazy @inline const LOG_DATA_TAB1 = memory.data<f64>([
-  //              invc                ,                 logc
-  reinterpret<f64>(0x3FF734F0C3E0DE9F), reinterpret<f64>(0xBFD7CC7F79E69000),
-  reinterpret<f64>(0x3FF713786A2CE91F), reinterpret<f64>(0xBFD76FEEC20D0000),
-  reinterpret<f64>(0x3FF6F26008FAB5A0), reinterpret<f64>(0xBFD713E31351E000),
-  reinterpret<f64>(0x3FF6D1A61F138C7D), reinterpret<f64>(0xBFD6B85B38287800),
-  reinterpret<f64>(0x3FF6B1490BC5B4D1), reinterpret<f64>(0xBFD65D5590807800),
-  reinterpret<f64>(0x3FF69147332F0CBA), reinterpret<f64>(0xBFD602D076180000),
-  reinterpret<f64>(0x3FF6719F18224223), reinterpret<f64>(0xBFD5A8CA86909000),
-  reinterpret<f64>(0x3FF6524F99A51ED9), reinterpret<f64>(0xBFD54F4356035000),
-  reinterpret<f64>(0x3FF63356AA8F24C4), reinterpret<f64>(0xBFD4F637C36B4000),
-  reinterpret<f64>(0x3FF614B36B9DDC14), reinterpret<f64>(0xBFD49DA7FDA85000),
-  reinterpret<f64>(0x3FF5F66452C65C4C), reinterpret<f64>(0xBFD445923989A800),
-  reinterpret<f64>(0x3FF5D867B5912C4F), reinterpret<f64>(0xBFD3EDF439B0B800),
-  reinterpret<f64>(0x3FF5BABCCB5B90DE), reinterpret<f64>(0xBFD396CE448F7000),
-  reinterpret<f64>(0x3FF59D61F2D91A78), reinterpret<f64>(0xBFD3401E17BDA000),
-  reinterpret<f64>(0x3FF5805612465687), reinterpret<f64>(0xBFD2E9E2EF468000),
-  reinterpret<f64>(0x3FF56397CEE76BD3), reinterpret<f64>(0xBFD2941B3830E000),
-  reinterpret<f64>(0x3FF54725E2A77F93), reinterpret<f64>(0xBFD23EC58CDA8800),
-  reinterpret<f64>(0x3FF52AFF42064583), reinterpret<f64>(0xBFD1E9E129279000),
-  reinterpret<f64>(0x3FF50F22DBB2BDDF), reinterpret<f64>(0xBFD1956D2B48F800),
-  reinterpret<f64>(0x3FF4F38F4734DED7), reinterpret<f64>(0xBFD141679AB9F800),
-  reinterpret<f64>(0x3FF4D843CFDE2840), reinterpret<f64>(0xBFD0EDD094EF9800),
-  reinterpret<f64>(0x3FF4BD3EC078A3C8), reinterpret<f64>(0xBFD09AA518DB1000),
-  reinterpret<f64>(0x3FF4A27FC3E0258A), reinterpret<f64>(0xBFD047E65263B800),
-  reinterpret<f64>(0x3FF4880524D48434), reinterpret<f64>(0xBFCFEB224586F000),
-  reinterpret<f64>(0x3FF46DCE1B192D0B), reinterpret<f64>(0xBFCF474A7517B000),
-  reinterpret<f64>(0x3FF453D9D3391854), reinterpret<f64>(0xBFCEA4443D103000),
-  reinterpret<f64>(0x3FF43A2744B4845A), reinterpret<f64>(0xBFCE020D44E9B000),
-  reinterpret<f64>(0x3FF420B54115F8FB), reinterpret<f64>(0xBFCD60A22977F000),
-  reinterpret<f64>(0x3FF40782DA3EF4B1), reinterpret<f64>(0xBFCCC00104959000),
-  reinterpret<f64>(0x3FF3EE8F5D57FE8F), reinterpret<f64>(0xBFCC202956891000),
-  reinterpret<f64>(0x3FF3D5D9A00B4CE9), reinterpret<f64>(0xBFCB81178D811000),
-  reinterpret<f64>(0x3FF3BD60C010C12B), reinterpret<f64>(0xBFCAE2C9CCD3D000),
-  reinterpret<f64>(0x3FF3A5242B75DAB8), reinterpret<f64>(0xBFCA45402E129000),
-  reinterpret<f64>(0x3FF38D22CD9FD002), reinterpret<f64>(0xBFC9A877681DF000),
-  reinterpret<f64>(0x3FF3755BC5847A1C), reinterpret<f64>(0xBFC90C6D69483000),
-  reinterpret<f64>(0x3FF35DCE49AD36E2), reinterpret<f64>(0xBFC87120A645C000),
-  reinterpret<f64>(0x3FF34679984DD440), reinterpret<f64>(0xBFC7D68FB4143000),
-  reinterpret<f64>(0x3FF32F5CCEFFCB24), reinterpret<f64>(0xBFC73CB83C627000),
-  reinterpret<f64>(0x3FF3187775A10D49), reinterpret<f64>(0xBFC6A39A9B376000),
-  reinterpret<f64>(0x3FF301C8373E3990), reinterpret<f64>(0xBFC60B3154B7A000),
-  reinterpret<f64>(0x3FF2EB4EBB95F841), reinterpret<f64>(0xBFC5737D76243000),
-  reinterpret<f64>(0x3FF2D50A0219A9D1), reinterpret<f64>(0xBFC4DC7B8FC23000),
-  reinterpret<f64>(0x3FF2BEF9A8B7FD2A), reinterpret<f64>(0xBFC4462C51D20000),
-  reinterpret<f64>(0x3FF2A91C7A0C1BAB), reinterpret<f64>(0xBFC3B08ABC830000),
-  reinterpret<f64>(0x3FF293726014B530), reinterpret<f64>(0xBFC31B996B490000),
-  reinterpret<f64>(0x3FF27DFA5757A1F5), reinterpret<f64>(0xBFC2875490A44000),
-  reinterpret<f64>(0x3FF268B39B1D3BBF), reinterpret<f64>(0xBFC1F3B9F879A000),
-  reinterpret<f64>(0x3FF2539D838FF5BD), reinterpret<f64>(0xBFC160C8252CA000),
-  reinterpret<f64>(0x3FF23EB7AAC9083B), reinterpret<f64>(0xBFC0CE7F57F72000),
-  reinterpret<f64>(0x3FF22A012BA940B6), reinterpret<f64>(0xBFC03CDC49FEA000),
-  reinterpret<f64>(0x3FF2157996CC4132), reinterpret<f64>(0xBFBF57BDBC4B8000),
-  reinterpret<f64>(0x3FF201201DD2FC9B), reinterpret<f64>(0xBFBE370896404000),
-  reinterpret<f64>(0x3FF1ECF4494D480B), reinterpret<f64>(0xBFBD17983EF94000),
-  reinterpret<f64>(0x3FF1D8F5528F6569), reinterpret<f64>(0xBFBBF9674ED8A000),
-  reinterpret<f64>(0x3FF1C52311577E7C), reinterpret<f64>(0xBFBADC79202F6000),
-  reinterpret<f64>(0x3FF1B17C74CB26E9), reinterpret<f64>(0xBFB9C0C3E7288000),
-  reinterpret<f64>(0x3FF19E010C2C1AB6), reinterpret<f64>(0xBFB8A646B372C000),
-  reinterpret<f64>(0x3FF18AB07BB670BD), reinterpret<f64>(0xBFB78D01B3AC0000),
-  reinterpret<f64>(0x3FF1778A25EFBCB6), reinterpret<f64>(0xBFB674F145380000),
-  reinterpret<f64>(0x3FF1648D354C31DA), reinterpret<f64>(0xBFB55E0E6D878000),
-  reinterpret<f64>(0x3FF151B990275FDD), reinterpret<f64>(0xBFB4485CDEA1E000),
-  reinterpret<f64>(0x3FF13F0EA432D24C), reinterpret<f64>(0xBFB333D94D6AA000),
-  reinterpret<f64>(0x3FF12C8B7210F9DA), reinterpret<f64>(0xBFB22079F8C56000),
-  reinterpret<f64>(0x3FF11A3028ECB531), reinterpret<f64>(0xBFB10E4698622000),
-  reinterpret<f64>(0x3FF107FBDA8434AF), reinterpret<f64>(0xBFAFFA6C6AD20000),
-  reinterpret<f64>(0x3FF0F5EE0F4E6BB3), reinterpret<f64>(0xBFADDA8D4A774000),
-  reinterpret<f64>(0x3FF0E4065D2A9FCE), reinterpret<f64>(0xBFABBCECE4850000),
-  reinterpret<f64>(0x3FF0D244632CA521), reinterpret<f64>(0xBFA9A1894012C000),
-  reinterpret<f64>(0x3FF0C0A77CE2981A), reinterpret<f64>(0xBFA788583302C000),
-  reinterpret<f64>(0x3FF0AF2F83C636D1), reinterpret<f64>(0xBFA5715E67D68000),
-  reinterpret<f64>(0x3FF09DDB98A01339), reinterpret<f64>(0xBFA35C8A49658000),
-  reinterpret<f64>(0x3FF08CABAF52E7DF), reinterpret<f64>(0xBFA149E364154000),
-  reinterpret<f64>(0x3FF07B9F2F4E28FB), reinterpret<f64>(0xBF9E72C082EB8000),
-  reinterpret<f64>(0x3FF06AB58C358F19), reinterpret<f64>(0xBF9A55F152528000),
-  reinterpret<f64>(0x3FF059EEA5ECF92C), reinterpret<f64>(0xBF963D62CF818000),
-  reinterpret<f64>(0x3FF04949CDD12C90), reinterpret<f64>(0xBF9228FB8CAA0000),
-  reinterpret<f64>(0x3FF038C6C6F0ADA9), reinterpret<f64>(0xBF8C317B20F90000),
-  reinterpret<f64>(0x3FF02865137932A9), reinterpret<f64>(0xBF8419355DAA0000),
-  reinterpret<f64>(0x3FF0182427EA7348), reinterpret<f64>(0xBF781203C2EC0000),
-  reinterpret<f64>(0x3FF008040614B195), reinterpret<f64>(0xBF60040979240000),
-  reinterpret<f64>(0x3FEFE01FF726FA1A), reinterpret<f64>(0x3F6FEFF384900000),
-  reinterpret<f64>(0x3FEFA11CC261EA74), reinterpret<f64>(0x3F87DC41353D0000),
-  reinterpret<f64>(0x3FEF6310B081992E), reinterpret<f64>(0x3F93CEA3C4C28000),
-  reinterpret<f64>(0x3FEF25F63CEEADCD), reinterpret<f64>(0x3F9B9FC114890000),
-  reinterpret<f64>(0x3FEEE9C8039113E7), reinterpret<f64>(0x3FA1B0D8CE110000),
-  reinterpret<f64>(0x3FEEAE8078CBB1AB), reinterpret<f64>(0x3FA58A5BD001C000),
-  reinterpret<f64>(0x3FEE741AA29D0C9B), reinterpret<f64>(0x3FA95C8340D88000),
-  reinterpret<f64>(0x3FEE3A91830A99B5), reinterpret<f64>(0x3FAD276AEF578000),
-  reinterpret<f64>(0x3FEE01E009609A56), reinterpret<f64>(0x3FB07598E598C000),
-  reinterpret<f64>(0x3FEDCA01E577BB98), reinterpret<f64>(0x3FB253F5E30D2000),
-  reinterpret<f64>(0x3FED92F20B7C9103), reinterpret<f64>(0x3FB42EDD8B380000),
-  reinterpret<f64>(0x3FED5CAC66FB5CCE), reinterpret<f64>(0x3FB606598757C000),
-  reinterpret<f64>(0x3FED272CAA5EDE9D), reinterpret<f64>(0x3FB7DA76356A0000),
-  reinterpret<f64>(0x3FECF26E3E6B2CCD), reinterpret<f64>(0x3FB9AB434E1C6000),
-  reinterpret<f64>(0x3FECBE6DA2A77902), reinterpret<f64>(0x3FBB78C7BB0D6000),
-  reinterpret<f64>(0x3FEC8B266D37086D), reinterpret<f64>(0x3FBD431332E72000),
-  reinterpret<f64>(0x3FEC5894BD5D5804), reinterpret<f64>(0x3FBF0A3171DE6000),
-  reinterpret<f64>(0x3FEC26B533BB9F8C), reinterpret<f64>(0x3FC067152B914000),
-  reinterpret<f64>(0x3FEBF583EEECE73F), reinterpret<f64>(0x3FC147858292B000),
-  reinterpret<f64>(0x3FEBC4FD75DB96C1), reinterpret<f64>(0x3FC2266ECDCA3000),
-  reinterpret<f64>(0x3FEB951E0C864A28), reinterpret<f64>(0x3FC303D7A6C55000),
-  reinterpret<f64>(0x3FEB65E2C5EF3E2C), reinterpret<f64>(0x3FC3DFC33C331000),
-  reinterpret<f64>(0x3FEB374867C9888B), reinterpret<f64>(0x3FC4BA366B7A8000),
-  reinterpret<f64>(0x3FEB094B211D304A), reinterpret<f64>(0x3FC5933928D1F000),
-  reinterpret<f64>(0x3FEADBE885F2EF7E), reinterpret<f64>(0x3FC66ACD2418F000),
-  reinterpret<f64>(0x3FEAAF1D31603DA2), reinterpret<f64>(0x3FC740F8EC669000),
-  reinterpret<f64>(0x3FEA82E63FD358A7), reinterpret<f64>(0x3FC815C0F51AF000),
-  reinterpret<f64>(0x3FEA5740EF09738B), reinterpret<f64>(0x3FC8E92954F68000),
-  reinterpret<f64>(0x3FEA2C2A90AB4B27), reinterpret<f64>(0x3FC9BB3602F84000),
-  reinterpret<f64>(0x3FEA01A01393F2D1), reinterpret<f64>(0x3FCA8BED1C2C0000),
-  reinterpret<f64>(0x3FE9D79F24DB3C1B), reinterpret<f64>(0x3FCB5B515C01D000),
-  reinterpret<f64>(0x3FE9AE2505C7B190), reinterpret<f64>(0x3FCC2967CCBCC000),
-  reinterpret<f64>(0x3FE9852EF297CE2F), reinterpret<f64>(0x3FCCF635D5486000),
-  reinterpret<f64>(0x3FE95CBAEEA44B75), reinterpret<f64>(0x3FCDC1BD3446C000),
-  reinterpret<f64>(0x3FE934C69DE74838), reinterpret<f64>(0x3FCE8C01B8CFE000),
-  reinterpret<f64>(0x3FE90D4F2F6752E6), reinterpret<f64>(0x3FCF5509C0179000),
-  reinterpret<f64>(0x3FE8E6528EFFD79D), reinterpret<f64>(0x3FD00E6C121FB800),
-  reinterpret<f64>(0x3FE8BFCE9FCC007C), reinterpret<f64>(0x3FD071B80E93D000),
-  reinterpret<f64>(0x3FE899C0DABEC30E), reinterpret<f64>(0x3FD0D46B9E867000),
-  reinterpret<f64>(0x3FE87427AA2317FB), reinterpret<f64>(0x3FD13687334BD000),
-  reinterpret<f64>(0x3FE84F00ACB39A08), reinterpret<f64>(0x3FD1980D67234800),
-  reinterpret<f64>(0x3FE82A49E8653E55), reinterpret<f64>(0x3FD1F8FFE0CC8000),
-  reinterpret<f64>(0x3FE8060195F40260), reinterpret<f64>(0x3FD2595FD7636800),
-  reinterpret<f64>(0x3FE7E22563E0A329), reinterpret<f64>(0x3FD2B9300914A800),
-  reinterpret<f64>(0x3FE7BEB377DCB5AD), reinterpret<f64>(0x3FD3187210436000),
-  reinterpret<f64>(0x3FE79BAA679725C2), reinterpret<f64>(0x3FD377266DEC1800),
-  reinterpret<f64>(0x3FE77907F2170657), reinterpret<f64>(0x3FD3D54FFBAF3000),
-  reinterpret<f64>(0x3FE756CADBD6130C), reinterpret<f64>(0x3FD432EEE32FE000)
-]);
+  var r   = (z - chi - clo) * invc;
+  var rhi = reinterpret<f64>(reinterpret<u64>(r) & 0xFFFFFFFF00000000);
+  var rlo = r - rhi;
+  var t1  = rhi * InvLn2hi;
+  var t2  = rlo * InvLn2hi + r * InvLn2lo;
+  // #endif
 
-// @ts-ignore: decorator
-@lazy @inline const LOG_DATA_TAB2 = memory.data<f64>([
-  //               chi                ,                  clo
-  reinterpret<f64>(0x3FE61000014FB66B), reinterpret<f64>(0x3C7E026C91425B3C),
-  reinterpret<f64>(0x3FE63000034DB495), reinterpret<f64>(0x3C8DBFEA48005D41),
-  reinterpret<f64>(0x3FE650000D94D478), reinterpret<f64>(0x3C8E7FA786D6A5B7),
-  reinterpret<f64>(0x3FE67000074E6FAD), reinterpret<f64>(0x3C61FCEA6B54254C),
-  reinterpret<f64>(0x3FE68FFFFEDF0FAE), reinterpret<f64>(0xBC7C7E274C590EFD),
-  reinterpret<f64>(0x3FE6B0000763C5BC), reinterpret<f64>(0xBC8AC16848DCDA01),
-  reinterpret<f64>(0x3FE6D0001E5CC1F6), reinterpret<f64>(0x3C833F1C9D499311),
-  reinterpret<f64>(0x3FE6EFFFEB05F63E), reinterpret<f64>(0xBC7E80041AE22D53),
-  reinterpret<f64>(0x3FE710000E869780), reinterpret<f64>(0x3C7BFF6671097952),
-  reinterpret<f64>(0x3FE72FFFFC67E912), reinterpret<f64>(0x3C8C00E226BD8724),
-  reinterpret<f64>(0x3FE74FFFDF81116A), reinterpret<f64>(0xBC6E02916EF101D2),
-  reinterpret<f64>(0x3FE770000F679C90), reinterpret<f64>(0xBC67FC71CD549C74),
-  reinterpret<f64>(0x3FE78FFFFA7EC835), reinterpret<f64>(0x3C81BEC19EF50483),
-  reinterpret<f64>(0x3FE7AFFFFE20C2E6), reinterpret<f64>(0xBC707E1729CC6465),
-  reinterpret<f64>(0x3FE7CFFFED3FC900), reinterpret<f64>(0xBC808072087B8B1C),
-  reinterpret<f64>(0x3FE7EFFFE9261A76), reinterpret<f64>(0x3C8DC0286D9DF9AE),
-  reinterpret<f64>(0x3FE81000049CA3E8), reinterpret<f64>(0x3C897FD251E54C33),
-  reinterpret<f64>(0x3FE8300017932C8F), reinterpret<f64>(0xBC8AFEE9B630F381),
-  reinterpret<f64>(0x3FE850000633739C), reinterpret<f64>(0x3C89BFBF6B6535BC),
-  reinterpret<f64>(0x3FE87000204289C6), reinterpret<f64>(0xBC8BBF65F3117B75),
-  reinterpret<f64>(0x3FE88FFFEBF57904), reinterpret<f64>(0xBC89006EA23DCB57),
-  reinterpret<f64>(0x3FE8B00022BC04DF), reinterpret<f64>(0xBC7D00DF38E04B0A),
-  reinterpret<f64>(0x3FE8CFFFE50C1B8A), reinterpret<f64>(0xBC88007146FF9F05),
-  reinterpret<f64>(0x3FE8EFFFFC918E43), reinterpret<f64>(0x3C83817BD07A7038),
-  reinterpret<f64>(0x3FE910001EFA5FC7), reinterpret<f64>(0x3C893E9176DFB403),
-  reinterpret<f64>(0x3FE9300013467BB9), reinterpret<f64>(0x3C7F804E4B980276),
-  reinterpret<f64>(0x3FE94FFFE6EE076F), reinterpret<f64>(0xBC8F7EF0D9FF622E),
-  reinterpret<f64>(0x3FE96FFFDE3C12D1), reinterpret<f64>(0xBC7082AA962638BA),
-  reinterpret<f64>(0x3FE98FFFF4458A0D), reinterpret<f64>(0xBC87801B9164A8EF),
-  reinterpret<f64>(0x3FE9AFFFDD982E3E), reinterpret<f64>(0xBC8740E08A5A9337),
-  reinterpret<f64>(0x3FE9CFFFED49FB66), reinterpret<f64>(0x3C3FCE08C19BE000),
-  reinterpret<f64>(0x3FE9F00020F19C51), reinterpret<f64>(0xBC8A3FAA27885B0A),
-  reinterpret<f64>(0x3FEA10001145B006), reinterpret<f64>(0x3C74FF489958DA56),
-  reinterpret<f64>(0x3FEA300007BBF6FA), reinterpret<f64>(0x3C8CBEAB8A2B6D18),
-  reinterpret<f64>(0x3FEA500010971D79), reinterpret<f64>(0x3C88FECADD787930),
-  reinterpret<f64>(0x3FEA70001DF52E48), reinterpret<f64>(0xBC8F41763DD8ABDB),
-  reinterpret<f64>(0x3FEA90001C593352), reinterpret<f64>(0xBC8EBF0284C27612),
-  reinterpret<f64>(0x3FEAB0002A4F3E4B), reinterpret<f64>(0xBC69FD043CFF3F5F),
-  reinterpret<f64>(0x3FEACFFFD7AE1ED1), reinterpret<f64>(0xBC823EE7129070B4),
-  reinterpret<f64>(0x3FEAEFFFEE510478), reinterpret<f64>(0x3C6A063EE00EDEA3),
-  reinterpret<f64>(0x3FEB0FFFDB650D5B), reinterpret<f64>(0x3C5A06C8381F0AB9),
-  reinterpret<f64>(0x3FEB2FFFFEAACA57), reinterpret<f64>(0xBC79011E74233C1D),
-  reinterpret<f64>(0x3FEB4FFFD995BADC), reinterpret<f64>(0xBC79FF1068862A9F),
-  reinterpret<f64>(0x3FEB7000249E659C), reinterpret<f64>(0x3C8AFF45D0864F3E),
-  reinterpret<f64>(0x3FEB8FFFF9871640), reinterpret<f64>(0x3C7CFE7796C2C3F9),
-  reinterpret<f64>(0x3FEBAFFFD204CB4F), reinterpret<f64>(0xBC63FF27EEF22BC4),
-  reinterpret<f64>(0x3FEBCFFFD2415C45), reinterpret<f64>(0xBC6CFFB7EE3BEA21),
-  reinterpret<f64>(0x3FEBEFFFF86309DF), reinterpret<f64>(0xBC814103972E0B5C),
-  reinterpret<f64>(0x3FEC0FFFE1B57653), reinterpret<f64>(0x3C8BC16494B76A19),
-  reinterpret<f64>(0x3FEC2FFFF1FA57E3), reinterpret<f64>(0xBC64FEEF8D30C6ED),
-  reinterpret<f64>(0x3FEC4FFFDCBFE424), reinterpret<f64>(0xBC843F68BCEC4775),
-  reinterpret<f64>(0x3FEC6FFFED54B9F7), reinterpret<f64>(0x3C847EA3F053E0EC),
-  reinterpret<f64>(0x3FEC8FFFEB998FD5), reinterpret<f64>(0x3C7383068DF992F1),
-  reinterpret<f64>(0x3FECB0002125219A), reinterpret<f64>(0xBC68FD8E64180E04),
-  reinterpret<f64>(0x3FECCFFFDD94469C), reinterpret<f64>(0x3C8E7EBE1CC7EA72),
-  reinterpret<f64>(0x3FECEFFFEAFDC476), reinterpret<f64>(0x3C8EBE39AD9F88FE),
-  reinterpret<f64>(0x3FED1000169AF82B), reinterpret<f64>(0x3C757D91A8B95A71),
-  reinterpret<f64>(0x3FED30000D0FF71D), reinterpret<f64>(0x3C89C1906970C7DA),
-  reinterpret<f64>(0x3FED4FFFEA790FC4), reinterpret<f64>(0xBC580E37C558FE0C),
-  reinterpret<f64>(0x3FED70002EDC87E5), reinterpret<f64>(0xBC7F80D64DC10F44),
-  reinterpret<f64>(0x3FED900021DC82AA), reinterpret<f64>(0xBC747C8F94FD5C5C),
-  reinterpret<f64>(0x3FEDAFFFD86B0283), reinterpret<f64>(0x3C8C7F1DC521617E),
-  reinterpret<f64>(0x3FEDD000296C4739), reinterpret<f64>(0x3C88019EB2FFB153),
-  reinterpret<f64>(0x3FEDEFFFE54490F5), reinterpret<f64>(0x3C6E00D2C652CC89),
-  reinterpret<f64>(0x3FEE0FFFCDABF694), reinterpret<f64>(0xBC7F8340202D69D2),
-  reinterpret<f64>(0x3FEE2FFFDB52C8DD), reinterpret<f64>(0x3C7B00C1CA1B0864),
-  reinterpret<f64>(0x3FEE4FFFF24216EF), reinterpret<f64>(0x3C72FFA8B094AB51),
-  reinterpret<f64>(0x3FEE6FFFE88A5E11), reinterpret<f64>(0xBC57F673B1EFBE59),
-  reinterpret<f64>(0x3FEE9000119EFF0D), reinterpret<f64>(0xBC84808D5E0BC801),
-  reinterpret<f64>(0x3FEEAFFFDFA51744), reinterpret<f64>(0x3C780006D54320B5),
-  reinterpret<f64>(0x3FEED0001A127FA1), reinterpret<f64>(0xBC5002F860565C92),
-  reinterpret<f64>(0x3FEEF00007BABCC4), reinterpret<f64>(0xBC8540445D35E611),
-  reinterpret<f64>(0x3FEF0FFFF57A8D02), reinterpret<f64>(0xBC4FFB3139EF9105),
-  reinterpret<f64>(0x3FEF30001EE58AC7), reinterpret<f64>(0x3C8A81ACF2731155),
-  reinterpret<f64>(0x3FEF4FFFF5823494), reinterpret<f64>(0x3C8A3F41D4D7C743),
-  reinterpret<f64>(0x3FEF6FFFFCA94C6B), reinterpret<f64>(0xBC6202F41C987875),
-  reinterpret<f64>(0x3FEF8FFFE1F9C441), reinterpret<f64>(0x3C777DD1F477E74B),
-  reinterpret<f64>(0x3FEFAFFFD2E0E37E), reinterpret<f64>(0xBC6F01199A7CA331),
-  reinterpret<f64>(0x3FEFD0001C77E49E), reinterpret<f64>(0x3C7181EE4BCEACB1),
-  reinterpret<f64>(0x3FEFEFFFF7E0C331), reinterpret<f64>(0xBC6E05370170875A),
-  reinterpret<f64>(0x3FF00FFFF465606E), reinterpret<f64>(0xBC8A7EAD491C0ADA),
-  reinterpret<f64>(0x3FF02FFFF3867A58), reinterpret<f64>(0xBC977F69C3FCB2E0),
-  reinterpret<f64>(0x3FF04FFFFDFC0D17), reinterpret<f64>(0x3C97BFFE34CB945B),
-  reinterpret<f64>(0x3FF0700003CD4D82), reinterpret<f64>(0x3C820083C0E456CB),
-  reinterpret<f64>(0x3FF08FFFF9F2CBE8), reinterpret<f64>(0xBC6DFFDFBE37751A),
-  reinterpret<f64>(0x3FF0B000010CDA65), reinterpret<f64>(0xBC913F7FAEE626EB),
-  reinterpret<f64>(0x3FF0D00001A4D338), reinterpret<f64>(0x3C807DFA79489FF7),
-  reinterpret<f64>(0x3FF0EFFFFADAFDFD), reinterpret<f64>(0xBC77040570D66BC0),
-  reinterpret<f64>(0x3FF110000BBAFD96), reinterpret<f64>(0x3C8E80D4846D0B62),
-  reinterpret<f64>(0x3FF12FFFFAE5F45D), reinterpret<f64>(0x3C9DBFFA64FD36EF),
-  reinterpret<f64>(0x3FF150000DD59AD9), reinterpret<f64>(0x3C9A0077701250AE),
-  reinterpret<f64>(0x3FF170000F21559A), reinterpret<f64>(0x3C8DFDF9E2E3DEEE),
-  reinterpret<f64>(0x3FF18FFFFC275426), reinterpret<f64>(0x3C910030DC3B7273),
-  reinterpret<f64>(0x3FF1B000123D3C59), reinterpret<f64>(0x3C997F7980030188),
-  reinterpret<f64>(0x3FF1CFFFF8299EB7), reinterpret<f64>(0xBC65F932AB9F8C67),
-  reinterpret<f64>(0x3FF1EFFFF48AD400), reinterpret<f64>(0x3C937FBF9DA75BEB),
-  reinterpret<f64>(0x3FF210000C8B86A4), reinterpret<f64>(0x3C9F806B91FD5B22),
-  reinterpret<f64>(0x3FF2300003854303), reinterpret<f64>(0x3C93FFC2EB9FBF33),
-  reinterpret<f64>(0x3FF24FFFFFBCF684), reinterpret<f64>(0x3C7601E77E2E2E72),
-  reinterpret<f64>(0x3FF26FFFF52921D9), reinterpret<f64>(0x3C7FFCBB767F0C61),
-  reinterpret<f64>(0x3FF2900014933A3C), reinterpret<f64>(0xBC7202CA3C02412B),
-  reinterpret<f64>(0x3FF2B00014556313), reinterpret<f64>(0xBC92808233F21F02),
-  reinterpret<f64>(0x3FF2CFFFEBFE523B), reinterpret<f64>(0xBC88FF7E384FDCF2),
-  reinterpret<f64>(0x3FF2F0000BB8AD96), reinterpret<f64>(0xBC85FF51503041C5),
-  reinterpret<f64>(0x3FF30FFFFB7AE2AF), reinterpret<f64>(0xBC810071885E289D),
-  reinterpret<f64>(0x3FF32FFFFEAC5F7F), reinterpret<f64>(0xBC91FF5D3FB7B715),
-  reinterpret<f64>(0x3FF350000CA66756), reinterpret<f64>(0x3C957F82228B82BD),
-  reinterpret<f64>(0x3FF3700011FBF721), reinterpret<f64>(0x3C8000BAC40DD5CC),
-  reinterpret<f64>(0x3FF38FFFF9592FB9), reinterpret<f64>(0xBC943F9D2DB2A751),
-  reinterpret<f64>(0x3FF3B00004DDD242), reinterpret<f64>(0x3C857F6B707638E1),
-  reinterpret<f64>(0x3FF3CFFFF5B2C957), reinterpret<f64>(0x3C7A023A10BF1231),
-  reinterpret<f64>(0x3FF3EFFFEAB0B418), reinterpret<f64>(0x3C987F6D66B152B0),
-  reinterpret<f64>(0x3FF410001532AFF4), reinterpret<f64>(0x3C67F8375F198524),
-  reinterpret<f64>(0x3FF4300017478B29), reinterpret<f64>(0x3C8301E672DC5143),
-  reinterpret<f64>(0x3FF44FFFE795B463), reinterpret<f64>(0x3C89FF69B8B2895A),
-  reinterpret<f64>(0x3FF46FFFE80475E0), reinterpret<f64>(0xBC95C0B19BC2F254),
-  reinterpret<f64>(0x3FF48FFFEF6FC1E7), reinterpret<f64>(0x3C9B4009F23A2A72),
-  reinterpret<f64>(0x3FF4AFFFE5BEA704), reinterpret<f64>(0xBC94FFB7BF0D7D45),
-  reinterpret<f64>(0x3FF4D000171027DE), reinterpret<f64>(0xBC99C06471DC6A3D),
-  reinterpret<f64>(0x3FF4F0000FF03EE2), reinterpret<f64>(0x3C977F890B85531C),
-  reinterpret<f64>(0x3FF5100012DC4BD1), reinterpret<f64>(0x3C6004657166A436),
-  reinterpret<f64>(0x3FF530001605277A), reinterpret<f64>(0xBC96BFCECE233209),
-  reinterpret<f64>(0x3FF54FFFECDB704C), reinterpret<f64>(0xBC8902720505A1D7),
-  reinterpret<f64>(0x3FF56FFFEF5F54A9), reinterpret<f64>(0x3C9BBFE60EC96412),
-  reinterpret<f64>(0x3FF5900017E61012), reinterpret<f64>(0x3C887EC581AFEF90),
-  reinterpret<f64>(0x3FF5B00003C93E92), reinterpret<f64>(0xBC9F41080ABF0CC0),
-  reinterpret<f64>(0x3FF5D0001D4919BC), reinterpret<f64>(0xBC98812AFB254729),
-  reinterpret<f64>(0x3FF5EFFFE7B87A89), reinterpret<f64>(0xBC947EB780ED6904)
-]);
+  // hi + lo = r/ln2 + log2(c) + k
+  var t3 = kd + logc;
+  var hi = t3 + t1;
+  var lo = t3 - hi + t1 + t2;
+
+  // log2(r+1) = r/ln2 + r^2*poly(r)
+  // Evaluation is optimized assuming superscalar pipelined execution
+  var r2 = r * r; // rounding error: 0x1p-54/N^2
+  // Worst-case error if |y| > 0x1p-4: 0.547 ULP (0.550 ULP without fma).
+  // ~ 0.5 + 2/N/ln2 + abs-poly-error*0x1p56 ULP (+ 0.003 ULP without fma).
+  var p = A0 + r * A1 + r2 * (A2 + r * A3) + (r2 * r2) * (A4 + r * A5);
+  return lo + r2 * p + hi;
+}
 
 // @ts-ignore: decorator
 @inline
-export function log_lut(x: f64): f64 {
-  const N_MASK = (1 << LOG_TABLE_BITS) - 1;
+export function log64_lut(x: f64): f64 {
+  const N_MASK = (1 << LOG_TABLE64_BITS) - 1;
 
   const
     B0  = reinterpret<f64>(0xBFE0000000000000), // -0x1p-1
@@ -1449,12 +2968,12 @@ export function log_lut(x: f64): f64 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp  = ix - 0x3FE6000000000000;
-  var i    = <usize>((tmp >> (52 - LOG_TABLE_BITS)) & N_MASK);
+  var i    = <usize>((tmp >> (52 - LOG_TABLE64_BITS)) & N_MASK);
   var k    = <i64>tmp >> 52;
   var iz   = ix - (tmp & (u64(0xFFF) << 52));
 
-  var invc = load<f64>(LOG_DATA_TAB1 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].invc;
-  var logc = load<f64>(LOG_DATA_TAB1 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].logc;
+  var invc = load<f64>(LOG_TABLE1_64 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T[i].invc;
+  var logc = load<f64>(LOG_TABLE1_64 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T[i].logc;
   var z    = reinterpret<f64>(iz);
 
   // log(x) = log1p(z/c-1) + log(c) + k*Ln2.
@@ -1464,8 +2983,8 @@ export function log_lut(x: f64): f64 {
   // 	r = __builtin_fma(z, invc, -1.0);
   // #else
   // rounding error: 0x1p-55/N + 0x1p-66
-  const chi = load<f64>(LOG_DATA_TAB2 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T2[i].chi
-  const clo = load<f64>(LOG_DATA_TAB2 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T2[i].clo
+  const chi = load<f64>(LOG_TABLE2_64 + (i << (1 + alignof<f64>())), 0 << alignof<f64>()); // T2[i].chi
+  const clo = load<f64>(LOG_TABLE2_64 + (i << (1 + alignof<f64>())), 1 << alignof<f64>()); // T2[i].clo
   var r = (z - chi - clo) * invc;
   // #endif
   var kd = <f64>k;
@@ -1484,174 +3003,11 @@ export function log_lut(x: f64): f64 {
   return lo + r2 * A0 + r * r2 * (A1 + r * A2 + r2 * (A3 + r * A4)) + hi;
 }
 
-//
-// Lookup data for pow. See: https://git.musl-libc.org/cgit/musl/tree/src/math/pow.c
-//
-
-// @ts-ignore: decorator
-@inline const POW_LOG_TABLE_BITS = 7;
-
-/* Algorithm:
-
-  x = 2^k z
-  log(x) = k ln2 + log(c) + log(z/c)
-  log(z/c) = poly(z/c - 1)
-
-where z is in [0x1.69555p-1; 0x1.69555p0] which is split into N subintervals
-and z falls into the ith one, then table entries are computed as
-
-  tab[i].invc = 1/c
-  tab[i].logc = round(0x1p43*log(c))/0x1p43
-  tab[i].logctail = (double)(log(c) - logc)
-
-where c is chosen near the center of the subinterval such that 1/c has only a
-few precision bits so z/c - 1 is exactly representible as double:
-
-  1/c = center < 1 ? round(N/center)/N : round(2*N/center)/N/2
-
-Note: |z/c - 1| < 1/N for the chosen c, |log(c) - logc - logctail| < 0x1p-97,
-the last few bits of logc are rounded away so k*ln2hi + logc has no rounding
-error and the interval for z is selected such that near x == 1, where log(x)
-is tiny, large cancellation error is avoided in logc + poly(z/c - 1). */
-
-// @ts-ignore: decorator
-@lazy @inline const POW_LOG_DATA_TAB = memory.data<f64>([
-  //             invc                 ,pad,               logc                 ,               logctail
-  reinterpret<f64>(0x3FF6A00000000000), 0, reinterpret<f64>(0xBFD62C82F2B9C800), reinterpret<f64>(0x3CFAB42428375680),
-  reinterpret<f64>(0x3FF6800000000000), 0, reinterpret<f64>(0xBFD5D1BDBF580800), reinterpret<f64>(0xBD1CA508D8E0F720),
-  reinterpret<f64>(0x3FF6600000000000), 0, reinterpret<f64>(0xBFD5767717455800), reinterpret<f64>(0xBD2362A4D5B6506D),
-  reinterpret<f64>(0x3FF6400000000000), 0, reinterpret<f64>(0xBFD51AAD872DF800), reinterpret<f64>(0xBCE684E49EB067D5),
-  reinterpret<f64>(0x3FF6200000000000), 0, reinterpret<f64>(0xBFD4BE5F95777800), reinterpret<f64>(0xBD041B6993293EE0),
-  reinterpret<f64>(0x3FF6000000000000), 0, reinterpret<f64>(0xBFD4618BC21C6000), reinterpret<f64>(0x3D13D82F484C84CC),
-  reinterpret<f64>(0x3FF5E00000000000), 0, reinterpret<f64>(0xBFD404308686A800), reinterpret<f64>(0x3CDC42F3ED820B3A),
-  reinterpret<f64>(0x3FF5C00000000000), 0, reinterpret<f64>(0xBFD3A64C55694800), reinterpret<f64>(0x3D20B1C686519460),
-  reinterpret<f64>(0x3FF5A00000000000), 0, reinterpret<f64>(0xBFD347DD9A988000), reinterpret<f64>(0x3D25594DD4C58092),
-  reinterpret<f64>(0x3FF5800000000000), 0, reinterpret<f64>(0xBFD2E8E2BAE12000), reinterpret<f64>(0x3D267B1E99B72BD8),
-  reinterpret<f64>(0x3FF5600000000000), 0, reinterpret<f64>(0xBFD2895A13DE8800), reinterpret<f64>(0x3D15CA14B6CFB03F),
-  reinterpret<f64>(0x3FF5600000000000), 0, reinterpret<f64>(0xBFD2895A13DE8800), reinterpret<f64>(0x3D15CA14B6CFB03F),
-  reinterpret<f64>(0x3FF5400000000000), 0, reinterpret<f64>(0xBFD22941FBCF7800), reinterpret<f64>(0xBD165A242853DA76),
-  reinterpret<f64>(0x3FF5200000000000), 0, reinterpret<f64>(0xBFD1C898C1699800), reinterpret<f64>(0xBD1FAFBC68E75404),
-  reinterpret<f64>(0x3FF5000000000000), 0, reinterpret<f64>(0xBFD1675CABABA800), reinterpret<f64>(0x3D1F1FC63382A8F0),
-  reinterpret<f64>(0x3FF4E00000000000), 0, reinterpret<f64>(0xBFD1058BF9AE4800), reinterpret<f64>(0xBD26A8C4FD055A66),
-  reinterpret<f64>(0x3FF4C00000000000), 0, reinterpret<f64>(0xBFD0A324E2739000), reinterpret<f64>(0xBD0C6BEE7EF4030E),
-  reinterpret<f64>(0x3FF4A00000000000), 0, reinterpret<f64>(0xBFD0402594B4D000), reinterpret<f64>(0xBCF036B89EF42D7F),
-  reinterpret<f64>(0x3FF4A00000000000), 0, reinterpret<f64>(0xBFD0402594B4D000), reinterpret<f64>(0xBCF036B89EF42D7F),
-  reinterpret<f64>(0x3FF4800000000000), 0, reinterpret<f64>(0xBFCFB9186D5E4000), reinterpret<f64>(0x3D0D572AAB993C87),
-  reinterpret<f64>(0x3FF4600000000000), 0, reinterpret<f64>(0xBFCEF0ADCBDC6000), reinterpret<f64>(0x3D2B26B79C86AF24),
-  reinterpret<f64>(0x3FF4400000000000), 0, reinterpret<f64>(0xBFCE27076E2AF000), reinterpret<f64>(0xBD172F4F543FFF10),
-  reinterpret<f64>(0x3FF4200000000000), 0, reinterpret<f64>(0xBFCD5C216B4FC000), reinterpret<f64>(0x3D21BA91BBCA681B),
-  reinterpret<f64>(0x3FF4000000000000), 0, reinterpret<f64>(0xBFCC8FF7C79AA000), reinterpret<f64>(0x3D27794F689F8434),
-  reinterpret<f64>(0x3FF4000000000000), 0, reinterpret<f64>(0xBFCC8FF7C79AA000), reinterpret<f64>(0x3D27794F689F8434),
-  reinterpret<f64>(0x3FF3E00000000000), 0, reinterpret<f64>(0xBFCBC286742D9000), reinterpret<f64>(0x3D194EB0318BB78F),
-  reinterpret<f64>(0x3FF3C00000000000), 0, reinterpret<f64>(0xBFCAF3C94E80C000), reinterpret<f64>(0x3CBA4E633FCD9066),
-  reinterpret<f64>(0x3FF3A00000000000), 0, reinterpret<f64>(0xBFCA23BC1FE2B000), reinterpret<f64>(0xBD258C64DC46C1EA),
-  reinterpret<f64>(0x3FF3A00000000000), 0, reinterpret<f64>(0xBFCA23BC1FE2B000), reinterpret<f64>(0xBD258C64DC46C1EA),
-  reinterpret<f64>(0x3FF3800000000000), 0, reinterpret<f64>(0xBFC9525A9CF45000), reinterpret<f64>(0xBD2AD1D904C1D4E3),
-  reinterpret<f64>(0x3FF3600000000000), 0, reinterpret<f64>(0xBFC87FA06520D000), reinterpret<f64>(0x3D2BBDBF7FDBFA09),
-  reinterpret<f64>(0x3FF3400000000000), 0, reinterpret<f64>(0xBFC7AB890210E000), reinterpret<f64>(0x3D2BDB9072534A58),
-  reinterpret<f64>(0x3FF3400000000000), 0, reinterpret<f64>(0xBFC7AB890210E000), reinterpret<f64>(0x3D2BDB9072534A58),
-  reinterpret<f64>(0x3FF3200000000000), 0, reinterpret<f64>(0xBFC6D60FE719D000), reinterpret<f64>(0xBD10E46AA3B2E266),
-  reinterpret<f64>(0x3FF3000000000000), 0, reinterpret<f64>(0xBFC5FF3070A79000), reinterpret<f64>(0xBD1E9E439F105039),
-  reinterpret<f64>(0x3FF3000000000000), 0, reinterpret<f64>(0xBFC5FF3070A79000), reinterpret<f64>(0xBD1E9E439F105039),
-  reinterpret<f64>(0x3FF2E00000000000), 0, reinterpret<f64>(0xBFC526E5E3A1B000), reinterpret<f64>(0xBD20DE8B90075B8F),
-  reinterpret<f64>(0x3FF2C00000000000), 0, reinterpret<f64>(0xBFC44D2B6CCB8000), reinterpret<f64>(0x3D170CC16135783C),
-  reinterpret<f64>(0x3FF2C00000000000), 0, reinterpret<f64>(0xBFC44D2B6CCB8000), reinterpret<f64>(0x3D170CC16135783C),
-  reinterpret<f64>(0x3FF2A00000000000), 0, reinterpret<f64>(0xBFC371FC201E9000), reinterpret<f64>(0x3CF178864D27543A),
-  reinterpret<f64>(0x3FF2800000000000), 0, reinterpret<f64>(0xBFC29552F81FF000), reinterpret<f64>(0xBD248D301771C408),
-  reinterpret<f64>(0x3FF2600000000000), 0, reinterpret<f64>(0xBFC1B72AD52F6000), reinterpret<f64>(0xBD2E80A41811A396),
-  reinterpret<f64>(0x3FF2600000000000), 0, reinterpret<f64>(0xBFC1B72AD52F6000), reinterpret<f64>(0xBD2E80A41811A396),
-  reinterpret<f64>(0x3FF2400000000000), 0, reinterpret<f64>(0xBFC0D77E7CD09000), reinterpret<f64>(0x3D0A699688E85BF4),
-  reinterpret<f64>(0x3FF2400000000000), 0, reinterpret<f64>(0xBFC0D77E7CD09000), reinterpret<f64>(0x3D0A699688E85BF4),
-  reinterpret<f64>(0x3FF2200000000000), 0, reinterpret<f64>(0xBFBFEC9131DBE000), reinterpret<f64>(0xBD2575545CA333F2),
-  reinterpret<f64>(0x3FF2000000000000), 0, reinterpret<f64>(0xBFBE27076E2B0000), reinterpret<f64>(0x3D2A342C2AF0003C),
-  reinterpret<f64>(0x3FF2000000000000), 0, reinterpret<f64>(0xBFBE27076E2B0000), reinterpret<f64>(0x3D2A342C2AF0003C),
-  reinterpret<f64>(0x3FF1E00000000000), 0, reinterpret<f64>(0xBFBC5E548F5BC000), reinterpret<f64>(0xBD1D0C57585FBE06),
-  reinterpret<f64>(0x3FF1C00000000000), 0, reinterpret<f64>(0xBFBA926D3A4AE000), reinterpret<f64>(0x3D253935E85BAAC8),
-  reinterpret<f64>(0x3FF1C00000000000), 0, reinterpret<f64>(0xBFBA926D3A4AE000), reinterpret<f64>(0x3D253935E85BAAC8),
-  reinterpret<f64>(0x3FF1A00000000000), 0, reinterpret<f64>(0xBFB8C345D631A000), reinterpret<f64>(0x3D137C294D2F5668),
-  reinterpret<f64>(0x3FF1A00000000000), 0, reinterpret<f64>(0xBFB8C345D631A000), reinterpret<f64>(0x3D137C294D2F5668),
-  reinterpret<f64>(0x3FF1800000000000), 0, reinterpret<f64>(0xBFB6F0D28AE56000), reinterpret<f64>(0xBD269737C93373DA),
-  reinterpret<f64>(0x3FF1600000000000), 0, reinterpret<f64>(0xBFB51B073F062000), reinterpret<f64>(0x3D1F025B61C65E57),
-  reinterpret<f64>(0x3FF1600000000000), 0, reinterpret<f64>(0xBFB51B073F062000), reinterpret<f64>(0x3D1F025B61C65E57),
-  reinterpret<f64>(0x3FF1400000000000), 0, reinterpret<f64>(0xBFB341D7961BE000), reinterpret<f64>(0x3D2C5EDACCF913DF),
-  reinterpret<f64>(0x3FF1400000000000), 0, reinterpret<f64>(0xBFB341D7961BE000), reinterpret<f64>(0x3D2C5EDACCF913DF),
-  reinterpret<f64>(0x3FF1200000000000), 0, reinterpret<f64>(0xBFB16536EEA38000), reinterpret<f64>(0x3D147C5E768FA309),
-  reinterpret<f64>(0x3FF1000000000000), 0, reinterpret<f64>(0xBFAF0A30C0118000), reinterpret<f64>(0x3D2D599E83368E91),
-  reinterpret<f64>(0x3FF1000000000000), 0, reinterpret<f64>(0xBFAF0A30C0118000), reinterpret<f64>(0x3D2D599E83368E91),
-  reinterpret<f64>(0x3FF0E00000000000), 0, reinterpret<f64>(0xBFAB42DD71198000), reinterpret<f64>(0x3D1C827AE5D6704C),
-  reinterpret<f64>(0x3FF0E00000000000), 0, reinterpret<f64>(0xBFAB42DD71198000), reinterpret<f64>(0x3D1C827AE5D6704C),
-  reinterpret<f64>(0x3FF0C00000000000), 0, reinterpret<f64>(0xBFA77458F632C000), reinterpret<f64>(0xBD2CFC4634F2A1EE),
-  reinterpret<f64>(0x3FF0C00000000000), 0, reinterpret<f64>(0xBFA77458F632C000), reinterpret<f64>(0xBD2CFC4634F2A1EE),
-  reinterpret<f64>(0x3FF0A00000000000), 0, reinterpret<f64>(0xBFA39E87B9FEC000), reinterpret<f64>(0x3CF502B7F526FEAA),
-  reinterpret<f64>(0x3FF0A00000000000), 0, reinterpret<f64>(0xBFA39E87B9FEC000), reinterpret<f64>(0x3CF502B7F526FEAA),
-  reinterpret<f64>(0x3FF0800000000000), 0, reinterpret<f64>(0xBF9F829B0E780000), reinterpret<f64>(0xBD2980267C7E09E4),
-  reinterpret<f64>(0x3FF0800000000000), 0, reinterpret<f64>(0xBF9F829B0E780000), reinterpret<f64>(0xBD2980267C7E09E4),
-  reinterpret<f64>(0x3FF0600000000000), 0, reinterpret<f64>(0xBF97B91B07D58000), reinterpret<f64>(0xBD288D5493FAA639),
-  reinterpret<f64>(0x3FF0400000000000), 0, reinterpret<f64>(0xBF8FC0A8B0FC0000), reinterpret<f64>(0xBCDF1E7CF6D3A69C),
-  reinterpret<f64>(0x3FF0400000000000), 0, reinterpret<f64>(0xBF8FC0A8B0FC0000), reinterpret<f64>(0xBCDF1E7CF6D3A69C),
-  reinterpret<f64>(0x3FF0200000000000), 0, reinterpret<f64>(0xBF7FE02A6B100000), reinterpret<f64>(0xBD19E23F0DDA40E4),
-  reinterpret<f64>(0x3FF0200000000000), 0, reinterpret<f64>(0xBF7FE02A6B100000), reinterpret<f64>(0xBD19E23F0DDA40E4),
-  reinterpret<f64>(0x3FF0000000000000), 0, 0, 0,
-  reinterpret<f64>(0x3FF0000000000000), 0, 0, 0,
-  reinterpret<f64>(0x3FEFC00000000000), 0, reinterpret<f64>(0x3F80101575890000), reinterpret<f64>(0xBD10C76B999D2BE8),
-  reinterpret<f64>(0x3FEF800000000000), 0, reinterpret<f64>(0x3F90205658938000), reinterpret<f64>(0xBD23DC5B06E2F7D2),
-  reinterpret<f64>(0x3FEF400000000000), 0, reinterpret<f64>(0x3F98492528C90000), reinterpret<f64>(0xBD2AA0BA325A0C34),
-  reinterpret<f64>(0x3FEF000000000000), 0, reinterpret<f64>(0x3FA0415D89E74000), reinterpret<f64>(0x3D0111C05CF1D753),
-  reinterpret<f64>(0x3FEEC00000000000), 0, reinterpret<f64>(0x3FA466AED42E0000), reinterpret<f64>(0xBD2C167375BDFD28),
-  reinterpret<f64>(0x3FEE800000000000), 0, reinterpret<f64>(0x3FA894AA149FC000), reinterpret<f64>(0xBD197995D05A267D),
-  reinterpret<f64>(0x3FEE400000000000), 0, reinterpret<f64>(0x3FACCB73CDDDC000), reinterpret<f64>(0xBD1A68F247D82807),
-  reinterpret<f64>(0x3FEE200000000000), 0, reinterpret<f64>(0x3FAEEA31C006C000), reinterpret<f64>(0xBD0E113E4FC93B7B),
-  reinterpret<f64>(0x3FEDE00000000000), 0, reinterpret<f64>(0x3FB1973BD1466000), reinterpret<f64>(0xBD25325D560D9E9B),
-  reinterpret<f64>(0x3FEDA00000000000), 0, reinterpret<f64>(0x3FB3BDF5A7D1E000), reinterpret<f64>(0x3D2CC85EA5DB4ED7),
-  reinterpret<f64>(0x3FED600000000000), 0, reinterpret<f64>(0x3FB5E95A4D97A000), reinterpret<f64>(0xBD2C69063C5D1D1E),
-  reinterpret<f64>(0x3FED400000000000), 0, reinterpret<f64>(0x3FB700D30AEAC000), reinterpret<f64>(0x3CEC1E8DA99DED32),
-  reinterpret<f64>(0x3FED000000000000), 0, reinterpret<f64>(0x3FB9335E5D594000), reinterpret<f64>(0x3D23115C3ABD47DA),
-  reinterpret<f64>(0x3FECC00000000000), 0, reinterpret<f64>(0x3FBB6AC88DAD6000), reinterpret<f64>(0xBD1390802BF768E5),
-  reinterpret<f64>(0x3FECA00000000000), 0, reinterpret<f64>(0x3FBC885801BC4000), reinterpret<f64>(0x3D2646D1C65AACD3),
-  reinterpret<f64>(0x3FEC600000000000), 0, reinterpret<f64>(0x3FBEC739830A2000), reinterpret<f64>(0xBD2DC068AFE645E0),
-  reinterpret<f64>(0x3FEC400000000000), 0, reinterpret<f64>(0x3FBFE89139DBE000), reinterpret<f64>(0xBD2534D64FA10AFD),
-  reinterpret<f64>(0x3FEC000000000000), 0, reinterpret<f64>(0x3FC1178E8227E000), reinterpret<f64>(0x3D21EF78CE2D07F2),
-  reinterpret<f64>(0x3FEBE00000000000), 0, reinterpret<f64>(0x3FC1AA2B7E23F000), reinterpret<f64>(0x3D2CA78E44389934),
-  reinterpret<f64>(0x3FEBA00000000000), 0, reinterpret<f64>(0x3FC2D1610C868000), reinterpret<f64>(0x3D039D6CCB81B4A1),
-  reinterpret<f64>(0x3FEB800000000000), 0, reinterpret<f64>(0x3FC365FCB0159000), reinterpret<f64>(0x3CC62FA8234B7289),
-  reinterpret<f64>(0x3FEB400000000000), 0, reinterpret<f64>(0x3FC4913D8333B000), reinterpret<f64>(0x3D25837954FDB678),
-  reinterpret<f64>(0x3FEB200000000000), 0, reinterpret<f64>(0x3FC527E5E4A1B000), reinterpret<f64>(0x3D2633E8E5697DC7),
-  reinterpret<f64>(0x3FEAE00000000000), 0, reinterpret<f64>(0x3FC6574EBE8C1000), reinterpret<f64>(0x3D19CF8B2C3C2E78),
-  reinterpret<f64>(0x3FEAC00000000000), 0, reinterpret<f64>(0x3FC6F0128B757000), reinterpret<f64>(0xBD25118DE59C21E1),
-  reinterpret<f64>(0x3FEAA00000000000), 0, reinterpret<f64>(0x3FC7898D85445000), reinterpret<f64>(0xBD1C661070914305),
-  reinterpret<f64>(0x3FEA600000000000), 0, reinterpret<f64>(0x3FC8BEAFEB390000), reinterpret<f64>(0xBD073D54AAE92CD1),
-  reinterpret<f64>(0x3FEA400000000000), 0, reinterpret<f64>(0x3FC95A5ADCF70000), reinterpret<f64>(0x3D07F22858A0FF6F),
-  reinterpret<f64>(0x3FEA000000000000), 0, reinterpret<f64>(0x3FCA93ED3C8AE000), reinterpret<f64>(0xBD28724350562169),
-  reinterpret<f64>(0x3FE9E00000000000), 0, reinterpret<f64>(0x3FCB31D8575BD000), reinterpret<f64>(0xBD0C358D4EACE1AA),
-  reinterpret<f64>(0x3FE9C00000000000), 0, reinterpret<f64>(0x3FCBD087383BE000), reinterpret<f64>(0xBD2D4BC4595412B6),
-  reinterpret<f64>(0x3FE9A00000000000), 0, reinterpret<f64>(0x3FCC6FFBC6F01000), reinterpret<f64>(0xBCF1EC72C5962BD2),
-  reinterpret<f64>(0x3FE9600000000000), 0, reinterpret<f64>(0x3FCDB13DB0D49000), reinterpret<f64>(0xBD2AFF2AF715B035),
-  reinterpret<f64>(0x3FE9400000000000), 0, reinterpret<f64>(0x3FCE530EFFE71000), reinterpret<f64>(0x3CC212276041F430),
-  reinterpret<f64>(0x3FE9200000000000), 0, reinterpret<f64>(0x3FCEF5ADE4DD0000), reinterpret<f64>(0xBCCA211565BB8E11),
-  reinterpret<f64>(0x3FE9000000000000), 0, reinterpret<f64>(0x3FCF991C6CB3B000), reinterpret<f64>(0x3D1BCBECCA0CDF30),
-  reinterpret<f64>(0x3FE8C00000000000), 0, reinterpret<f64>(0x3FD07138604D5800), reinterpret<f64>(0x3CF89CDB16ED4E91),
-  reinterpret<f64>(0x3FE8A00000000000), 0, reinterpret<f64>(0x3FD0C42D67616000), reinterpret<f64>(0x3D27188B163CEAE9),
-  reinterpret<f64>(0x3FE8800000000000), 0, reinterpret<f64>(0x3FD1178E8227E800), reinterpret<f64>(0xBD2C210E63A5F01C),
-  reinterpret<f64>(0x3FE8600000000000), 0, reinterpret<f64>(0x3FD16B5CCBACF800), reinterpret<f64>(0x3D2B9ACDF7A51681),
-  reinterpret<f64>(0x3FE8400000000000), 0, reinterpret<f64>(0x3FD1BF99635A6800), reinterpret<f64>(0x3D2CA6ED5147BDB7),
-  reinterpret<f64>(0x3FE8200000000000), 0, reinterpret<f64>(0x3FD214456D0EB800), reinterpret<f64>(0x3D0A87DEBA46BAEA),
-  reinterpret<f64>(0x3FE7E00000000000), 0, reinterpret<f64>(0x3FD2BEF07CDC9000), reinterpret<f64>(0x3D2A9CFA4A5004F4),
-  reinterpret<f64>(0x3FE7C00000000000), 0, reinterpret<f64>(0x3FD314F1E1D36000), reinterpret<f64>(0xBD28E27AD3213CB8),
-  reinterpret<f64>(0x3FE7A00000000000), 0, reinterpret<f64>(0x3FD36B6776BE1000), reinterpret<f64>(0x3D116ECDB0F177C8),
-  reinterpret<f64>(0x3FE7800000000000), 0, reinterpret<f64>(0x3FD3C25277333000), reinterpret<f64>(0x3D183B54B606BD5C),
-  reinterpret<f64>(0x3FE7600000000000), 0, reinterpret<f64>(0x3FD419B423D5E800), reinterpret<f64>(0x3D08E436EC90E09D),
-  reinterpret<f64>(0x3FE7400000000000), 0, reinterpret<f64>(0x3FD4718DC271C800), reinterpret<f64>(0xBD2F27CE0967D675),
-  reinterpret<f64>(0x3FE7200000000000), 0, reinterpret<f64>(0x3FD4C9E09E173000), reinterpret<f64>(0xBD2E20891B0AD8A4),
-  reinterpret<f64>(0x3FE7000000000000), 0, reinterpret<f64>(0x3FD522AE0738A000), reinterpret<f64>(0x3D2EBE708164C759),
-  reinterpret<f64>(0x3FE6E00000000000), 0, reinterpret<f64>(0x3FD57BF753C8D000), reinterpret<f64>(0x3D1FADEDEE5D40EF),
-  reinterpret<f64>(0x3FE6C00000000000), 0, reinterpret<f64>(0x3FD5D5BDDF596000), reinterpret<f64>(0xBD0A0B2A08A465DC)
-]);
-
 // Returns 0 if not int, 1 if odd int, 2 if even int. The argument is
 // the bit representation of a non-zero finite floating-point value.
 // @ts-ignore: decorator
 @inline
-function checkint(iy: u64): i32 {
+function checkint64(iy: u64): i32 {
   var e = iy >> 52 & 0x7FF;
   if (e < 0x3FF     ) return 0;
   if (e > 0x3FF + 52) return 2;
@@ -1663,20 +3019,20 @@ function checkint(iy: u64): i32 {
 
 // @ts-ignore: decorator
 @inline
-function xflow(sign: u32, y: f64): f64 {
+function xflow64(sign: u32, y: f64): f64 {
   return select(-y, y, sign) * y;
 }
 
 // @ts-ignore: decorator
 @inline
-function uflow(sign: u32): f64 {
-  return xflow(sign, reinterpret<f64>(0x1000000000000000)); // 0x1p-767
+function uflow64(sign: u32): f64 {
+  return xflow64(sign, reinterpret<f64>(0x1000000000000000)); // 0x1p-767
 }
 
 // @ts-ignore: decorator
 @inline
-function oflow(sign: u32): f64 {
-  return xflow(sign, reinterpret<f64>(0x7000000000000000)); // 0x1p769
+function oflow64(sign: u32): f64 {
+  return xflow64(sign, reinterpret<f64>(0x7000000000000000)); // 0x1p769
 }
 
 // Returns 1 if input is the bit representation of 0, infinity or nan.
@@ -1694,8 +3050,8 @@ function zeroinfnan(u: u64): bool {
 // normalized in the subnormal range using the sign bit for the exponent.
 // @ts-ignore: decorator
 @inline
-function log_inline(ix: u64): f64 {
-  const N = 1 << POW_LOG_TABLE_BITS;
+function log64_inline(ix: u64): f64 {
+  const N = 1 << POW_LOG_TABLE64_BITS;
   const N_MASK = N - 1;
 
   const
@@ -1715,16 +3071,16 @@ function log_inline(ix: u64): f64 {
   // The range is split into N subintervals.
   // The ith subinterval contains z and c is near its center.
   var tmp = ix - 0x3fE6955500000000;
-  var i   = <usize>((tmp >> (52 - POW_LOG_TABLE_BITS)) & N_MASK);
+  var i   = <usize>((tmp >> (52 - POW_LOG_TABLE64_BITS)) & N_MASK);
   var k   = <i64>tmp >> 52;
   var iz  = ix - (tmp & u64(0xFFF) << 52);
   var z   = reinterpret<f64>(iz);
   var kd  = <f64>k;
 
   // log(x) = k*Ln2 + log(c) + log1p(z/c-1).
-  var invc     = load<f64>(POW_LOG_DATA_TAB + (i << (2 + alignof<f64>())), 0 << alignof<f64>()); // tab[i].invc
-  var logc     = load<f64>(POW_LOG_DATA_TAB + (i << (2 + alignof<f64>())), 2 << alignof<f64>()); // tab[i].logc
-  var logctail = load<f64>(POW_LOG_DATA_TAB + (i << (2 + alignof<f64>())), 3 << alignof<f64>()); // tab[i].logctail
+  var invc     = load<f64>(POW_LOG_TABLE64 + (i << (2 + alignof<f64>())), 0 << alignof<f64>()); // tab[i].invc
+  var logc     = load<f64>(POW_LOG_TABLE64 + (i << (2 + alignof<f64>())), 2 << alignof<f64>()); // tab[i].logc
+  var logctail = load<f64>(POW_LOG_TABLE64 + (i << (2 + alignof<f64>())), 3 << alignof<f64>()); // tab[i].logctail
 
   // Note: 1/c is j/N or j/N/2 where j is an integer in [N,2N) and
   // |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible.
@@ -1762,14 +3118,14 @@ function log_inline(ix: u64): f64 {
 }
 
 // @ts-ignore: decorator
-@inline const SIGN_BIAS = 0x800 << EXP_TABLE_BITS;
+@inline const SIGN_BIAS = 0x800 << EXP_TABLE64_BITS;
 
 // Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|.
 // The sign_bias argument is SIGN_BIAS or 0 and sets the sign to -1 or 1.
 // @ts-ignore: decorator
 @inline
-function exp_inline(x: f64, xtail: f64, sign_bias: u32): f64 {
-  const N      = 1 << EXP_TABLE_BITS;
+function exp64_inline(x: f64, xtail: f64, sign_bias: u32): f64 {
+  const N      = 1 << EXP_TABLE64_BITS;
   const N_MASK = N - 1;
 
   const
@@ -1796,11 +3152,11 @@ function exp_inline(x: f64, xtail: f64, sign_bias: u32): f64 {
     if (abstop - 0x3C9 >= 0x80000000) {
       // Avoid spurious underflow for tiny x.
       // Note: 0 is common input.
-      return select(-1.0, 1.0, sign_bias);
+      return select<f64>(-1.0, 1.0, sign_bias);
     }
     if (abstop >= 0x409) { // top12(1024.0)
       // Note: inf and nan are already handled.
-      return ux >> 63 ? uflow(sign_bias) : oflow(sign_bias);
+      return ux >> 63 ? uflow64(sign_bias) : oflow64(sign_bias);
     }
     // Large x is special cased below.
     abstop = 0;
@@ -1829,11 +3185,11 @@ function exp_inline(x: f64, xtail: f64, sign_bias: u32): f64 {
   r += xtail;
   // 2^(k/N) ~= scale * (1 + tail)
   idx = <usize>((ki & N_MASK) << 1);
-  top = (ki + sign_bias) << (52 - EXP_TABLE_BITS);
+  top = (ki + sign_bias) << (52 - EXP_TABLE64_BITS);
 
-  tail = reinterpret<f64>(load<u64>(EXP_DATA_TAB + (idx << alignof<u64>())));
+  tail = reinterpret<f64>(load<u64>(EXP_TABLE64 + (idx << alignof<u64>())));
   // This is only a valid scale when -1023*N < k < 1024*N
-  sbits = load<u64>(EXP_DATA_TAB + (idx << alignof<u64>()), 1 << alignof<u64>()) + top;
+  sbits = load<u64>(EXP_TABLE64 + (idx << alignof<u64>()), 1 << alignof<u64>()) + top;
   // exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1).
   // Evaluation is optimized assuming superscalar pipelined execution.
   r2 = r * r;
@@ -1849,7 +3205,7 @@ function exp_inline(x: f64, xtail: f64, sign_bias: u32): f64 {
 
 // @ts-ignore: decorator
 @inline
-export function pow_lut(x: f64, y: f64): f64 {
+function pow64_lut(x: f64, y: f64): f64 {
   const Ox1p52 = reinterpret<f64>(0x4330000000000000); // 0x1p52
 
   var sign_bias: u32 = 0;
@@ -1873,13 +3229,13 @@ export function pow_lut(x: f64, y: f64): f64 {
     }
     if (zeroinfnan(ix)) {
       let x2 = x * x;
-      if (i32(ix >> 63) && checkint(iy) == 1) x2 = -x2;
+      if (i32(ix >> 63) && checkint64(iy) == 1) x2 = -x2;
       return iy >> 63 ? 1 / x2 : x2;
     }
     // Here x and y are non-zero finite
     if (ix >> 63) {
       // Finite x < 0
-      let yint = checkint(iy);
+      let yint = checkint64(iy);
       if (yint == 0) return (x - x) / (x - x);
       if (yint == 1) sign_bias = SIGN_BIAS;
       ix   &= 0x7FFFFFFFFFFFFFFF;
@@ -1899,7 +3255,7 @@ export function pow_lut(x: f64, y: f64): f64 {
     }
   }
 
-  var hi = log_inline(ix);
+  var hi = log64_inline(ix);
   var lo = log_tail;
   var ehi: f64, elo: f64;
   // #if __FP_FAST_FMA
@@ -1913,5 +3269,1396 @@ export function pow_lut(x: f64, y: f64): f64 {
   ehi = yhi * lhi;
   elo = ylo * lhi + y * llo; // |elo| < |ehi| * 2^-25.
   // #endif
-  return exp_inline(ehi, elo, sign_bias);
+  return exp64_inline(ehi, elo, sign_bias);
+}
+
+export function pow32(x: f32, y: f32): f32 {
+  // TODO: remove this fast pathes after introduced own mid-end IR with "stdlib call simplify" transforms
+  if (abs<f32>(y) <= 2) {
+    if (y == 2.0) return x * x;
+    if (y == 0.5) {
+      return select<f32>(
+        abs<f32>(sqrt<f32>(x)),
+        Infinity,
+        x != -Infinity
+      );
+    }
+    if (y == -1.0) return 1 / x;
+    if (y == 1.0) return x;
+    if (y == 0.0) return 1.0;
+  }
+  if (ASC_SHRINK_LEVEL < 1) {
+    // see: musl/src/math/powf.c
+    return pow32_lut(x, y);
+  } else {
+    // based on:  jdh8/metallic/src/math/float/powf.c
+    if (y == 0) return 1;
+    // @ts-ignore: cast
+    if (isNaN(x) | isNaN(y)) {
+      return NaN;
+    }
+    let sign: u32 = 0;
+    let uy = reinterpret<u32>(y);
+    let ux = reinterpret<u32>(x);
+    let sx = ux >> 31;
+    ux &= 0x7FFFFFFF;
+    if (sx && nearest<f32>(y) == y) {
+      x = -x;
+      sx = 0;
+      sign = u32(nearest<f32>(y * 0.5) != y * 0.5) << 31;
+    }
+    let m: u32;
+    if (ux == 0x3F800000) { // x == 1
+      m = sx | u32((uy & 0x7FFFFFFF) == 0x7F800000) ? 0x7FC00000 : 0x3F800000;
+    } else if (ux == 0) {
+      m = uy >> 31 ? 0x7F800000 : 0;
+    } else if (ux == 0x7F800000) {
+      m = uy >> 31 ? 0 : 0x7F800000;
+    } else if (sx) {
+      m = 0x7FC00000;
+    } else {
+      m = reinterpret<u32>(<f32>exp2up32(<f64>y * log2up32(x)));
+    }
+    return reinterpret<f32>(m | sign);
+  }
+}
+
+export function pow64(x: f64, y: f64): f64 { // see: musl/src/math/pow.c and SUN COPYRIGHT NOTICE above
+  // TODO: remove this fast pathes after introduced own mid-end IR with "stdlib call simplify" transforms
+  if (abs<f64>(y) <= 2) {
+    if (y == 2.0) return x * x;
+    if (y == 0.5) {
+      return select<f64>(
+        abs<f64>(sqrt<f64>(x)),
+        Infinity,
+        x != -Infinity
+      );
+    }
+    if (y == -1.0) return 1 / x;
+    if (y == 1.0) return x;
+    if (y == 0.0) return 1.0;
+  }
+  if (ASC_SHRINK_LEVEL < 1) {
+    return pow64_lut(x, y);
+  } else {
+    const
+      dp_h1   = reinterpret<f64>(0x3FE2B80340000000), //  5.84962487220764160156e-01
+      dp_l1   = reinterpret<f64>(0x3E4CFDEB43CFD006), //  1.35003920212974897128e-08
+      two53   = reinterpret<f64>(0x4340000000000000), //  9007199254740992.0
+      huge    = reinterpret<f64>(0x7E37E43C8800759C), //  1e+300
+      tiny    = reinterpret<f64>(0x01A56E1FC2F8F359), //  1e-300
+      L1      = reinterpret<f64>(0x3FE3333333333303), //  5.99999999999994648725e-01
+      L2      = reinterpret<f64>(0x3FDB6DB6DB6FABFF), //  4.28571428578550184252e-01
+      L3      = reinterpret<f64>(0x3FD55555518F264D), //  3.33333329818377432918e-01
+      L4      = reinterpret<f64>(0x3FD17460A91D4101), //  2.72728123808534006489e-01
+      L5      = reinterpret<f64>(0x3FCD864A93C9DB65), //  2.30660745775561754067e-01
+      L6      = reinterpret<f64>(0x3FCA7E284A454EEF), //  2.06975017800338417784e-01
+      P1      = reinterpret<f64>(0x3FC555555555553E), //  1.66666666666666019037e-01
+      P2      = reinterpret<f64>(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03
+      P3      = reinterpret<f64>(0x3F11566AAF25DE2C), //  6.61375632143793436117e-05
+      P4      = reinterpret<f64>(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06
+      P5      = reinterpret<f64>(0x3E66376972BEA4D0), //  4.13813679705723846039e-08
+      lg2     = reinterpret<f64>(0x3FE62E42FEFA39EF), //  6.93147180559945286227e-01
+      lg2_h   = reinterpret<f64>(0x3FE62E4300000000), //  6.93147182464599609375e-01
+      lg2_l   = reinterpret<f64>(0xBE205C610CA86C39), // -1.90465429995776804525e-09
+      ovt     = reinterpret<f64>(0x3C971547652B82FE), //  8.0085662595372944372e-017
+      cp      = reinterpret<f64>(0x3FEEC709DC3A03FD), //  9.61796693925975554329e-01
+      cp_h    = reinterpret<f64>(0x3FEEC709E0000000), //  9.61796700954437255859e-01
+      cp_l    = reinterpret<f64>(0xBE3E2FE0145B01F5), // -7.02846165095275826516e-09
+      ivln2   = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
+      ivln2_h = reinterpret<f64>(0x3FF7154760000000), //  1.44269502162933349609e+00
+      ivln2_l = reinterpret<f64>(0x3E54AE0BF85DDF44), //  1.92596299112661746887e-08
+      inv3    = reinterpret<f64>(0x3FD5555555555555); //  0.3333333333333333333333
+
+    let u_ = reinterpret<u64>(x);
+    let hx = <i32>(u_ >> 32);
+    let lx = <u32>u_;
+    u_ = reinterpret<u64>(y);
+    let hy = <i32>(u_ >> 32);
+    let ly = <u32>u_;
+    let ix = hx & 0x7FFFFFFF;
+    let iy = hy & 0x7FFFFFFF;
+    if ((iy | ly) == 0) return 1.0; // x**0 = 1, even if x is NaN
+    // if (hx == 0x3FF00000 && lx == 0) return 1.0; // C: 1**y = 1, even if y is NaN, JS: NaN
+    if ( // NaN if either arg is NaN
+      ix > 0x7FF00000 || (ix == 0x7FF00000 && lx != 0) ||
+      iy > 0x7FF00000 || (iy == 0x7FF00000 && ly != 0)
+    ) return x + y;
+    let yisint = 0, k: i32;
+    if (hx < 0) {
+      if (iy >= 0x43400000) yisint = 2;
+      else if (iy >= 0x3FF00000) {
+        k = (iy >> 20) - 0x3FF;
+        let offset = select<u32>(52, 20, k > 20) - k;
+        let Ly = select<u32>(ly, iy, k > 20);
+        let jj = Ly >> offset;
+        if ((jj << offset) == Ly) yisint = 2 - (jj & 1);
+      }
+    }
+    if (ly == 0) {
+      if (iy == 0x7FF00000) { // y is +-inf
+        if (((ix - 0x3FF00000) | lx) == 0) return NaN; // C: (-1)**+-inf is 1, JS: NaN
+        else if (ix >= 0x3FF00000) return hy >= 0 ? y : 0.0; // (|x|>1)**+-inf = inf,0
+        else return hy >= 0 ? 0.0 : -y; // (|x|<1)**+-inf = 0,inf
+      }
+      if (iy == 0x3FF00000) {
+        if (hy >= 0) return x;
+        return 1 / x;
+      }
+      if (hy == 0x40000000) return x * x;
+      if (hy == 0x3FE00000) {
+        if (hx >= 0) return sqrt<f64>(x);
+      }
+    }
+    let ax = abs<f64>(x), z: f64;
+    if (lx == 0) {
+      if (ix == 0 || ix == 0x7FF00000 || ix == 0x3FF00000) {
+        z = ax;
+        if (hy < 0) z = 1.0 / z;
+        if (hx < 0) {
+          if (((ix - 0x3FF00000) | yisint) == 0) {
+            let d = z - z;
+            z = d / d;
+          } else if (yisint == 1) z = -z;
+        }
+        return z;
+      }
+    }
+    let s = 1.0;
+    if (hx < 0) {
+      if (yisint == 0) {
+        let d = x - x;
+        return d / d;
+      }
+      if (yisint == 1) s = -1.0;
+    }
+    let t1: f64, t2: f64, p_h: f64, p_l: f64, r: f64, t: f64, u: f64, v: f64, w: f64;
+    let j: i32, n: i32;
+    if (iy > 0x41E00000) {
+      if (iy > 0x43F00000) {
+        if (ix <= 0x3FEFFFFF) return hy < 0 ? huge * huge : tiny * tiny;
+        if (ix >= 0x3FF00000) return hy > 0 ? huge * huge : tiny * tiny;
+      }
+      if (ix < 0x3FEFFFFF) return hy < 0 ? s * huge * huge : s * tiny * tiny;
+      if (ix > 0x3FF00000) return hy > 0 ? s * huge * huge : s * tiny * tiny;
+      t = ax - 1.0;
+      w = (t * t) * (0.5 - t * (inv3 - t * 0.25));
+      u = ivln2_h * t;
+      v = t * ivln2_l - w * ivln2;
+      t1 = u + v;
+      t1 = reinterpret<f64>(reinterpret<u64>(t1) & 0xFFFFFFFF00000000);
+      t2 = v - (t1 - u);
+    } else {
+      let ss: f64, s2: f64, s_h: f64, s_l: f64, t_h: f64, t_l: f64;
+      n = 0;
+      if (ix < 0x00100000) {
+        ax *= two53;
+        n -= 53;
+        ix = <u32>(reinterpret<u64>(ax) >> 32);
+      }
+      n += (ix >> 20) - 0x3FF;
+      j = ix & 0x000FFFFF;
+      ix = j | 0x3FF00000;
+      if (j <= 0x3988E) k = 0;
+      else if (j < 0xBB67A) k = 1;
+      else {
+        k = 0;
+        n += 1;
+        ix -= 0x00100000;
+      }
+      ax = reinterpret<f64>(reinterpret<u64>(ax) & 0xFFFFFFFF | (<u64>ix << 32));
+      let bp = select<f64>(1.5, 1.0, k); // k ? 1.5 : 1.0
+      u = ax - bp;
+      v = 1.0 / (ax + bp);
+      ss = u * v;
+      s_h = ss;
+      s_h = reinterpret<f64>(reinterpret<u64>(s_h) & 0xFFFFFFFF00000000);
+      t_h = reinterpret<f64>(<u64>(((ix >> 1) | 0x20000000) + 0x00080000 + (k << 18)) << 32);
+      t_l = ax - (t_h - bp);
+      s_l = v * ((u - s_h * t_h) - s_h * t_l);
+      s2 = ss * ss;
+      r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6)))));
+      r += s_l * (s_h + ss);
+      s2 = s_h * s_h;
+      t_h = 3.0 + s2 + r;
+      t_h = reinterpret<f64>(reinterpret<u64>(t_h) & 0xFFFFFFFF00000000);
+      t_l = r - ((t_h - 3.0) - s2);
+      u = s_h * t_h;
+      v = s_l * t_h + t_l * ss;
+      p_h = u + v;
+      p_h = reinterpret<f64>(reinterpret<u64>(p_h) & 0xFFFFFFFF00000000);
+      p_l = v - (p_h - u);
+      let z_h = cp_h * p_h;
+      let dp_l = select<f64>(dp_l1, 0.0, k);
+      let z_l = cp_l * p_h + p_l * cp + dp_l;
+      t = <f64>n;
+      let dp_h = select<f64>(dp_h1, 0.0, k);
+      t1 = ((z_h + z_l) + dp_h) + t;
+      t1 = reinterpret<f64>(reinterpret<u64>(t1) & 0xFFFFFFFF00000000);
+      t2 = z_l - (((t1 - t) - dp_h) - z_h);
+    }
+    let y1 = y;
+    y1 = reinterpret<f64>(reinterpret<u64>(y1) & 0xFFFFFFFF00000000);
+    p_l = (y - y1) * t1 + y * t2;
+    p_h = y1 * t1;
+    z = p_l + p_h;
+    u_ = reinterpret<u64>(z);
+    j = <u32>(u_ >> 32);
+    let i = <i32>u_;
+    if (j >= 0x40900000) {
+      if (((j - 0x40900000) | i) != 0) return s * huge * huge;
+      if (p_l + ovt > z - p_h) return s * huge * huge;
+    } else if ((j & 0x7FFFFFFF) >= 0x4090CC00) {
+      if (((j - 0xC090CC00) | i) != 0) return s * tiny * tiny;
+      if (p_l <= z - p_h) return s * tiny * tiny;
+    }
+    i = j & 0x7FFFFFFF;
+    k = (i >> 20) - 0x3FF;
+    n = 0;
+    if (i > 0x3FE00000) {
+      n = j + (0x00100000 >> (k + 1));
+      k = ((n & 0x7FFFFFFF) >> 20) - 0x3FF;
+      t = 0.0;
+      t = reinterpret<f64>(<u64>(n & ~(0x000FFFFF >> k)) << 32);
+      n = ((n & 0x000FFFFF) | 0x00100000) >> (20 - k);
+      if (j < 0) n = -n;
+      p_h -= t;
+    }
+    t = p_l + p_h;
+    t = reinterpret<f64>(reinterpret<u64>(t) & 0xFFFFFFFF00000000);
+    u = t * lg2_h;
+    v = (p_l - (t - p_h)) * lg2 + t * lg2_l;
+    z = u + v;
+    w = v - (z - u);
+    t = z * z;
+    t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5))));
+    r = (z * t1) / (t1 - 2.0) - (w + z * w);
+    z = 1.0 - (r - z);
+    j = <u32>(reinterpret<u64>(z) >> 32);
+    j += n << 20;
+    if ((j >> 20) <= 0) z = scalbn64(z, n);
+    else z = reinterpret<f64>(reinterpret<u64>(z) & 0xFFFFFFFF | (<u64>j << 32));
+    return s * z;
+  }
+}
+
+export function sin32(x: f32): f32 { // see: musl/src/math/sinf.c
+  const
+    s1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // M_PI_2 * 1
+    s2pio2 = reinterpret<f64>(0x400921FB54442D18), // M_PI_2 * 2
+    s3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // M_PI_2 * 3
+    s4pio2 = reinterpret<f64>(0x401921FB54442D18); // M_PI_2 * 4
+
+  var ix = reinterpret<u32>(x);
+  var sign = ix >> 31;
+  ix &= 0x7FFFFFFF;
+
+  if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
+    if (ix < 0x39800000) { // |x| < 2**-12
+      return x;
+    }
+    return sin32_kern(x);
+  }
+
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
+      if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
+        return sign ? -cos32_kern(x + s1pio2) : cos32_kern(x - s1pio2);
+      }
+      return sin32_kern(-(sign ? x + s2pio2 : x - s2pio2));
+    }
+
+    if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
+      if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
+        return sign ? cos32_kern(x + s3pio2) : -cos32_kern(x - s3pio2);
+      }
+      return sin32_kern(sign ? x + s4pio2 : x - s4pio2);
+    }
+  }
+
+  // sin(Inf or NaN) is NaN
+  if (ix >= 0x7F800000) return x - x;
+
+  var n = rempio2_32(x, ix, sign);
+  var y = rempio2_32_y;
+
+  var t = n & 1 ? cos32_kern(y) : sin32_kern(y);
+  return n & 2 ? -t : t;
+}
+
+export function sin64(x: f64): f64 { // see: musl/src/math/sin.c
+  var u  = reinterpret<u64>(x);
+  var ix = <u32>(u >> 32);
+  var sign = ix >> 31;
+
+  ix &= 0x7FFFFFFF;
+
+  // |x| ~< pi/4
+  if (ix <= 0x3FE921FB) {
+    if (ix < 0x3E500000) { // |x| < 2**-26
+      return x;
+    }
+    return sin64_kern(x, 0.0, 0);
+  }
+
+  // sin(Inf or NaN) is NaN
+  if (ix >= 0x7FF00000) return x - x;
+
+  // argument reduction needed
+  var n  = rempio2_64(x, u, sign);
+  var y0 = rempio2_y0;
+  var y1 = rempio2_y1;
+
+  x = n & 1 ? cos64_kern(y0, y1) : sin64_kern(y0, y1, 1);
+  return n & 2 ? -x : x;
+}
+
+export function sinh32(x: f32): f32 { // see: musl/src/math/sinhf.c
+  var u = reinterpret<u32>(x) & 0x7FFFFFFF;
+  var a = reinterpret<f32>(u);
+  var h = copysign<f32>(0.5, x);
+  if (u < 0x42B17217) {
+    let t = expm1_32(a);
+    if (u < 0x3F800000) {
+      if (u < 0x3F800000 - (12 << 23)) return x;
+      return h * (2 * t - t * t / (t + 1));
+    }
+    return h * (t + t / (t + 1));
+  }
+  return expo2_32(a, 2 * h);
+}
+
+export function sinh64(x: f64): f64 { // see: musl/src/math/sinh.c
+  var u = reinterpret<u64>(x) & 0x7FFFFFFFFFFFFFFF;
+  var a = reinterpret<f64>(u);
+  var w = <u32>(u >> 32);
+  var h = copysign<f64>(0.5, x);
+  if (w < 0x40862E42) {
+    let t = expm1_64(a);
+    if (w < 0x3FF00000) {
+      if (w < 0x3FF00000 - (26 << 20)) return x;
+      return h * (2 * t - t * t / (t + 1));
+    }
+    return h * (t + t / (t + 1));
+  }
+  return expo2_64(a, 2 * h);
+}
+
+export function tan32(x: f32): f32 { // see: musl/src/math/tanf.c
+  const
+    t1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // 1 * M_PI_2
+    t2pio2 = reinterpret<f64>(0x400921FB54442D18), // 2 * M_PI_2
+    t3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // 3 * M_PI_2
+    t4pio2 = reinterpret<f64>(0x401921FB54442D18); // 4 * M_PI_2
+
+  var ix = reinterpret<u32>(x);
+  var sign = ix >> 31;
+  ix &= 0x7FFFFFFF;
+
+  if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
+    if (ix < 0x39800000) { // |x| < 2**-12
+      return x;
+    }
+    return tan32_kern(x, 0);
+  }
+
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
+      if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
+        return tan32_kern((sign ? x + t1pio2 : x - t1pio2), 1);
+      } else {
+        return tan32_kern((sign ? x + t2pio2 : x - t2pio2), 0);
+      }
+    }
+    if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
+      if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
+        return tan32_kern((sign ? x + t3pio2 : x - t3pio2), 1);
+      } else {
+        return tan32_kern((sign ? x + t4pio2 : x - t4pio2), 0);
+      }
+    }
+  }
+
+  // tan(Inf or NaN) is NaN
+  if (ix >= 0x7F800000) return x - x;
+
+  // argument reduction
+  var n = rempio2_32(x, ix, sign);
+  var y = rempio2_32_y;
+  return tan32_kern(y, n & 1);
+}
+
+export function tan64(x: f64): f64 { // see: musl/src/math/tan.c
+  var u = reinterpret<u64>(x);
+  var ix = <i32>(u >> 32);
+  var sign = ix >>> 31;
+
+  ix &= 0x7FFFFFFF;
+
+  // |x| ~< pi/4
+  if (ix <= 0x3FE921FB) {
+    if (ix < 0x3E400000) { // |x| < 2**-27
+      return x;
+    }
+    return tan64_kern(x, 0.0, 1);
+  }
+
+  // tan(Inf or NaN) is NaN
+  if (ix >= 0x7FF00000) return x - x;
+
+  var n = rempio2_64(x, u, sign);
+  return tan64_kern(rempio2_y0, rempio2_y1, 1 - ((n & 1) << 1));
+}
+
+export function tanh32(x: f32): f32 { // see: musl/src/math/tanhf.c
+  var u = reinterpret<u32>(x);
+  u &= 0x7FFFFFFF;
+  var y = reinterpret<f32>(u);
+  var t: f32;
+  if (u > 0x3F0C9F54) {
+    if (u > 0x41200000) t = 1 + 0 / y;
+    else {
+      t = expm1_32(2 * y);
+      t = 1 - 2 / (t + 2);
+    }
+  } else if (u > 0x3E82C578) {
+    t = expm1_32(2 * y);
+    t = t / (t + 2);
+  } else if (u >= 0x00800000) {
+    t = expm1_32(-2 * y);
+    t = -t / (t + 2);
+  } else t = y;
+  return copysign<f32>(t, x);
+}
+
+export function tanh64(x: f64): f64 { // see: musl/src/math/tanh.c
+  var u = reinterpret<u64>(x);
+  u &= 0x7FFFFFFFFFFFFFFF;
+  var y = reinterpret<f64>(u);
+  var w = <u32>(u >> 32);
+  var t: f64;
+  if (w > 0x3FE193EA) {
+    if (w > 0x40340000) {
+      t = 1 - 0 / y;
+    } else {
+      t = expm1_64(2 * y);
+      t = 1 - 2 / (t + 2);
+    }
+  } else if (w > 0x3FD058AE) {
+    t = expm1_64(2 * y);
+    t = t / (t + 2);
+  } else if (w >= 0x00100000) {
+    t = expm1_64(-2 * y);
+    t = -t / (t + 2);
+  } else t = y;
+  return copysign<f64>(t, x);
+}
+
+export function sincos32(x: f32): f32 { // see: musl/tree/src/math/sincosf.c
+  const
+    s1pio2 = reinterpret<f64>(0x3FF921FB54442D18), // 1 * M_PI_2
+    s2pio2 = reinterpret<f64>(0x400921FB54442D18), // 2 * M_PI_2
+    s3pio2 = reinterpret<f64>(0x4012D97C7F3321D2), // 3 * M_PI_2
+    s4pio2 = reinterpret<f64>(0x401921FB54442D18); // 4 * M_PI_2
+
+  var ix = reinterpret<u32>(x);
+  var sign = ix >> 31;
+  ix &= 0x7FFFFFFF;
+
+  if (ix <= 0x3F490FDA) {  // |x| ~<= π/4
+    if (ix < 0x39800000) { // |x| < 2**-12
+      sincos_cos32 = 1;
+      return x;
+    }
+    sincos_cos32 = cos32_kern(x);
+    return sin32_kern(x);
+  }
+  if (ASC_SHRINK_LEVEL < 1) {
+    if (ix <= 0x407B53D1) {   // |x| ~<= 5π/4
+      if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
+        if (sign) {
+          sincos_cos32 = sin32_kern(x + s1pio2);
+          return -cos32_kern(x + s1pio2)
+        } else {
+          sincos_cos32 = sin32_kern(s1pio2 - x);
+          return cos32_kern(s1pio2 - x);
+        }
+      }
+      // -sin(x + c) is not correct if x+c could be 0: -0 vs +0
+      sincos_cos32 = -cos32_kern(sign ? x + s2pio2 : x - s2pio2);
+      return -sin32_kern(sign ? x + s2pio2 : x - s2pio2)
+    }
+    if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
+      if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4
+        if (sign) {
+          sincos_cos32 = -sin32_kern(x + s3pio2);
+          return cos32_kern(x + s3pio2);
+        } else {
+          sincos_cos32 = sin32_kern(x - s3pio2);
+          return -cos32_kern(x - s3pio2);
+        }
+      }
+      sincos_cos32 = cos32_kern(sign ? x + s4pio2 : x - s4pio2);
+      return sin32_kern(sign ? x + s4pio2 : x - s4pio2);
+    }
+  }
+  // sin(Inf or NaN) is NaN
+  if (ix >= 0x7F800000) {
+    let xx = x - x;
+    sincos_cos32 = xx;
+    return xx;
+  }
+  // general argument reduction needed
+  var n = rempio2_32(x, ix, sign);
+  var y = rempio2_32_y;
+  var s = sin32_kern(y);
+  var c = cos32_kern(y);
+  var sin = s, cos = c;
+  if (n & 1) {
+    sin =  c;
+    cos = -s;
+  }
+  if (n & 2) {
+    sin = -sin;
+    cos = -cos;
+  }
+  sincos_cos32 = cos;
+  return sin;
+}
+
+export function sincos64(x: f64): f64 { // see: musl/tree/src/math/sincos.c
+  var u = reinterpret<u64>(x);
+  var ix = <u32>(u >> 32);
+  var sign = ix >> 31;
+  ix &= 0x7FFFFFFF;
+
+  if (ix <= 0x3FE921FB) {  // |x| ~<= π/4
+    if (ix < 0x3E46A09E) { // if |x| < 2**-27 * sqrt(2)
+      sincos_cos64 = 1;
+      return x; // sin
+    }
+    sincos_cos64 = cos64_kern(x, 0);
+    return sin64_kern(x, 0, 0);
+  }
+  // sin(Inf or NaN) is NaN
+  if (ix >= 0x7F800000) {
+    let xx = x - x;
+    sincos_cos64 = xx;
+    return xx;
+  }
+  // general argument reduction needed
+  var n = rempio2_64(x, u, sign);
+  var y0 = rempio2_y0;
+  var y1 = rempio2_y1;
+  var s = sin64_kern(y0, y1, 1);
+  var c = cos64_kern(y0, y1);
+  var sin = s, cos = c;
+  if (n & 1) {
+    sin =  c;
+    cos = -s;
+  }
+  if (n & 2) {
+    sin = -sin;
+    cos = -cos;
+  }
+  sincos_cos64 = cos;
+  return sin;
+}
+
+export function scalbn32(x: f32, n: i32): f32 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbnf.c
+  const
+    Ox1p24f   = reinterpret<f32>(0x4B800000),
+    Ox1p127f  = reinterpret<f32>(0x7F000000),
+    Ox1p_126f = reinterpret<f32>(0x00800000);
+
+  var y = x;
+  if (n > 127) {
+    y *= Ox1p127f;
+    n -= 127;
+    if (n > 127) {
+      y *= Ox1p127f;
+      n = min<i32>(n - 127, 127);
+    }
+  } else if (n < -126) {
+    y *= Ox1p_126f * Ox1p24f;
+    n += 126 - 24;
+    if (n < -126) {
+      y *= Ox1p_126f * Ox1p24f;
+      n = max<i32>(n + 126 - 24, -126);
+    }
+  }
+  return y * reinterpret<f32>(<u32>(0x7F + n) << 23);
+}
+
+export function scalbn64(x: f64, n: i32): f64 { // see: https://git.musl-libc.org/cgit/musl/tree/src/math/scalbn.c
+  const
+    Ox1p53    = reinterpret<f64>(0x4340000000000000),
+    Ox1p1023  = reinterpret<f64>(0x7FE0000000000000),
+    Ox1p_1022 = reinterpret<f64>(0x0010000000000000);
+
+  var y = x;
+  if (n > 1023) {
+    y *= Ox1p1023;
+    n -= 1023;
+    if (n > 1023) {
+      y *= Ox1p1023;
+      n = min<i32>(n - 1023, 1023);
+    }
+  } else if (n < -1022) {
+    // make sure final n < -53 to avoid double
+    // rounding in the subnormal range
+    y *= Ox1p_1022 * Ox1p53;
+    n += 1022 - 53;
+    if (n < -1022) {
+      y *= Ox1p_1022 * Ox1p53;
+      n = max<i32>(n + 1022 - 53, -1022);
+    }
+  }
+  return y * reinterpret<f64>(<u64>(0x3FF + n) << 52);
+}
+
+export function exp32(x: f32): f32 { // see: musl/src/math/expf.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return exp32_lut(x);
+  } else {
+    const
+      ln2hi    = reinterpret<f32>(0x3F317200), //  6.9314575195e-1f
+      ln2lo    = reinterpret<f32>(0x35BFBE8E), //  1.4286067653e-6f
+      invln2   = reinterpret<f32>(0x3FB8AA3B), //  1.4426950216e+0f
+      P1       = reinterpret<f32>(0x3E2AAA8F), //  1.6666625440e-1f
+      P2       = reinterpret<f32>(0xBB355215), // -2.7667332906e-3f
+      Ox1p127f = reinterpret<f32>(0x7F000000); //  0x1p+127f
+
+    let hx = reinterpret<u32>(x);
+    let sign_ = <i32>(hx >> 31);
+    hx &= 0x7FFFFFFF;
+    if (hx >= 0x42AEAC50) {
+      if (hx > 0x7F800000) return x; // NaN
+      if (hx >= 0x42B17218) {
+        if (!sign_) return x * Ox1p127f;
+        else if (hx >= 0x42CFF1B5) return 0;
+      }
+    }
+    let hi: f32, lo: f32;
+    let k: i32;
+    if (hx > 0x3EB17218) {
+      if (hx > 0x3F851592) {
+        k = <i32>(invln2 * x + copysign<f32>(0.5, x));
+      } else {
+        k = 1 - (sign_ << 1);
+      }
+      hi = x - <f32>k * ln2hi;
+      lo = <f32>k * ln2lo;
+      x = hi - lo;
+    } else if (hx > 0x39000000) {
+      k = 0;
+      hi = x;
+      lo = 0;
+    } else {
+      return 1 + x;
+    }
+    let xx = x * x;
+    let c = x - xx * (P1 + xx * P2);
+    let y: f32 = 1 + (x * c / (2 - c) - lo + hi);
+    return k == 0 ? y : scalbn32(y, k);
+  }
+}
+
+export function exp64(x: f64): f64 { // see: musl/src/math/exp.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return exp_lut(x);
+  } else {
+    const
+      ln2hi     = reinterpret<f64>(0x3FE62E42FEE00000), //  6.93147180369123816490e-01
+      ln2lo     = reinterpret<f64>(0x3DEA39EF35793C76), //  1.90821492927058770002e-10
+      invln2    = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
+      P1        = reinterpret<f64>(0x3FC555555555553E), //  1.66666666666666019037e-01
+      P2        = reinterpret<f64>(0xBF66C16C16BEBD93), // -2.77777777770155933842e-03
+      P3        = reinterpret<f64>(0x3F11566AAF25DE2C), //  6.61375632143793436117e-05
+      P4        = reinterpret<f64>(0xBEBBBD41C5D26BF1), // -1.65339022054652515390e-06
+      P5        = reinterpret<f64>(0x3E66376972BEA4D0), //  4.13813679705723846039e-08
+      overflow  = reinterpret<f64>(0x40862E42FEFA39EF), //  709.782712893383973096
+      underflow = reinterpret<f64>(0xC0874910D52D3051), // -745.13321910194110842
+      Ox1p1023  = reinterpret<f64>(0x7FE0000000000000); //  0x1p1023
+
+    let hx = <u32>(reinterpret<u64>(x) >> 32);
+    let sign_ = <i32>(hx >> 31);
+    hx &= 0x7FFFFFFF;
+    if (hx >= 0x4086232B) {
+      if (isNaN(x)) return x;
+      if (x > overflow)  return x * Ox1p1023;
+      if (x < underflow) return 0;
+    }
+    let hi: f64, lo: f64 = 0;
+    let k = 0;
+    if (hx > 0x3FD62E42) {
+      if (hx >= 0x3FF0A2B2) {
+        k = <i32>(invln2 * x + copysign<f64>(0.5, x));
+      } else {
+        k = 1 - (sign_ << 1);
+      }
+      hi = x - k * ln2hi;
+      lo = k * ln2lo;
+      x = hi - lo;
+    } else if (hx > 0x3E300000) {
+      hi = x;
+    } else return 1.0 + x;
+    let xs = x * x;
+    // var c = x - xp2 * (P1 + xp2 * (P2 + xp2 * (P3 + xp2 * (P4 + xp2 * P5))));
+    let xq = xs * xs;
+    let c = x - (xs * P1 + xq * ((P2 + xs * P3) + xq * (P4 + xs * P5)));
+    let y = 1.0 + (x * c / (2 - c) - lo + hi);
+    return k == 0 ? y : scalbn64(y, k);
+  }
+}
+
+export function expm1_32(x: f32): f32 { // see: musl/src/math/expm1f.c and SUN COPYRIGHT NOTICE above
+  const
+    ln2_hi   = reinterpret<f32>(0x3F317180), //  6.9313812256e-01f
+    ln2_lo   = reinterpret<f32>(0x3717F7D1), //  9.0580006145e-06f
+    invln2   = reinterpret<f32>(0x3FB8AA3B), //  1.4426950216e+00f
+    Q1       = reinterpret<f32>(0xBD088868), // -3.3333212137e-02f
+    Q2       = reinterpret<f32>(0x3ACF3010), //  1.5807170421e-03f
+    Ox1p127f = reinterpret<f32>(0x7F000000); //  0x1p+127f
+
+  var u = reinterpret<u32>(x);
+  var hx = u & 0x7FFFFFFF;
+  var sign_ = <i32>(u >> 31);
+  if (hx >= 0x4195B844) {
+    if (hx > 0x7F800000) return x;
+    if (sign_) return -1;
+    if (hx > 0x42B17217) { // x > log(FLT_MAX)
+      x *= Ox1p127f;
+      return x;
+    }
+  }
+  var c: f32 = 0.0, t: f32, k: i32;
+  if (hx > 0x3EB17218) {
+    k = select<i32>(
+      1 - (sign_ << 1),
+      <i32>(invln2 * x + copysign<f32>(0.5, x)),
+      hx < 0x3F851592
+    );
+    t = <f32>k;
+    let hi = x - t * ln2_hi;
+    let lo = t * ln2_lo;
+    x = hi - lo;
+    c = (hi - x) - lo;
+  } else if (hx < 0x33000000) {
+    return x;
+  } else k = 0;
+  var hfx: f32 = 0.5 * x;
+  var hxs: f32 = x * hfx;
+  var r1: f32 = 1.0 + hxs * (Q1 + hxs * Q2);
+  t  = 3.0 - r1 * hfx;
+  var e = hxs * ((r1 - t) / (6.0 - x * t));
+  if (k == 0) return x - (x * e - hxs);
+  e  = x * (e - c) - c;
+  e -= hxs;
+  if (k == -1) return 0.5 * (x - e) - 0.5;
+  if (k == 1) {
+    if (x < -0.25) return -2.0 * (e - (x + 0.5));
+    return 1.0 + 2.0 * (x - e);
+  }
+  u = (0x7F + k) << 23;
+  var twopk = reinterpret<f32>(u);
+  var y: f32;
+  if (k < 0 || k > 56) {
+    y = x - e + 1.0;
+    if (k == 128) y = y * 2.0 * Ox1p127f;
+    else y = y * twopk;
+    return y - 1.0;
+  }
+  u = (0x7F - k) << 23;
+  y = reinterpret<f32>(u);
+  if (k < 20) y = (1 - y) - e;
+  else y = 1 - (e + y);
+  return (x + y) * twopk;
+}
+
+export function expm1_64(x: f64): f64 { // see: musl/src/math/expm1.c and SUN COPYRIGHT NOTICE above
+  const
+    o_threshold = reinterpret<f64>(0x40862E42FEFA39EF), //  7.09782712893383973096e+02
+    ln2_hi      = reinterpret<f64>(0x3FE62E42FEE00000), //  6.93147180369123816490e-01
+    ln2_lo      = reinterpret<f64>(0x3DEA39EF35793C76), //  1.90821492927058770002e-10
+    invln2      = reinterpret<f64>(0x3FF71547652B82FE), //  1.44269504088896338700e+00
+    Q1          = reinterpret<f64>(0xBFA11111111110F4), // -3.33333333333331316428e-02
+    Q2          = reinterpret<f64>(0x3F5A01A019FE5585), //  1.58730158725481460165e-03
+    Q3          = reinterpret<f64>(0xBF14CE199EAADBB7), // -7.93650757867487942473e-05
+    Q4          = reinterpret<f64>(0x3ED0CFCA86E65239), //  4.00821782732936239552e-06
+    Q5          = reinterpret<f64>(0xBE8AFDB76E09C32D), // -2.01099218183624371326e-07
+    Ox1p1023    = reinterpret<f64>(0x7FE0000000000000); //  0x1p1023
+
+  var u = reinterpret<u64>(x);
+  var hx = <u32>(u >> 32 & 0x7FFFFFFF);
+  var k = 0, sign_ = <i32>(u >> 63);
+  if (hx >= 0x4043687A) {
+    if (isNaN(x)) return x;
+    if (sign_) return -1;
+    if (x > o_threshold) return x * Ox1p1023;
+  }
+  var c = 0.0, t: f64;
+  if (hx > 0x3FD62E42) {
+    k = select<i32>(
+      1 - (sign_ << 1),
+      <i32>(invln2 * x + copysign<f64>(0.5, x)),
+      hx < 0x3FF0A2B2
+    );
+    t = <f64>k;
+    let hi = x - t * ln2_hi;
+    let lo = t * ln2_lo;
+    x = hi - lo;
+    c = (hi - x) - lo;
+  } else if (hx < 0x3C900000) return x;
+  var hfx = 0.5 * x;
+  var hxs = x * hfx;
+  // var r1 = 1.0 + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5))));
+  var hxq = hxs * hxs;
+  var r1 = (1.0 + hxs * Q1) + hxq * ((Q2 + hxs * Q3) + hxq * (Q4 + hxs * Q5));
+  t = 3.0 - r1 * hfx;
+  var e = hxs * ((r1 - t) / (6.0 - x * t));
+  if (k == 0) return x - (x * e - hxs);
+  e = x * (e - c) - c;
+  e -= hxs;
+  if (k == -1) return 0.5 * (x - e) - 0.5;
+  if (k == 1) {
+    if (x < -0.25) return -2.0 * (e - (x + 0.5));
+    return 1.0 + 2.0 * (x - e);
+  }
+  u = (0x3FF + k) << 52;
+  var twopk = reinterpret<f64>(u);
+  var y: f64;
+  if (k < 0 || k > 56) {
+    y = x - e + 1.0;
+    if (k == 1024) y = y * 2.0 * Ox1p1023;
+    else y = y * twopk;
+    return y - 1.0;
+  }
+  u = (0x3FF - k) << 52;
+  y = reinterpret<f64>(u);
+  if (k < 20) y = (1 - y) - e;
+  else y = 1 - (e + y);
+  return (x + y) * twopk;
+}
+
+export function log32(x: f32): f32 { // see: musl/src/math/logf.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return logf_lut(x);
+  } else {
+    const
+      ln2_hi  = reinterpret<f32>(0x3F317180), // 6.9313812256e-01f
+      ln2_lo  = reinterpret<f32>(0x3717F7D1), // 9.0580006145e-06f
+      Lg1     = reinterpret<f32>(0x3F2AAAAA), // 0xaaaaaa.0p-24f
+      Lg2     = reinterpret<f32>(0x3ECCCE13), // 0xccce13.0p-25f
+      Lg3     = reinterpret<f32>(0x3E91E9EE), // 0x91e9ee.0p-25f
+      Lg4     = reinterpret<f32>(0x3E789E26), // 0xf89e26.0p-26f
+      Ox1p25f = reinterpret<f32>(0x4C000000);
+
+    let u = reinterpret<u32>(x);
+    let k = 0;
+    if (u < 0x00800000 || <bool>(u >> 31)) {
+      if (u << 1 == 0) return -1 / (x * x);
+      if (u >> 31) return (x - x) / 0;
+      k -= 25;
+      x *= Ox1p25f;
+      u = reinterpret<u32>(x);
+    } else if (u >= 0x7F800000) {
+      return x;
+    } else if (u == 0x3F800000) {
+      return 0;
+    }
+    u += 0x3F800000 - 0x3F3504F3;
+    k += <u32>(<i32>u >> 23) - 0x7F;
+    u = (u & 0x007FFFFF) + 0x3F3504F3;
+    x = reinterpret<f32>(u);
+    let f = x - 1.0;
+    let s = f / (2.0 + f);
+    let z = s * s;
+    let w = z * z;
+    let t1 = w * (Lg2 + w * Lg4);
+    let t2 = z * (Lg1 + w * Lg3);
+    let r = t2 + t1;
+    let hfsq = <f32>0.5 * f * f;
+    let dk = <f32>k;
+    return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;
+  }
+}
+
+export function log64(x: f64): f64 { // see: musl/src/math/log.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return log64_lut(x);
+  } else {
+    const
+      ln2_hi = reinterpret<f64>(0x3FE62E42FEE00000), // 6.93147180369123816490e-01
+      ln2_lo = reinterpret<f64>(0x3DEA39EF35793C76), // 1.90821492927058770002e-10
+      Lg1    = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
+      Lg2    = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
+      Lg3    = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
+      Lg4    = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
+      Lg5    = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
+      Lg6    = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
+      Lg7    = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
+      Ox1p54 = reinterpret<f64>(0x4350000000000000); // 0x1p54
+
+    let u = reinterpret<u64>(x);
+    let hx = <u32>(u >> 32);
+    let k = 0;
+    if (hx < 0x00100000 || <bool>(hx >> 31)) {
+      if (u << 1 == 0) return -1 / (x * x);
+      if (hx >> 31)    return (x - x) / 0.0;
+      k -= 54;
+      x *= Ox1p54;
+      u = reinterpret<u64>(x);
+      hx = <u32>(u >> 32);
+    } else if (hx >= 0x7FF00000) {
+      return x;
+    } else if (hx == 0x3FF00000 && u << 32 == 0) {
+      return 0;
+    }
+    hx += 0x3FF00000 - 0x3FE6A09E;
+    k += (<i32>hx >> 20) - 0x3FF;
+    hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
+    u = <u64>hx << 32 | (u & 0xFFFFFFFF);
+    x = reinterpret<f64>(u);
+    let f = x - 1.0;
+    let hfsq = 0.5 * f * f;
+    let s = f / (2.0 + f);
+    let z = s * s;
+    let w = z * z;
+    let t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+    let t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+    let r = t2 + t1;
+    let dk = <f64>k;
+    return s * (hfsq + r) + dk * ln2_lo - hfsq + f + dk * ln2_hi;
+  }
+}
+
+export function log10_32(x: f32): f32 { // see: musl/src/math/log10f.c and SUN COPYRIGHT NOTICE above
+  const
+    ivln10hi  = reinterpret<f32>(0x3EDE6000), //  4.3432617188e-01f
+    ivln10lo  = reinterpret<f32>(0xB804EAD9), // -3.1689971365e-05f
+    log10_2hi = reinterpret<f32>(0x3E9A2080), //  3.0102920532e-01f
+    log10_2lo = reinterpret<f32>(0x355427DB), //  7.9034151668e-07f
+    Lg1       = reinterpret<f32>(0x3F2AAAAA), //  0xaaaaaa.0p-24f, 0.66666662693f
+    Lg2       = reinterpret<f32>(0x3ECCCE13), //  0xccce13.0p-25f, 0.40000972152f
+    Lg3       = reinterpret<f32>(0x3E91E9EE), //  0x91e9ee.0p-25f, 0.28498786688f
+    Lg4       = reinterpret<f32>(0x3E789E26), //  0xf89e26.0p-26f, 0.24279078841f
+    Ox1p25f   = reinterpret<f32>(0x4C000000); //  0x1p25f
+
+  var ix = reinterpret<u32>(x);
+  var k = 0;
+  if (ix < 0x00800000 || <bool>(ix >> 31)) {
+    if (ix << 1 == 0) return -1 / (x * x);
+    if (ix >> 31) return (x - x) / 0.0;
+    k -= 25;
+    x *= Ox1p25f;
+    ix = reinterpret<u32>(x);
+  } else if (ix >= 0x7F800000) {
+    return x;
+  } else if (ix == 0x3F800000) {
+    return 0;
+  }
+  ix += 0x3F800000 - 0x3F3504F3;
+  k += <i32>(ix >> 23) - 0x7F;
+  ix = (ix & 0x007FFFFF) + 0x3F3504F3;
+  x = reinterpret<f32>(ix);
+  var f = x - 1.0;
+  var s = f / (2.0 + f);
+  var z = s * s;
+  var w = z * z;
+  var t1 = w * (Lg2 + w * Lg4);
+  var t2 = z * (Lg1 + w * Lg3);
+  var r = t2 + t1;
+  var hfsq: f32 = 0.5 * f * f;
+  var hi = f - hfsq;
+  ix = reinterpret<u32>(hi);
+  ix &= 0xFFFFF000;
+  hi = reinterpret<f32>(ix);
+  var lo = f - hi - hfsq + s * (hfsq + r);
+  var dk = <f32>k;
+  return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + hi * ivln10hi + dk * log10_2hi;
+}
+
+export function log10_64(x: f64): f64 { // see: musl/src/math/log10.c and SUN COPYRIGHT NOTICE above
+  const
+    ivln10hi  = reinterpret<f64>(0x3FDBCB7B15200000), // 4.34294481878168880939e-01
+    ivln10lo  = reinterpret<f64>(0x3DBB9438CA9AADD5), // 2.50829467116452752298e-11
+    log10_2hi = reinterpret<f64>(0x3FD34413509F6000), // 3.01029995663611771306e-01
+    log10_2lo = reinterpret<f64>(0x3D59FEF311F12B36), // 3.69423907715893078616e-13
+    Lg1       = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
+    Lg2       = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
+    Lg3       = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
+    Lg4       = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
+    Lg5       = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
+    Lg6       = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
+    Lg7       = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
+    Ox1p54    = reinterpret<f64>(0x4350000000000000); // 0x1p54
+
+  var u = reinterpret<u64>(x);
+  var hx = <u32>(u >> 32);
+  var k = 0;
+  if (hx < 0x00100000 || <bool>(hx >> 31)) {
+    if (u << 1 == 0) return -1 / (x * x);
+    if (hx >> 31) return (x - x) / 0.0;
+    k -= 54;
+    x *= Ox1p54;
+    u = reinterpret<u64>(x);
+    hx = <u32>(u >> 32);
+  } else if (hx >= 0x7FF00000) {
+    return x;
+  } else if (hx == 0x3FF00000 && u << 32 == 0) {
+    return 0;
+  }
+  hx += 0x3FF00000 - 0x3FE6A09E;
+  k += <i32>(hx >> 20) - 0x3FF;
+  hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
+  u = <u64>hx << 32 | (u & 0xFFFFFFFF);
+  x = reinterpret<f64>(u);
+  var f = x - 1.0;
+  var hfsq = 0.5 * f * f;
+  var s = f / (2.0 + f);
+  var z = s * s;
+  var w = z * z;
+  var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  var r = t2 + t1;
+  var hi = f - hfsq;
+  u = reinterpret<u64>(hi);
+  u &= 0xFFFFFFFF00000000;
+  hi = reinterpret<f64>(u);
+  var lo = f - hi - hfsq + s * (hfsq + r);
+  var val_hi = hi * ivln10hi;
+  var dk = <f64>k;
+  var y = dk * log10_2hi;
+  var val_lo = dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi;
+  w = y + val_hi;
+  val_lo += (y - w) + val_hi;
+  return val_lo + w;
+}
+
+export function log1p32(x: f32): f32 { // see: musl/src/math/log1pf.c and SUN COPYRIGHT NOTICE above
+  const
+    ln2_hi = reinterpret<f32>(0x3F317180), // 6.9313812256e-01
+    ln2_lo = reinterpret<f32>(0x3717F7D1), // 9.0580006145e-06
+    Lg1    = reinterpret<f32>(0x3F2AAAAA), // 0xaaaaaa.0p-24f, 0.66666662693f
+    Lg2    = reinterpret<f32>(0x3ECCCE13), // 0xccce13.0p-25f, 0.40000972152f
+    Lg3    = reinterpret<f32>(0x3E91E9EE), // 0x91e9ee.0p-25f, 0.28498786688f
+    Lg4    = reinterpret<f32>(0x3E789E26); // 0xf89e26.0p-26f, 0.24279078841f
+
+  var ix = reinterpret<u32>(x);
+  var c: f32 = 0, f: f32 = 0;
+  var k: i32 = 1;
+  if (ix < 0x3ED413D0 || <bool>(ix >> 31)) {
+    if (ix >= 0xBF800000) {
+      if (x == -1) return x / 0.0;
+      return (x - x) / 0.0;
+    }
+    if (ix << 1 < 0x33800000 << 1) return x;
+    if (ix <= 0xBE95F619) {
+      k = 0;
+      c = 0;
+      f = x;
+    }
+  } else if (ix >= 0x7F800000) return x;
+  if (k) {
+    let uf: f32 = 1 + x;
+    let iu = reinterpret<u32>(uf);
+    iu += 0x3F800000 - 0x3F3504F3;
+    k = <i32>(iu >> 23) - 0x7F;
+    if (k < 25) {
+      c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);
+      c /= uf;
+    } else c = 0;
+    iu = (iu & 0x007FFFFF) + 0x3F3504F3;
+    f = reinterpret<f32>(iu) - 1;
+  }
+  var s = f / (2.0 + f);
+  var z = s * s;
+  var w = z * z;
+  var t1 = w * (Lg2 + w * Lg4);
+  var t2 = z * (Lg1 + w * Lg3);
+  var r = t2 + t1;
+  var hfsq: f32 = 0.5 * f * f;
+  var dk = <f32>k;
+  return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;
+}
+
+export function log1p64(x: f64): f64 { // see: musl/src/math/log1p.c and SUN COPYRIGHT NOTICE above
+  const
+    ln2_hi = reinterpret<f64>(0x3FE62E42FEE00000), // 6.93147180369123816490e-01
+    ln2_lo = reinterpret<f64>(0x3DEA39EF35793C76), // 1.90821492927058770002e-10
+    Lg1    = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
+    Lg2    = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
+    Lg3    = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
+    Lg4    = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
+    Lg5    = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
+    Lg6    = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
+    Lg7    = reinterpret<f64>(0x3FC2F112DF3E5244); // 1.479819860511658591e-01
+
+  var u = reinterpret<u64>(x);
+  var hx = <u32>(u >> 32);
+  var k = 1;
+  var c = 0.0, f = 0.0;
+  if (hx < 0x3FDA827A || <bool>(hx >> 31)) {
+    if (hx >= 0xBFF00000) {
+      if (x == -1) return x / 0.0;
+      return (x - x) / 0.0;
+    }
+    if (hx << 1 < 0x3CA00000 << 1) return x;
+    if (hx <= 0xBFD2BEC4) {
+      k = 0;
+      c = 0;
+      f = x;
+    }
+  } else if (hx >= 0x7FF00000) return x;
+  if (k) {
+    u = reinterpret<u64>(1 + x);
+    let hu = <u32>(u >> 32);
+    hu += 0x3FF00000 - 0x3FE6A09E;
+    k = <i32>(hu >> 20) - 0x3FF;
+    if (k < 54) {
+      let uf = reinterpret<f64>(u);
+      c = k >= 2 ? 1 - (uf - x) : x - (uf - 1);
+      c /= uf;
+    } else c = 0;
+    hu = (hu & 0x000FFFFF) + 0x3FE6A09E;
+    u = <u64>hu << 32 | (u & 0xFFFFFFFF);
+    f = reinterpret<f64>(u) - 1;
+  }
+  var hfsq = 0.5 * f * f;
+  var s = f / (2.0 + f);
+  var z = s * s;
+  var w = z * z;
+  var t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  var t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  var r = t2 + t1;
+  var dk = <f64>k;
+  return s * (hfsq + r) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi;
+}
+
+export function log2_32(x: f32): f32 { // see: musl/src/math/log2f.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return log2_32_lut(x);
+  } else {
+    const
+      ivln2hi = reinterpret<f32>(0x3FB8B000), //  1.4428710938e+00f
+      ivln2lo = reinterpret<f32>(0xB9389AD4), // -1.7605285393e-04
+      Lg1     = reinterpret<f32>(0x3F2AAAAA), //  0xaaaaaa.0p-24f, 0.66666662693f
+      Lg2     = reinterpret<f32>(0x3ECCCE13), //  0xccce13.0p-25f, 0.40000972152f
+      Lg3     = reinterpret<f32>(0x3E91E9EE), //  0x91e9ee.0p-25f, 0.28498786688f
+      Lg4     = reinterpret<f32>(0x3E789E26), //  0xf89e26.0p-26f, 0.24279078841f
+      Ox1p25f = reinterpret<f32>(0x4C000000); //  0x1p25f
+
+    let ix = reinterpret<u32>(x);
+    let k: i32 = 0;
+    if (ix < 0x00800000 || <bool>(ix >> 31)) {
+      if (ix << 1 == 0) return -1 / (x * x);
+      if (ix >> 31) return (x - x) / 0.0;
+      k -= 25;
+      x *= Ox1p25f;
+      ix = reinterpret<u32>(x);
+    } else if (ix >= 0x7F800000) {
+      return x;
+    } else if (ix == 0x3F800000) {
+      return 0;
+    }
+    ix += 0x3F800000 - 0x3F3504F3;
+    k += <i32>(ix >> 23) - 0x7F;
+    ix = (ix & 0x007FFFFF) + 0x3F3504F3;
+    x = reinterpret<f32>(ix);
+    let f = x - 1.0;
+    let s = f / (2.0 + f);
+    let z = s * s;
+    let w = z * z;
+    let t1 = w * (Lg2 + w * Lg4);
+    let t2 = z * (Lg1 + w * Lg3);
+    let r = t2 + t1;
+    let hfsq: f32 = 0.5 * f * f;
+    let hi = f - hfsq;
+    let u = reinterpret<u32>(hi);
+    u &= 0xFFFFF000;
+    hi = reinterpret<f32>(u);
+    let lo: f32 = f - hi - hfsq + s * (hfsq + r);
+    let dk = <f32>k;
+    return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + dk;
+  }
+}
+
+export function log2_64(x: f64): f64 { // see: musl/src/math/log2.c and SUN COPYRIGHT NOTICE above
+  if (ASC_SHRINK_LEVEL < 1) {
+    return log2_64_lut(x);
+  } else {
+    const
+      ivln2hi = reinterpret<f64>(0x3FF7154765200000), // 1.44269504072144627571e+00
+      ivln2lo = reinterpret<f64>(0x3DE705FC2EEFA200), // 1.67517131648865118353e-10
+      Lg1     = reinterpret<f64>(0x3FE5555555555593), // 6.666666666666735130e-01
+      Lg2     = reinterpret<f64>(0x3FD999999997FA04), // 3.999999999940941908e-01
+      Lg3     = reinterpret<f64>(0x3FD2492494229359), // 2.857142874366239149e-01
+      Lg4     = reinterpret<f64>(0x3FCC71C51D8E78AF), // 2.222219843214978396e-01
+      Lg5     = reinterpret<f64>(0x3FC7466496CB03DE), // 1.818357216161805012e-01
+      Lg6     = reinterpret<f64>(0x3FC39A09D078C69F), // 1.531383769920937332e-01
+      Lg7     = reinterpret<f64>(0x3FC2F112DF3E5244), // 1.479819860511658591e-01
+      Ox1p54  = reinterpret<f64>(0x4350000000000000); // 1p54
+
+    let u = reinterpret<u64>(x);
+    let hx = <u32>(u >> 32);
+    let k = 0;
+    if (hx < 0x00100000 || <bool>(hx >> 31)) {
+      if (u << 1 == 0) return -1 / (x * x);
+      if (hx >> 31) return (x - x) / 0.0;
+      k -= 54;
+      x *= Ox1p54;
+      u = reinterpret<u64>(x);
+      hx = <u32>(u >> 32);
+    } else if (hx >= 0x7FF00000) {
+      return x;
+    } else if (hx == 0x3FF00000 && u << 32 == 0) {
+      return 0;
+    }
+    hx += 0x3FF00000 - 0x3FE6A09E;
+    k += <i32>(hx >> 20) - 0x3FF;
+    hx = (hx & 0x000FFFFF) + 0x3FE6A09E;
+    u = <u64>hx << 32 | (u & 0xFFFFFFFF);
+    x = reinterpret<f64>(u);
+    let f = x - 1.0;
+    let hfsq = 0.5 * f * f;
+    let s = f / (2.0 + f);
+    let z = s * s;
+    let w = z * z;
+    let t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+    let t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+    let r = t2 + t1;
+    let hi = f - hfsq;
+    u = reinterpret<u64>(hi);
+    u &= 0xFFFFFFFF00000000;
+    hi = reinterpret<f64>(u);
+    let lo = f - hi - hfsq + s * (hfsq + r);
+    let val_hi = hi * ivln2hi;
+    let val_lo = (lo + hi) * ivln2lo + lo * ivln2hi;
+    let y = <f64>k;
+    w = y + val_hi;
+    val_lo += (y - w) + val_hi;
+    val_hi = w;
+    return val_lo + val_hi;
+  }
+}
+
+export function mod32(x: f32, y: f32): f32 { // see: musl/src/math/fmodf.c
+  if (abs<f32>(y) == 1.0) {
+    // x % 1, x % -1  ==>  sign(x) * abs(x - 1.0 * trunc(x / 1.0))
+    // TODO: move this rule to compiler's optimization pass.
+    // It could be apply for any x % C_pot, where "C_pot" is pow of two const.
+    return copysign<f32>(x - trunc<f32>(x), x);
+  }
+  var ux = reinterpret<u32>(x);
+  var uy = reinterpret<u32>(y);
+  var ex = <i32>(ux >> 23 & 0xFF);
+  var ey = <i32>(uy >> 23 & 0xFF);
+  var sm = ux & 0x80000000;
+  var uy1 = uy << 1;
+  if (uy1 == 0 || ex == 0xFF || isNaN<f32>(y)) {
+    let m = x * y;
+    return m / m;
+  }
+  var ux1 = ux << 1;
+  if (ux1 <= uy1) {
+    return x * f32(ux1 != uy1);
+  }
+  if (!ex) {
+    ex -= clz<u32>(ux << 9);
+    ux <<= 1 - ex;
+  } else {
+    ux &= <u32>-1 >> 9;
+    ux |= 1 << 23;
+  }
+  if (!ey) {
+    ey -= clz<u32>(uy << 9);
+    uy <<= 1 - ey;
+  } else {
+    uy &= <u32>-1 >> 9;
+    uy |= 1 << 23;
+  }
+  while (ex > ey) {
+    if (ux >= uy) {
+      if (ux == uy) return 0 * x;
+      ux -= uy;
+    }
+    ux <<= 1;
+    --ex;
+  }
+  if (ux >= uy) {
+    if (ux == uy) return 0 * x;
+    ux -= uy;
+  }
+  // for (; !(ux >> 23); ux <<= 1) --ex;
+  var shift = <i32>clz<u32>(ux << 8);
+  ex -= shift;
+  ux <<= shift;
+  if (ex > 0) {
+    ux -= 1 << 23;
+    ux |= <u32>ex << 23;
+  } else {
+    ux >>= -ex + 1;
+  }
+  return reinterpret<f32>(ux | sm);
+}
+
+export function mod64(x: f64, y: f64): f64 { // see: musl/src/math/fmod.c
+  if (abs<f64>(y) == 1.0) {
+    // x % 1, x % -1  ==>  sign(x) * abs(x - 1.0 * trunc(x / 1.0))
+    // TODO: move this rule to compiler's optimization pass.
+    // It could be apply for any x % C_pot, where "C_pot" is pow of two const.
+    return copysign<f64>(x - trunc<f64>(x), x);
+  }
+  var ux = reinterpret<u64>(x);
+  var uy = reinterpret<u64>(y);
+  var ex = <i64>(ux >> 52 & 0x7FF);
+  var ey = <i64>(uy >> 52 & 0x7FF);
+  var sx = ux >> 63;
+  var uy1 = uy << 1;
+  if (uy1 == 0 || ex == 0x7FF || isNaN<f64>(y)) {
+    let m = x * y;
+    return m / m;
+  }
+  var ux1 = ux << 1;
+  if (ux1 <= uy1) {
+    return x * f64(ux1 != uy1);
+  }
+  if (!ex) {
+    ex -= clz<i64>(ux << 12);
+    ux <<= 1 - ex;
+  } else {
+    ux &= <u64>-1 >> 12;
+    ux |= 1 << 52;
+  }
+  if (!ey) {
+    ey -= clz<i64>(uy << 12);
+    uy <<= 1 - ey;
+  } else {
+    uy &= <u64>-1 >> 12;
+    uy |= 1 << 52;
+  }
+  while (ex > ey) {
+    if (ux >= uy) {
+      if (ux == uy) return 0 * x;
+      ux -= uy;
+    }
+    ux <<= 1;
+    --ex;
+  }
+  if (ux >= uy) {
+    if (ux == uy) return 0 * x;
+    ux -= uy;
+  }
+  // for (; !(ux >> 52); ux <<= 1) --ex;
+  var shift = clz<i64>(ux << 11);
+  ex -= shift;
+  ux <<= shift;
+  if (ex > 0) {
+    ux -= 1 << 52;
+    ux |= ex << 52;
+  } else {
+    ux >>= -ex + 1;
+  }
+  return reinterpret<f64>(ux | (sx << 63));
 }
diff --git a/std/assembly/util/string.ts b/std/assembly/util/string.ts
index f29cd420fd..b161a486f6 100644
--- a/std/assembly/util/string.ts
+++ b/std/assembly/util/string.ts
@@ -1,5 +1,5 @@
 import { itoa32, utoa32, itoa64, utoa64, dtoa, itoa_buffered, dtoa_buffered, MAX_DOUBLE_LENGTH } from "./number";
-import { ipow32 } from "../math";
+import { scalbn64, ipow32 } from "../util/math";
 
 // All tables are stored as two staged lookup tables (static tries)
 // because the full range of Unicode symbols can't be efficiently
@@ -1092,7 +1092,7 @@ function scaledown(significand: u64, exp: i32): f64 {
   significand = (q << s) + <u64>(reinterpret<f64>(reinterpret<u64>(<f64>r) + (s << 52)) / <f64>b);
   shift -= s;
 
-  return NativeMath.scalbn(<f64>significand, <i32>shift);
+  return scalbn64(<f64>significand, <i32>shift);
 }
 
 // Adopted from metallic lib:
@@ -1111,7 +1111,7 @@ function scaleup(significand: u64, exp: i32): f64 {
   }
   significand = fixmul(significand, <u32>ipow32(5, exp));
   shift = __fixmulShift;
-  return NativeMath.scalbn(<f64>significand, <i32>shift);
+  return scalbn64(<f64>significand, <i32>shift);
 }
 
 // Adopted from metallic lib:
diff --git a/std/portable/index.d.ts b/std/portable/index.d.ts
index fb21ba21b3..fb1882e745 100644
--- a/std/portable/index.d.ts
+++ b/std/portable/index.d.ts
@@ -304,7 +304,6 @@ declare function bswap16<T = i16 | u16 | i32 | u32>(value: T): T;
 
 // Standard library
 
-declare const Mathf: typeof Math;
 declare const JSMath: typeof Math;
 
 declare interface StringConstructor {
diff --git a/tests/compiler/binary.debug.wat b/tests/compiler/binary.debug.wat
index ec74a8dcf0..a118312888 100644
--- a/tests/compiler/binary.debug.wat
+++ b/tests/compiler/binary.debug.wat
@@ -22,7 +22,7 @@
  (elem $0 (i32.const 1))
  (export "memory" (memory $0))
  (start $~start)
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -241,7 +241,7 @@
   end
   local.get $2
  )
- (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/pow64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 f64)
   (local $3 f64)
   (local $4 i32)
@@ -342,7 +342,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/pow_lut|inlined.0 (result f64)
+  block $~lib/util/math/pow64_lut|inlined.0 (result f64)
    local.get $0
    local.set $3
    local.get $1
@@ -403,14 +403,14 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -430,7 +430,7 @@
       local.get $3
       local.get $2
       f64.add
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -439,7 +439,7 @@
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -455,12 +455,12 @@
      i32.eq
      if
       f64.const 0
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $2
      local.get $2
      f64.mul
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     local.set $9
@@ -483,7 +483,7 @@
      i64.shr_u
      i32.wrap_i64
      if (result i32)
-      block $~lib/util/math/checkint|inlined.0 (result i32)
+      block $~lib/util/math/checkint64|inlined.0 (result i32)
        local.get $6
        local.set $9
        local.get $9
@@ -497,7 +497,7 @@
        i64.lt_u
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $11
        i64.const 1023
@@ -506,7 +506,7 @@
        i64.gt_u
        if
         i32.const 2
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i64.const 1
        i64.const 1023
@@ -525,7 +525,7 @@
        i64.ne
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $9
        local.get $11
@@ -534,7 +534,7 @@
        i64.ne
        if
         i32.const 1
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i32.const 2
       end
@@ -560,7 +560,7 @@
      else
       local.get $10
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     i64.const 63
@@ -568,7 +568,7 @@
     i64.const 0
     i64.ne
     if
-     block $~lib/util/math/checkint|inlined.1 (result i32)
+     block $~lib/util/math/checkint64|inlined.1 (result i32)
       local.get $6
       local.set $9
       local.get $9
@@ -582,7 +582,7 @@
       i64.lt_u
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $11
       i64.const 1023
@@ -591,7 +591,7 @@
       i64.gt_u
       if
        i32.const 2
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i64.const 1
       i64.const 1023
@@ -610,7 +610,7 @@
       i64.ne
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $9
       local.get $11
@@ -619,7 +619,7 @@
       i64.ne
       if
        i32.const 1
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i32.const 2
      end
@@ -635,7 +635,7 @@
       local.get $3
       f64.sub
       f64.div
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $12
      i32.const 1
@@ -668,7 +668,7 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $8
      i64.const 2047
@@ -677,7 +677,7 @@
      i64.lt_u
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
@@ -691,7 +691,7 @@
      else
       f64.const 0
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $7
     i64.const 0
@@ -940,7 +940,7 @@
    f64.mul
    f64.add
    local.set $35
-   block $~lib/util/math/exp_inline|inlined.0 (result f64)
+   block $~lib/util/math/exp64_inline|inlined.0 (result f64)
     local.get $36
     local.set $15
     local.get $35
@@ -973,7 +973,7 @@
       f64.const 1
       local.get $12
       select
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      local.get $39
      i32.const 1033
@@ -1015,7 +1015,7 @@
        local.get $17
        f64.mul
       end
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      i32.const 0
      local.set $39
@@ -1211,7 +1211,7 @@
       f64.const 2.2250738585072014e-308
       f64.mul
      end
-     br $~lib/util/math/exp_inline|inlined.0
+     br $~lib/util/math/exp64_inline|inlined.0
     end
     local.get $11
     f64.reinterpret_i64
@@ -1225,7 +1225,7 @@
   end
   return
  )
- (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/mod32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -1476,7 +1476,7 @@
   i32.or
   f32.reinterpret_i32
  )
- (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/pow32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 f32)
   (local $3 f32)
   (local $4 i32)
@@ -1557,7 +1557,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/powf_lut|inlined.0 (result f32)
+  block $~lib/util/math/pow32_lut|inlined.0 (result f32)
    local.get $0
    local.set $3
    local.get $1
@@ -1606,14 +1606,14 @@
      i32.eq
      if
       f32.const 1
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1065353216
      i32.eq
      if
       f32.const nan:0x400000
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -1637,7 +1637,7 @@
       local.get $3
       local.get $2
       f32.add
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -1648,7 +1648,7 @@
      i32.eq
      if
       f32.const nan:0x400000
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -1664,12 +1664,12 @@
      i32.eq
      if
       f32.const 0
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $2
      local.get $2
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $5
     local.set $8
@@ -1693,7 +1693,7 @@
      i32.const 31
      i32.shr_u
      if (result i32)
-      block $~lib/util/math/checkintf|inlined.0 (result i32)
+      block $~lib/util/math/checkint32|inlined.0 (result i32)
        local.get $6
        local.set $8
        local.get $8
@@ -1707,7 +1707,7 @@
        i32.lt_u
        if
         i32.const 0
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        local.get $10
        i32.const 127
@@ -1716,7 +1716,7 @@
        i32.gt_u
        if
         i32.const 2
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        i32.const 1
        i32.const 127
@@ -1733,14 +1733,14 @@
        i32.and
        if
         i32.const 0
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        local.get $8
        local.get $10
        i32.and
        if
         i32.const 1
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        i32.const 2
       end
@@ -1764,13 +1764,13 @@
      else
       local.get $9
      end
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $5
     i32.const 31
     i32.shr_u
     if
-     block $~lib/util/math/checkintf|inlined.1 (result i32)
+     block $~lib/util/math/checkint32|inlined.1 (result i32)
       local.get $6
       local.set $8
       local.get $8
@@ -1784,7 +1784,7 @@
       i32.lt_u
       if
        i32.const 0
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       local.get $10
       i32.const 127
@@ -1793,7 +1793,7 @@
       i32.gt_u
       if
        i32.const 2
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       i32.const 1
       i32.const 127
@@ -1810,14 +1810,14 @@
       i32.and
       if
        i32.const 0
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       local.get $8
       local.get $10
       i32.and
       if
        i32.const 1
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       i32.const 2
      end
@@ -1833,7 +1833,7 @@
       local.get $3
       f32.sub
       f32.div
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $10
      i32.const 1
@@ -1997,7 +1997,7 @@
      select
      local.get $9
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $21
     f64.const -150
@@ -2017,7 +2017,7 @@
      select
      local.get $9
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
    end
    local.get $21
@@ -2091,7 +2091,7 @@
   end
   return
  )
- (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/mod64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -2395,7 +2395,7 @@
   drop
   global.get $binary/i
   i32.const 1
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   drop
   global.get $binary/i
   i32.const 1
@@ -2467,7 +2467,7 @@
   global.set $binary/i
   global.get $binary/i
   i32.const 1
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   global.set $binary/i
   global.get $binary/i
   i32.const 1
@@ -2580,7 +2580,7 @@
   global.get $binary/I
   f64.convert_i64_s
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   drop
   global.get $binary/I
   i64.const 1
@@ -2653,7 +2653,7 @@
   global.get $binary/I
   f64.convert_i64_s
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   i64.trunc_sat_f64_s
   global.set $binary/I
   global.get $binary/I
@@ -2762,11 +2762,11 @@
   drop
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   drop
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   drop
   global.get $binary/f
   f32.const 1
@@ -2810,11 +2810,11 @@
   global.set $binary/f
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   global.set $binary/f
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   global.set $binary/f
   global.get $binary/f
   f32.const 1
@@ -2830,11 +2830,11 @@
   global.set $binary/f
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   global.set $binary/f
   global.get $binary/f
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   global.set $binary/f
   global.get $binary/F
   f64.const 1
@@ -2878,11 +2878,11 @@
   drop
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.mod
+  call $~lib/util/math/mod64
   drop
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   drop
   global.get $binary/F
   f64.const 1
@@ -2926,11 +2926,11 @@
   global.set $binary/F
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.mod
+  call $~lib/util/math/mod64
   global.set $binary/F
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   global.set $binary/F
   global.get $binary/F
   f64.const 1
@@ -2946,11 +2946,11 @@
   global.set $binary/F
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.mod
+  call $~lib/util/math/mod64
   global.set $binary/F
   global.get $binary/F
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   global.set $binary/F
  )
  (func $~start
diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat
index 6c073c2f01..6fa036930f 100644
--- a/tests/compiler/issues/2322/index.release.wat
+++ b/tests/compiler/issues/2322/index.release.wat
@@ -175,37 +175,37 @@
    local.get $4
    i32.store offset=4
   end
-  local.get $2
+  local.get $1
+  local.get $0
   local.get $3
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   i32.load offset=96
-  local.get $1
   i32.eq
   if
-   local.get $2
+   local.get $0
    local.get $3
    i32.const 4
    i32.shl
+   local.get $2
    i32.add
    i32.const 2
    i32.shl
-   local.get $0
    i32.add
    local.get $5
    i32.store offset=96
    local.get $5
    i32.eqz
    if
+    local.get $0
     local.get $3
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     local.tee $1
     i32.load offset=4
@@ -356,12 +356,12 @@
    call $~lib/builtins/abort
    unreachable
   end
-  local.get $2
+  local.get $4
   local.get $1
   i32.const 4
   i32.add
+  local.get $2
   i32.add
-  local.get $4
   i32.ne
   if
    i32.const 0
@@ -422,14 +422,14 @@
    call $~lib/builtins/abort
    unreachable
   end
-  local.get $2
+  local.get $0
   local.get $5
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   i32.load offset=96
   local.set $3
@@ -445,14 +445,14 @@
    local.get $1
    i32.store offset=4
   end
-  local.get $2
+  local.get $0
   local.get $5
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   local.get $1
   i32.store offset=96
@@ -464,10 +464,10 @@
   i32.shl
   i32.or
   i32.store
+  local.get $0
   local.get $5
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   local.tee $0
   local.get $0
@@ -504,11 +504,11 @@
   i32.load offset=1568
   local.tee $4
   if
-   local.get $1
    local.get $4
    i32.const 4
    i32.add
-   i32.lt_u
+   local.get $1
+   i32.gt_u
    if
     i32.const 0
     i32.const 1392
@@ -517,10 +517,10 @@
     call $~lib/builtins/abort
     unreachable
    end
-   local.get $4
    local.get $1
    i32.const 16
    i32.sub
+   local.get $4
    i32.eq
    if
     local.get $4
@@ -532,11 +532,11 @@
     local.set $1
    end
   else
-   local.get $1
    local.get $0
    i32.const 1572
    i32.add
-   i32.lt_u
+   local.get $1
+   i32.gt_u
    if
     i32.const 0
     i32.const 1392
@@ -575,10 +575,10 @@
   local.get $1
   i32.const 0
   i32.store offset=8
-  local.get $2
   local.get $1
   i32.const 4
   i32.add
+  local.get $2
   i32.add
   local.tee $2
   i32.const 2
@@ -635,10 +635,10 @@
      i32.const 16
      i32.lt_u
      if
-      local.get $1
       local.get $0
       i32.const 4
       i32.shl
+      local.get $1
       i32.add
       i32.const 2
       i32.shl
@@ -699,25 +699,25 @@
     i32.and
     local.set $0
     loop $while-continue|1
-     global.get $~lib/rt/itcms/toSpace
      local.get $0
+     global.get $~lib/rt/itcms/toSpace
      i32.ne
      if
       local.get $0
       global.set $~lib/rt/itcms/iter
+      local.get $1
       local.get $0
       i32.load offset=4
       i32.const 3
       i32.and
-      local.get $1
       i32.ne
       if
        local.get $0
-       local.get $1
        local.get $0
        i32.load offset=4
        i32.const -4
        i32.and
+       local.get $1
        i32.or
        i32.store offset=4
        i32.const 0
@@ -774,23 +774,23 @@
      i32.and
      local.set $0
      loop $while-continue|2
-      global.get $~lib/rt/itcms/toSpace
       local.get $0
+      global.get $~lib/rt/itcms/toSpace
       i32.ne
       if
+       local.get $1
        local.get $0
        i32.load offset=4
        i32.const 3
        i32.and
-       local.get $1
        i32.ne
        if
         local.get $0
-        local.get $1
         local.get $0
         i32.load offset=4
         i32.const -4
         i32.and
+        local.get $1
         i32.or
         i32.store offset=4
         local.get $0
@@ -943,11 +943,11 @@
   i32.and
   local.tee $1
   if (result i32)
+   local.get $0
    local.get $1
    i32.ctz
    i32.const 2
    i32.shl
-   local.get $0
    i32.add
    i32.load offset=96
   else
@@ -957,12 +957,12 @@
    i32.and
    local.tee $1
    if (result i32)
+    local.get $0
     local.get $1
     i32.ctz
     local.tee $2
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     i32.load offset=4
     local.tee $1
@@ -975,6 +975,7 @@
      call $~lib/builtins/abort
      unreachable
     end
+    local.get $0
     local.get $1
     i32.ctz
     local.get $2
@@ -983,7 +984,6 @@
     i32.add
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     i32.load offset=96
    else
@@ -1277,19 +1277,19 @@
    i32.load offset=8
    local.set $3
    local.get $0
-   local.get $2
    global.get $~lib/rt/itcms/white
+   local.get $2
    i32.or
    i32.store offset=4
    local.get $0
    local.get $3
    i32.store offset=8
    local.get $3
+   local.get $0
    local.get $3
    i32.load offset=4
    i32.const 3
    i32.and
-   local.get $0
    i32.or
    i32.store offset=4
    local.get $2
@@ -1350,8 +1350,8 @@
   i32.and
   i32.eq
   if
-   global.get $~lib/rt/itcms/iter
    local.get $1
+   global.get $~lib/rt/itcms/iter
    i32.eq
    if
     local.get $1
@@ -1411,11 +1411,11 @@
     local.get $2
     i32.store offset=8
     local.get $2
+    local.get $0
     local.get $2
     i32.load offset=4
     i32.const 3
     i32.and
-    local.get $0
     i32.or
     i32.store offset=4
    end
@@ -1429,10 +1429,10 @@
    if (result i32)
     i32.const 1
    else
+    local.get $0
     i32.const 1440
     i32.load
-    local.get $0
-    i32.lt_u
+    i32.gt_u
     if
      i32.const 1248
      i32.const 1312
@@ -1469,11 +1469,11 @@
    local.get $0
    i32.store offset=8
    local.get $0
+   local.get $1
    local.get $0
    i32.load offset=4
    i32.const 3
    i32.and
-   local.get $1
    i32.or
    i32.store offset=4
    local.get $2
diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat
index 5185290586..0b7000159b 100644
--- a/tests/compiler/resolve-binary.debug.wat
+++ b/tests/compiler/resolve-binary.debug.wat
@@ -2753,7 +2753,7 @@
   local.get $1
   call $~lib/util/number/itoa32
  )
- (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/pow64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 f64)
   (local $3 f64)
   (local $4 i32)
@@ -2854,7 +2854,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/pow_lut|inlined.0 (result f64)
+  block $~lib/util/math/pow64_lut|inlined.0 (result f64)
    local.get $0
    local.set $3
    local.get $1
@@ -2915,14 +2915,14 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -2942,7 +2942,7 @@
       local.get $3
       local.get $2
       f64.add
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -2951,7 +2951,7 @@
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -2967,12 +2967,12 @@
      i32.eq
      if
       f64.const 0
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $2
      local.get $2
      f64.mul
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     local.set $9
@@ -2995,7 +2995,7 @@
      i64.shr_u
      i32.wrap_i64
      if (result i32)
-      block $~lib/util/math/checkint|inlined.0 (result i32)
+      block $~lib/util/math/checkint64|inlined.0 (result i32)
        local.get $6
        local.set $9
        local.get $9
@@ -3009,7 +3009,7 @@
        i64.lt_u
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $11
        i64.const 1023
@@ -3018,7 +3018,7 @@
        i64.gt_u
        if
         i32.const 2
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i64.const 1
        i64.const 1023
@@ -3037,7 +3037,7 @@
        i64.ne
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $9
        local.get $11
@@ -3046,7 +3046,7 @@
        i64.ne
        if
         i32.const 1
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i32.const 2
       end
@@ -3072,7 +3072,7 @@
      else
       local.get $10
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     i64.const 63
@@ -3080,7 +3080,7 @@
     i64.const 0
     i64.ne
     if
-     block $~lib/util/math/checkint|inlined.1 (result i32)
+     block $~lib/util/math/checkint64|inlined.1 (result i32)
       local.get $6
       local.set $9
       local.get $9
@@ -3094,7 +3094,7 @@
       i64.lt_u
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $11
       i64.const 1023
@@ -3103,7 +3103,7 @@
       i64.gt_u
       if
        i32.const 2
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i64.const 1
       i64.const 1023
@@ -3122,7 +3122,7 @@
       i64.ne
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $9
       local.get $11
@@ -3131,7 +3131,7 @@
       i64.ne
       if
        i32.const 1
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i32.const 2
      end
@@ -3147,7 +3147,7 @@
       local.get $3
       f64.sub
       f64.div
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $12
      i32.const 1
@@ -3180,7 +3180,7 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $8
      i64.const 2047
@@ -3189,7 +3189,7 @@
      i64.lt_u
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
@@ -3203,7 +3203,7 @@
      else
       f64.const 0
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $7
     i64.const 0
@@ -3452,7 +3452,7 @@
    f64.mul
    f64.add
    local.set $35
-   block $~lib/util/math/exp_inline|inlined.0 (result f64)
+   block $~lib/util/math/exp64_inline|inlined.0 (result f64)
     local.get $36
     local.set $15
     local.get $35
@@ -3485,7 +3485,7 @@
       f64.const 1
       local.get $12
       select
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      local.get $39
      i32.const 1033
@@ -3527,7 +3527,7 @@
        local.get $17
        f64.mul
       end
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      i32.const 0
      local.set $39
@@ -3723,7 +3723,7 @@
       f64.const 2.2250738585072014e-308
       f64.mul
      end
-     br $~lib/util/math/exp_inline|inlined.0
+     br $~lib/util/math/exp64_inline|inlined.0
     end
     local.get $11
     f64.reinterpret_i64
@@ -4992,7 +4992,7 @@
   local.get $0
   call $~lib/util/number/dtoa
  )
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -5667,7 +5667,7 @@
   global.set $resolve-binary/f
   global.get $resolve-binary/f
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   global.set $resolve-binary/f
   global.get $resolve-binary/f
   i32.const 0
@@ -6051,7 +6051,7 @@
   end
   i32.const 2
   i32.const 2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 10
   call $~lib/number/I32#toString
   local.set $0
@@ -6077,7 +6077,7 @@
   end
   f64.const 2
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   i32.const 0
   call $~lib/number/F64#toString
   local.set $0
@@ -6103,7 +6103,7 @@
   end
   f64.const 2
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   i32.const 0
   call $~lib/number/F64#toString
   local.set $0
diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat
index c1056b97a9..ef22c1a601 100644
--- a/tests/compiler/return-unreachable.release.wat
+++ b/tests/compiler/return-unreachable.release.wat
@@ -90,8 +90,8 @@
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
-  global.get $~lib/rt/itcms/iter
   local.get $0
+  global.get $~lib/rt/itcms/iter
   i32.eq
   if
    local.get $0
@@ -151,11 +151,11 @@
    local.get $2
    i32.store offset=8
    local.get $2
+   local.get $1
    local.get $2
    i32.load offset=4
    i32.const 3
    i32.and
-   local.get $1
    i32.or
    i32.store offset=4
   end
@@ -169,10 +169,10 @@
   if (result i32)
    i32.const 1
   else
+   local.get $1
    i32.const 1536
    i32.load
-   local.get $1
-   i32.lt_u
+   i32.gt_u
    if
     i32.const 1344
     i32.const 1408
@@ -195,23 +195,23 @@
   i32.load offset=8
   local.set $1
   local.get $0
-  local.get $2
   global.get $~lib/rt/itcms/white
   i32.eqz
   i32.const 2
   local.get $3
   select
+  local.get $2
   i32.or
   i32.store offset=4
   local.get $0
   local.get $1
   i32.store offset=8
   local.get $1
+  local.get $0
   local.get $1
   i32.load offset=4
   i32.const 3
   i32.and
-  local.get $0
   i32.or
   i32.store offset=4
   local.get $2
@@ -314,37 +314,37 @@
    local.get $4
    i32.store offset=4
   end
-  local.get $2
+  local.get $1
+  local.get $0
   local.get $3
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   i32.load offset=96
-  local.get $1
   i32.eq
   if
-   local.get $2
+   local.get $0
    local.get $3
    i32.const 4
    i32.shl
+   local.get $2
    i32.add
    i32.const 2
    i32.shl
-   local.get $0
    i32.add
    local.get $5
    i32.store offset=96
    local.get $5
    i32.eqz
    if
+    local.get $0
     local.get $3
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     local.tee $1
     i32.load offset=4
@@ -495,12 +495,12 @@
    call $~lib/builtins/abort
    unreachable
   end
-  local.get $2
+  local.get $4
   local.get $1
   i32.const 4
   i32.add
+  local.get $2
   i32.add
-  local.get $4
   i32.ne
   if
    i32.const 0
@@ -561,14 +561,14 @@
    call $~lib/builtins/abort
    unreachable
   end
-  local.get $2
+  local.get $0
   local.get $5
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   i32.load offset=96
   local.set $3
@@ -584,14 +584,14 @@
    local.get $1
    i32.store offset=4
   end
-  local.get $2
+  local.get $0
   local.get $5
   i32.const 4
   i32.shl
+  local.get $2
   i32.add
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   local.get $1
   i32.store offset=96
@@ -603,10 +603,10 @@
   i32.shl
   i32.or
   i32.store
+  local.get $0
   local.get $5
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   local.tee $0
   local.get $0
@@ -643,11 +643,11 @@
   i32.load offset=1568
   local.tee $4
   if
-   local.get $1
    local.get $4
    i32.const 4
    i32.add
-   i32.lt_u
+   local.get $1
+   i32.gt_u
    if
     i32.const 0
     i32.const 1488
@@ -656,10 +656,10 @@
     call $~lib/builtins/abort
     unreachable
    end
-   local.get $4
    local.get $1
    i32.const 16
    i32.sub
+   local.get $4
    i32.eq
    if
     local.get $4
@@ -671,11 +671,11 @@
     local.set $1
    end
   else
-   local.get $1
    local.get $0
    i32.const 1572
    i32.add
-   i32.lt_u
+   local.get $1
+   i32.gt_u
    if
     i32.const 0
     i32.const 1488
@@ -714,10 +714,10 @@
   local.get $1
   i32.const 0
   i32.store offset=8
-  local.get $2
   local.get $1
   i32.const 4
   i32.add
+  local.get $2
   i32.add
   local.tee $2
   i32.const 2
@@ -774,10 +774,10 @@
      i32.const 16
      i32.lt_u
      if
-      local.get $1
       local.get $0
       i32.const 4
       i32.shl
+      local.get $1
       i32.add
       i32.const 2
       i32.shl
@@ -838,25 +838,25 @@
     i32.and
     local.set $0
     loop $while-continue|1
-     global.get $~lib/rt/itcms/toSpace
      local.get $0
+     global.get $~lib/rt/itcms/toSpace
      i32.ne
      if
       local.get $0
       global.set $~lib/rt/itcms/iter
+      local.get $1
       local.get $0
       i32.load offset=4
       i32.const 3
       i32.and
-      local.get $1
       i32.ne
       if
        local.get $0
-       local.get $1
        local.get $0
        i32.load offset=4
        i32.const -4
        i32.and
+       local.get $1
        i32.or
        i32.store offset=4
        i32.const 0
@@ -913,23 +913,23 @@
      i32.and
      local.set $0
      loop $while-continue|2
-      global.get $~lib/rt/itcms/toSpace
       local.get $0
+      global.get $~lib/rt/itcms/toSpace
       i32.ne
       if
+       local.get $1
        local.get $0
        i32.load offset=4
        i32.const 3
        i32.and
-       local.get $1
        i32.ne
        if
         local.get $0
-        local.get $1
         local.get $0
         i32.load offset=4
         i32.const -4
         i32.and
+        local.get $1
         i32.or
         i32.store offset=4
         local.get $0
@@ -1085,13 +1085,13 @@
    i32.shr_u
   else
    i32.const 31
+   local.get $1
    i32.const 1
    i32.const 27
    local.get $1
    i32.clz
    i32.sub
    i32.shl
-   local.get $1
    i32.add
    i32.const 1
    i32.sub
@@ -1131,10 +1131,10 @@
    call $~lib/builtins/abort
    unreachable
   end
+  local.get $0
   local.get $2
   i32.const 2
   i32.shl
-  local.get $0
   i32.add
   i32.load offset=4
   i32.const -1
@@ -1143,6 +1143,7 @@
   i32.and
   local.tee $1
   if (result i32)
+   local.get $0
    local.get $1
    i32.ctz
    local.get $2
@@ -1151,7 +1152,6 @@
    i32.add
    i32.const 2
    i32.shl
-   local.get $0
    i32.add
    i32.load offset=96
   else
@@ -1165,12 +1165,12 @@
    i32.and
    local.tee $1
    if (result i32)
+    local.get $0
     local.get $1
     i32.ctz
     local.tee $1
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     i32.load offset=4
     local.tee $2
@@ -1183,6 +1183,7 @@
      call $~lib/builtins/abort
      unreachable
     end
+    local.get $0
     local.get $2
     i32.ctz
     local.get $1
@@ -1191,7 +1192,6 @@
     i32.add
     i32.const 2
     i32.shl
-    local.get $0
     i32.add
     i32.load offset=96
    else
@@ -1312,6 +1312,7 @@
    i32.sub
    i32.ne
    i32.shl
+   local.get $5
    i32.const 1
    i32.const 27
    local.get $5
@@ -1320,7 +1321,6 @@
    i32.shl
    i32.const 1
    i32.sub
-   local.get $5
    i32.add
    local.get $5
    local.get $5
@@ -1373,12 +1373,12 @@
     unreachable
    end
   end
+  local.get $5
   local.get $2
   i32.load
   i32.const -4
   i32.and
-  local.get $5
-  i32.lt_u
+  i32.gt_u
   if
    i32.const 0
    i32.const 1488
@@ -1416,16 +1416,16 @@
   i32.ge_u
   if
    local.get $2
+   local.get $5
    local.get $3
    i32.const 2
    i32.and
-   local.get $5
    i32.or
    i32.store
-   local.get $5
    local.get $2
    i32.const 4
    i32.add
+   local.get $5
    i32.add
    local.tee $3
    local.get $6
@@ -1469,19 +1469,19 @@
   i32.load offset=8
   local.set $3
   local.get $2
-  global.get $~lib/rt/itcms/white
   local.get $1
+  global.get $~lib/rt/itcms/white
   i32.or
   i32.store offset=4
   local.get $2
   local.get $3
   i32.store offset=8
   local.get $3
+  local.get $2
   local.get $3
   i32.load offset=4
   i32.const 3
   i32.and
-  local.get $2
   i32.or
   i32.store offset=4
   local.get $1
diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat
index a925fa103f..830a7e9ea7 100644
--- a/tests/compiler/std/array.debug.wat
+++ b/tests/compiler/std/array.debug.wat
@@ -56,8 +56,6 @@
  (global $~argumentsLength (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))
- (global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
- (global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
  (global $~lib/math/random_seeded (mut i32) (i32.const 0))
  (global $std/array/charset i32 (i32.const 7136))
  (global $std/array/inputStabArr (mut i32) (i32.const 0))
@@ -3181,7 +3179,6 @@
   (local $3 i32)
   (local $4 i32)
   (local $5 f32)
-  (local $6 f64)
   local.get $2
   i32.eqz
   if
@@ -3235,30 +3232,46 @@
      if
       br $for-continue|0
      end
-     local.get $0
-     local.get $3
-     call $~lib/array/Array<f32>#__get
-     f64.promote_f32
-     local.set $6
-     local.get $6
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i64.const 0
-     i64.ne
+     block $~lib/math/NativeMath.signbit<f32>|inlined.0 (result i32)
+      local.get $0
+      local.get $3
+      call $~lib/array/Array<f32>#__get
+      local.set $5
+      i32.const 0
+      drop
+      i32.const 1
+      drop
+      i32.const 4
+      i32.const 4
+      i32.eq
+      drop
+      local.get $5
+      i32.reinterpret_f32
+      i32.const 31
+      i32.shr_u
+      br $~lib/math/NativeMath.signbit<f32>|inlined.0
+     end
      i32.const 0
      i32.ne
-     local.get $1
-     local.get $3
-     call $~lib/array/Array<f32>#__get
-     f64.promote_f32
-     local.set $6
-     local.get $6
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i64.const 0
-     i64.ne
+     block $~lib/math/NativeMath.signbit<f32>|inlined.1 (result i32)
+      local.get $1
+      local.get $3
+      call $~lib/array/Array<f32>#__get
+      local.set $5
+      i32.const 0
+      drop
+      i32.const 1
+      drop
+      i32.const 4
+      i32.const 4
+      i32.eq
+      drop
+      local.get $5
+      i32.reinterpret_f32
+      i32.const 31
+      i32.shr_u
+      br $~lib/math/NativeMath.signbit<f32>|inlined.1
+     end
      i32.const 0
      i32.ne
      i32.ne
@@ -5715,7 +5728,7 @@
   local.get $1
   i32.add
  )
- (func $~lib/math/murmurHash3 (param $0 i64) (result i64)
+ (func $~lib/util/math/murmurHash3 (param $0 i64) (result i64)
   local.get $0
   local.get $0
   i64.const 33
@@ -5744,41 +5757,6 @@
   local.set $0
   local.get $0
  )
- (func $~lib/math/splitMix32 (param $0 i32) (result i32)
-  local.get $0
-  i32.const 1831565813
-  i32.add
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 15
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 1
-  i32.or
-  i32.mul
-  local.set $0
-  local.get $0
-  local.get $0
-  local.get $0
-  local.get $0
-  i32.const 7
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 61
-  i32.or
-  i32.mul
-  i32.add
-  i32.xor
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 14
-  i32.shr_u
-  i32.xor
- )
  (func $~lib/math/NativeMath.seedRandom (param $0 i64)
   local.get $0
   i64.const 0
@@ -5788,20 +5766,13 @@
    local.set $0
   end
   local.get $0
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state0_64
   global.get $~lib/math/random_state0_64
   i64.const -1
   i64.xor
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state1_64
-  local.get $0
-  i32.wrap_i64
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state0_32
-  global.get $~lib/math/random_state0_32
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state1_32
   i32.const 1
   global.set $~lib/math/random_seeded
  )
@@ -7858,28 +7829,58 @@
      if
       br $for-continue|0
      end
-     local.get $0
-     local.get $3
-     call $~lib/array/Array<f64>#__get
-     local.set $5
-     local.get $5
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i64.const 0
-     i64.ne
+     block $~lib/math/NativeMath.signbit<f64>|inlined.0 (result i32)
+      local.get $0
+      local.get $3
+      call $~lib/array/Array<f64>#__get
+      local.set $5
+      i32.const 0
+      drop
+      i32.const 1
+      drop
+      i32.const 8
+      i32.const 4
+      i32.eq
+      drop
+      i32.const 8
+      i32.const 8
+      i32.eq
+      drop
+      local.get $5
+      i64.reinterpret_f64
+      i64.const 63
+      i64.shr_u
+      i64.const 0
+      i64.ne
+      br $~lib/math/NativeMath.signbit<f64>|inlined.0
+     end
      i32.const 0
      i32.ne
-     local.get $1
-     local.get $3
-     call $~lib/array/Array<f64>#__get
-     local.set $5
-     local.get $5
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i64.const 0
-     i64.ne
+     block $~lib/math/NativeMath.signbit<f64>|inlined.1 (result i32)
+      local.get $1
+      local.get $3
+      call $~lib/array/Array<f64>#__get
+      local.set $5
+      i32.const 0
+      drop
+      i32.const 1
+      drop
+      i32.const 8
+      i32.const 4
+      i32.eq
+      drop
+      i32.const 8
+      i32.const 8
+      i32.eq
+      drop
+      local.get $5
+      i64.reinterpret_f64
+      i64.const 63
+      i64.shr_u
+      i64.const 0
+      i64.ne
+      br $~lib/math/NativeMath.signbit<f64>|inlined.1
+     end
      i32.const 0
      i32.ne
      i32.ne
@@ -20707,19 +20708,26 @@
     local.get $5
     i32.store offset=4
     local.get $5
-    call $~lib/math/NativeMath.random
-    global.get $std/array/charset
-    local.set $5
-    global.get $~lib/memory/__stack_pointer
-    local.get $5
-    i32.store offset=8
-    local.get $5
-    call $~lib/string/String#get:length
-    f64.convert_i32_s
-    f64.mul
-    local.set $4
-    local.get $4
-    f64.floor
+    block $~lib/math/NativeMath.floor<f64>|inlined.0 (result f64)
+     call $~lib/math/NativeMath.random
+     global.get $std/array/charset
+     local.set $5
+     global.get $~lib/memory/__stack_pointer
+     local.get $5
+     i32.store offset=8
+     local.get $5
+     call $~lib/string/String#get:length
+     f64.convert_i32_s
+     f64.mul
+     local.set $4
+     i32.const 0
+     drop
+     i32.const 1
+     drop
+     local.get $4
+     f64.floor
+     br $~lib/math/NativeMath.floor<f64>|inlined.0
+    end
     i32.trunc_sat_f64_s
     call $~lib/string/String#charAt
     local.set $5
diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat
index 02a578b075..2ca4ab6e9a 100644
--- a/tests/compiler/std/array.release.wat
+++ b/tests/compiler/std/array.release.wat
@@ -2539,19 +2539,15 @@
      local.get $0
      local.get $2
      call $~lib/array/Array<f32>#__get
-     f64.promote_f32
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i32.wrap_i64
+     i32.reinterpret_f32
+     i32.const 31
+     i32.shr_u
      local.get $1
      local.get $2
      call $~lib/array/Array<f32>#__get
-     f64.promote_f32
-     i64.reinterpret_f64
-     i64.const 63
-     i64.shr_u
-     i32.wrap_i64
+     i32.reinterpret_f32
+     i32.const 31
+     i32.shr_u
      i32.ne
      if
       i32.const 0
@@ -6930,54 +6926,55 @@
   global.get $~lib/math/random_seeded
   i32.eqz
   if
-   i64.const -7046029254386353131
    call $~lib/builtins/seed
    i64.reinterpret_f64
    local.tee $0
-   local.get $0
    i64.eqz
-   select
-   local.tee $0
+   if
+    i64.const -7046029254386353131
+    local.set $0
+   end
    local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    i64.const -49064778989728563
    i64.mul
    local.tee $0
-   local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    i64.const -4265267296055464877
    i64.mul
    local.tee $0
-   local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    global.set $~lib/math/random_state0_64
    global.get $~lib/math/random_state0_64
    i64.const -1
    i64.xor
    local.tee $0
-   local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    i64.const -49064778989728563
    i64.mul
    local.tee $0
-   local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    i64.const -4265267296055464877
    i64.mul
    local.tee $0
-   local.get $0
    i64.const 33
    i64.shr_u
+   local.get $0
    i64.xor
    global.set $~lib/math/random_state1_64
    i32.const 1
@@ -6994,9 +6991,9 @@
   i64.shl
   i64.xor
   local.tee $1
-  local.get $1
   i64.const 17
   i64.shr_u
+  local.get $1
   i64.xor
   local.get $0
   i64.xor
@@ -13090,8 +13087,8 @@
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
-  (local $4 i32)
-  (local $5 i64)
+  (local $4 i64)
+  (local $5 i32)
   (local $6 f64)
   (local $7 f32)
   (local $8 i32)
@@ -22743,54 +22740,55 @@
    local.get $0
    i32.const 3
    call $~lib/array/Array<i32>#push
-   i64.const -7046029254386353131
    call $~lib/bindings/dom/Math.random
    i64.reinterpret_f64
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.eqz
-   select
-   local.tee $5
-   local.get $5
+   if
+    i64.const -7046029254386353131
+    local.set $4
+   end
+   local.get $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    i64.const -49064778989728563
    i64.mul
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    i64.const -4265267296055464877
    i64.mul
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    global.set $~lib/math/random_state0_64
    global.get $~lib/math/random_state0_64
    i64.const -1
    i64.xor
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    i64.const -49064778989728563
    i64.mul
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    i64.const -4265267296055464877
    i64.mul
-   local.tee $5
-   local.get $5
+   local.tee $4
    i64.const 33
    i64.shr_u
+   local.get $4
    i64.xor
    global.set $~lib/math/random_state1_64
    i32.const 1
@@ -23827,13 +23825,13 @@
    local.set $1
    loop $for-loop|02
     local.get $1
-    local.get $4
+    local.get $5
     i32.gt_s
     if
      block $for-break0
       global.get $~lib/memory/__stack_pointer
       local.get $9
-      local.get $4
+      local.get $5
       call $~lib/array/Array<std/array/Ref>#__get
       local.tee $3
       i32.store offset=16
@@ -23843,7 +23841,7 @@
       i32.store
       global.get $~lib/memory/__stack_pointer
       local.get $8
-      local.get $4
+      local.get $5
       call $~lib/array/Array<std/array/Ref>#__get
       local.tee $8
       i32.store offset=20
@@ -23866,10 +23864,10 @@
        local.set $0
        br $for-break0
       end
-      local.get $4
+      local.get $5
       i32.const 1
       i32.add
-      local.set $4
+      local.set $5
       br $for-loop|02
      end
     end
@@ -23969,20 +23967,20 @@
    i32.const 32
    i32.const 0
    call $~lib/rt/itcms/__new
-   local.tee $4
+   local.tee $5
    i32.store offset=4
    local.get $3
-   local.get $4
+   local.get $5
    i32.store
-   local.get $4
+   local.get $5
    if
     local.get $3
-    local.get $4
+    local.get $5
     i32.const 0
     call $byn-split-outlined-A$~lib/rt/itcms/__link
    end
    local.get $3
-   local.get $4
+   local.get $5
    i32.store offset=4
    local.get $3
    i32.const 32
@@ -24007,9 +24005,9 @@
      global.get $~lib/memory/__stack_pointer
      i32.const 1
      call $~lib/array/Array<i32>#constructor
-     local.tee $4
+     local.tee $5
      i32.store offset=4
-     local.get $4
+     local.get $5
      i32.const 0
      i32.const 1
      local.get $0
@@ -24017,7 +24015,7 @@
      call $~lib/array/Array<i32>#__set
      local.get $3
      local.get $0
-     local.get $4
+     local.get $5
      call $~lib/array/Array<~lib/array/Array<i32>>#__set
      local.get $0
      i32.const 1
@@ -24062,25 +24060,25 @@
    i32.lt_s
    br_if $folding-inner1
    global.get $~lib/memory/__stack_pointer
-   local.tee $4
+   local.tee $5
    i64.const 0
    i64.store
-   local.get $4
+   local.get $5
    i32.const 16
    i32.const 29
    call $~lib/rt/itcms/__new
-   local.tee $4
+   local.tee $5
    i32.store
-   local.get $4
+   local.get $5
    i32.const 0
    i32.store
-   local.get $4
+   local.get $5
    i32.const 0
    i32.store offset=4
-   local.get $4
+   local.get $5
    i32.const 0
    i32.store offset=8
-   local.get $4
+   local.get $5
    i32.const 0
    i32.store offset=12
    global.get $~lib/memory/__stack_pointer
@@ -24089,23 +24087,23 @@
    call $~lib/rt/itcms/__new
    local.tee $8
    i32.store offset=4
-   local.get $4
+   local.get $5
    local.get $8
    i32.store
    local.get $8
    if
-    local.get $4
+    local.get $5
     local.get $8
     i32.const 0
     call $byn-split-outlined-A$~lib/rt/itcms/__link
    end
-   local.get $4
+   local.get $5
    local.get $8
    i32.store offset=4
-   local.get $4
+   local.get $5
    i32.const 2048
    i32.store offset=8
-   local.get $4
+   local.get $5
    i32.const 512
    i32.store offset=12
    global.get $~lib/memory/__stack_pointer
@@ -24113,7 +24111,7 @@
    i32.add
    global.set $~lib/memory/__stack_pointer
    local.get $1
-   local.get $4
+   local.get $5
    i32.store
    loop $for-loop|03
     local.get $3
@@ -24150,7 +24148,7 @@
      global.get $~lib/memory/__stack_pointer
      local.get $1
      i32.store offset=4
-     local.get $4
+     local.get $5
      local.get $3
      local.get $1
      call $~lib/array/Array<~lib/array/Array<i32>>#__set
@@ -24165,12 +24163,12 @@
    i32.const 8
    i32.add
    global.set $~lib/memory/__stack_pointer
-   local.get $4
+   local.get $5
    i32.store offset=156
    global.get $~lib/memory/__stack_pointer
    i32.const 9536
    i32.store offset=8
-   local.get $4
+   local.get $5
    i32.const 9536
    call $std/array/assertSorted<~lib/array/Array<i32>>
    global.get $~lib/memory/__stack_pointer
@@ -24187,7 +24185,7 @@
    i32.const 31
    i32.const 9776
    call $~lib/rt/__newArray
-   local.tee $4
+   local.tee $5
    i32.store offset=152
    i32.const 1
    global.set $~argumentsLength
@@ -24340,7 +24338,7 @@
     local.get $0
     i32.load offset=12
     local.tee $1
-    local.get $4
+    local.get $5
     i32.load offset=12
     i32.ne
     if
@@ -24352,7 +24350,7 @@
      br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>
     end
     local.get $0
-    local.get $4
+    local.get $5
     i32.eq
     if
      global.get $~lib/memory/__stack_pointer
@@ -24376,7 +24374,7 @@
       global.get $~lib/memory/__stack_pointer
       local.get $8
       i32.store
-      local.get $4
+      local.get $5
       local.get $3
       call $~lib/array/Array<std/array/Ref|null>#__get
       local.set $9
@@ -24492,7 +24490,7 @@
     local.get $0
     i32.const 1
     i32.sub
-    local.tee $4
+    local.tee $5
     i32.const 0
     i32.lt_s
     if
@@ -24504,7 +24502,7 @@
      local.set $0
      br $__inlined_func$~lib/util/string/joinBooleanArray
     end
-    local.get $4
+    local.get $5
     i32.eqz
     if
      i32.const 9920
@@ -24527,7 +24525,7 @@
     local.tee $8
     i32.const 5
     i32.add
-    local.get $4
+    local.get $5
     i32.mul
     i32.const 5
     i32.add
@@ -24542,7 +24540,7 @@
     local.set $0
     loop $for-loop|155
      local.get $2
-     local.get $4
+     local.get $5
      i32.lt_s
      if
       local.get $2
@@ -24596,7 +24594,7 @@
      end
     end
     local.get $3
-    local.get $4
+    local.get $5
     i32.add
     i32.load8_u
     local.tee $2
@@ -25168,7 +25166,7 @@
     local.get $0
     i32.const 1
     i32.sub
-    local.tee $4
+    local.tee $5
     i32.const 0
     i32.lt_s
     if
@@ -25180,7 +25178,7 @@
      local.set $0
      br $__inlined_func$~lib/util/string/joinIntegerArray<u16>
     end
-    local.get $4
+    local.get $5
     i32.eqz
     if
      local.get $3
@@ -25201,7 +25199,7 @@
     local.tee $8
     i32.const 10
     i32.add
-    local.get $4
+    local.get $5
     i32.mul
     i32.const 10
     i32.add
@@ -25216,7 +25214,7 @@
     local.set $0
     loop $for-loop|056
      local.get $2
-     local.get $4
+     local.get $5
      i32.lt_s
      if
       local.get $1
@@ -25264,7 +25262,7 @@
     i32.shl
     i32.add
     local.get $3
-    local.get $4
+    local.get $5
     i32.const 1
     i32.shl
     i32.add
@@ -25363,7 +25361,7 @@
     local.get $0
     i32.const 1
     i32.sub
-    local.tee $4
+    local.tee $5
     i32.const 0
     i32.lt_s
     if
@@ -25375,7 +25373,7 @@
      local.set $0
      br $__inlined_func$~lib/util/string/joinIntegerArray<i16>
     end
-    local.get $4
+    local.get $5
     i32.eqz
     if
      local.get $3
@@ -25396,7 +25394,7 @@
     local.tee $8
     i32.const 11
     i32.add
-    local.get $4
+    local.get $5
     i32.mul
     i32.const 11
     i32.add
@@ -25411,7 +25409,7 @@
     local.set $0
     loop $for-loop|057
      local.get $2
-     local.get $4
+     local.get $5
      i32.lt_s
      if
       local.get $1
@@ -25459,7 +25457,7 @@
     i32.shl
     i32.add
     local.get $3
-    local.get $4
+    local.get $5
     i32.const 1
     i32.shl
     i32.add
@@ -25816,7 +25814,7 @@
     i32.load
     i32.const 1
     i32.shr_u
-    local.set $4
+    local.set $5
     loop $for-loop|058
      local.get $1
      local.get $2
@@ -25846,7 +25844,7 @@
        local.tee $0
        i32.store offset=4
       end
-      local.get $4
+      local.get $5
       if
        global.get $~lib/memory/__stack_pointer
        local.get $0
@@ -26030,7 +26028,7 @@
     i32.load
     i32.const 1
     i32.shr_u
-    local.set $4
+    local.set $5
     loop $for-loop|059
      local.get $1
      local.get $2
@@ -26060,7 +26058,7 @@
        local.tee $0
        i32.store offset=4
       end
-      local.get $4
+      local.get $5
       if
        global.get $~lib/memory/__stack_pointer
        local.get $0
@@ -26252,7 +26250,7 @@
     i32.load
     i32.const 1
     i32.shr_u
-    local.set $4
+    local.set $5
     loop $for-loop|060
      local.get $1
      local.get $2
@@ -26282,7 +26280,7 @@
        local.tee $0
        i32.store offset=4
       end
-      local.get $4
+      local.get $5
       if
        global.get $~lib/memory/__stack_pointer
        local.get $0
@@ -26814,9 +26812,9 @@
    i32.const 26
    i32.const 0
    call $~lib/rt/__newArray
-   local.tee $4
+   local.tee $5
    i32.store
-   local.get $4
+   local.get $5
    i32.load offset=4
    local.set $8
    i32.const 0
@@ -26863,7 +26861,7 @@
      i32.store
      local.get $9
      if
-      local.get $4
+      local.get $5
       local.get $9
       i32.const 1
       call $byn-split-outlined-A$~lib/rt/itcms/__link
@@ -26880,9 +26878,9 @@
    i32.add
    global.set $~lib/memory/__stack_pointer
    global.get $~lib/memory/__stack_pointer
-   local.get $4
+   local.get $5
    i32.store
-   local.get $4
+   local.get $5
    call $~lib/array/Array<~lib/array/Array<i32>>#flat
    local.tee $0
    i32.store offset=144
diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat
index 10c8d5867d..10a4e8404c 100644
--- a/tests/compiler/std/math.debug.wat
+++ b/tests/compiler/std/math.debug.wat
@@ -7,24 +7,21 @@
  (type $f64_f64_f64_f64_i32_=>_i32 (func (param f64 f64 f64 f64 i32) (result i32)))
  (type $f32_f32_f32_f32_i32_=>_i32 (func (param f32 f32 f32 f32 i32) (result i32)))
  (type $f32_f32_=>_f32 (func (param f32 f32) (result f32)))
- (type $none_=>_f64 (func (result f64)))
  (type $f64_=>_i32 (func (param f64) (result i32)))
+ (type $none_=>_f64 (func (result f64)))
  (type $none_=>_none (func))
  (type $f64_i32_=>_f64 (func (param f64 i32) (result f64)))
  (type $f64_f64_f64_=>_f64 (func (param f64 f64 f64) (result f64)))
  (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32)))
- (type $f32_=>_i32 (func (param f32) (result i32)))
+ (type $f64_i32_f64_f64_i32_=>_i32 (func (param f64 i32 f64 f64 i32) (result i32)))
  (type $f32_i32_=>_f32 (func (param f32 i32) (result f32)))
+ (type $f32_=>_i32 (func (param f32) (result i32)))
  (type $f32_f32_f32_=>_f32 (func (param f32 f32 f32) (result f32)))
- (type $f64_i32_f64_f64_i32_=>_i32 (func (param f64 i32 f64 f64 i32) (result i32)))
  (type $f32_i32_f32_f32_i32_=>_i32 (func (param f32 i32 f32 f32 i32) (result i32)))
  (type $f64_i64_=>_i32 (func (param f64 i64) (result i32)))
  (type $i64_=>_i64 (func (param i64) (result i64)))
- (type $i32_=>_i32 (func (param i32) (result i32)))
  (type $i64_=>_none (func (param i64)))
- (type $none_=>_f32 (func (result f32)))
  (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64)))
- (type $f64_=>_none (func (param f64)))
  (type $i64_i64_i64_i64_i64_i32_=>_i32 (func (param i64 i64 i64 i64 i64 i32) (result i32)))
  (type $i64_i64_=>_i64 (func (param i64 i64) (result i64)))
  (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
@@ -77,33 +74,25 @@
  (global $std/math/kPI f64 (f64.const 3.141592653589793))
  (global $std/math/kTwo120 f64 (f64.const 1329227995784915872903807e12))
  (global $~lib/math/NativeMath.E f64 (f64.const 2.718281828459045))
- (global $~lib/math/NativeMathf.E f32 (f32.const 2.7182817459106445))
  (global $~lib/math/NativeMath.LN2 f64 (f64.const 0.6931471805599453))
  (global $~lib/math/NativeMath.LN10 f64 (f64.const 2.302585092994046))
  (global $~lib/math/NativeMath.LOG2E f64 (f64.const 1.4426950408889634))
  (global $~lib/math/NativeMath.PI f64 (f64.const 3.141592653589793))
  (global $~lib/math/NativeMath.SQRT1_2 f64 (f64.const 0.7071067811865476))
  (global $~lib/math/NativeMath.SQRT2 f64 (f64.const 1.4142135623730951))
- (global $~lib/math/NativeMathf.LN2 f32 (f32.const 0.6931471824645996))
- (global $~lib/math/NativeMathf.LN10 f32 (f32.const 2.3025851249694824))
- (global $~lib/math/NativeMathf.LOG2E f32 (f32.const 1.4426950216293335))
- (global $~lib/math/NativeMathf.PI f32 (f32.const 3.1415927410125732))
- (global $~lib/math/NativeMathf.SQRT1_2 f32 (f32.const 0.7071067690849304))
- (global $~lib/math/NativeMathf.SQRT2 f32 (f32.const 1.4142135381698608))
  (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0))
- (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0))
- (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0))
- (global $~lib/math/res128_hi (mut i64) (i64.const 0))
- (global $~lib/math/rempio2f_y (mut f64) (f64.const 0))
+ (global $~lib/util/math/rempio2_y0 (mut f64) (f64.const 0))
+ (global $~lib/util/math/rempio2_y1 (mut f64) (f64.const 0))
+ (global $~lib/util/math/res128_hi (mut i64) (i64.const 0))
+ (global $~lib/util/math/rempio2_32_y (mut f64) (f64.const 0))
  (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14))
  (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324))
  (global $~lib/util/math/log_tail (mut f64) (f64.const 0))
  (global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
  (global $~lib/math/random_state1_64 (mut i64) (i64.const 0))
- (global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
- (global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
  (global $~lib/math/random_seeded (mut i32) (i32.const 0))
  (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0))
+ (global $~lib/util/math/sincos_cos64 (mut f64) (f64.const 0))
  (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0))
  (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284))
  (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991))
@@ -155,7 +144,7 @@
   i32.const 52
   i32.sub
  )
- (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64)
+ (func $~lib/util/math/scalbn64 (param $0 f64) (param $1 i32) (result f64)
   (local $2 f64)
   (local $3 i32)
   (local $4 i32)
@@ -266,24 +255,54 @@
   local.get $1
   f64.eq
   if
-   local.get $0
-   local.set $3
-   local.get $3
-   i64.reinterpret_f64
-   i64.const 63
-   i64.shr_u
-   i64.const 0
-   i64.ne
+   block $~lib/math/NativeMath.signbit<f64>|inlined.0 (result i32)
+    local.get $0
+    local.set $3
+    i32.const 0
+    drop
+    i32.const 1
+    drop
+    i32.const 8
+    i32.const 4
+    i32.eq
+    drop
+    i32.const 8
+    i32.const 8
+    i32.eq
+    drop
+    local.get $3
+    i64.reinterpret_f64
+    i64.const 63
+    i64.shr_u
+    i64.const 0
+    i64.ne
+    br $~lib/math/NativeMath.signbit<f64>|inlined.0
+   end
    i32.const 0
    i32.ne
-   local.get $1
-   local.set $3
-   local.get $3
-   i64.reinterpret_f64
-   i64.const 63
-   i64.shr_u
-   i64.const 0
-   i64.ne
+   block $~lib/math/NativeMath.signbit<f64>|inlined.1 (result i32)
+    local.get $1
+    local.set $3
+    i32.const 0
+    drop
+    i32.const 1
+    drop
+    i32.const 8
+    i32.const 4
+    i32.eq
+    drop
+    i32.const 8
+    i32.const 8
+    i32.eq
+    drop
+    local.get $3
+    i64.reinterpret_f64
+    i64.const 63
+    i64.shr_u
+    i64.const 0
+    i64.ne
+    br $~lib/math/NativeMath.signbit<f64>|inlined.1
+   end
    i32.const 0
    i32.ne
    i32.eq
@@ -317,7 +336,7 @@
   local.get $1
   call $std/math/eulp
   i32.sub
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   local.get $2
   f64.add
  )
@@ -358,33 +377,16 @@
   end
   i32.const 1
  )
- (func $std/math/eulpf (param $0 f32) (result i32)
-  (local $1 i32)
-  (local $2 i32)
+ (func $std/math/test_scalbn (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
   local.get $0
-  i32.reinterpret_f32
-  local.set $1
   local.get $1
-  i32.const 23
-  i32.shr_u
-  i32.const 255
-  i32.and
-  local.set $2
-  local.get $2
-  i32.eqz
-  if
-   local.get $2
-   i32.const 1
-   i32.add
-   local.set $2
-  end
+  call $~lib/util/math/scalbn64
   local.get $2
-  i32.const 127
-  i32.sub
-  i32.const 23
-  i32.sub
+  local.get $3
+  local.get $4
+  call $std/math/check<f64>
  )
- (func $~lib/math/NativeMathf.scalbn (param $0 f32) (param $1 i32) (result f32)
+ (func $~lib/util/math/scalbn32 (param $0 f32) (param $1 i32) (result f32)
   (local $2 f32)
   (local $3 i32)
   (local $4 i32)
@@ -474,6 +476,32 @@
   f32.reinterpret_i32
   f32.mul
  )
+ (func $std/math/eulpf (param $0 f32) (result i32)
+  (local $1 i32)
+  (local $2 i32)
+  local.get $0
+  i32.reinterpret_f32
+  local.set $1
+  local.get $1
+  i32.const 23
+  i32.shr_u
+  i32.const 255
+  i32.and
+  local.set $2
+  local.get $2
+  i32.eqz
+  if
+   local.get $2
+   i32.const 1
+   i32.add
+   local.set $2
+  end
+  local.get $2
+  i32.const 127
+  i32.sub
+  i32.const 23
+  i32.sub
+ )
  (func $std/math/ulperrf (param $0 f32) (param $1 f32) (param $2 f32) (result f32)
   (local $3 f32)
   local.get $0
@@ -494,20 +522,42 @@
   local.get $1
   f32.eq
   if
-   local.get $0
-   local.set $3
-   local.get $3
-   i32.reinterpret_f32
-   i32.const 31
-   i32.shr_u
+   block $~lib/math/NativeMath.signbit<f32>|inlined.0 (result i32)
+    local.get $0
+    local.set $3
+    i32.const 0
+    drop
+    i32.const 1
+    drop
+    i32.const 4
+    i32.const 4
+    i32.eq
+    drop
+    local.get $3
+    i32.reinterpret_f32
+    i32.const 31
+    i32.shr_u
+    br $~lib/math/NativeMath.signbit<f32>|inlined.0
+   end
    i32.const 0
    i32.ne
-   local.get $1
-   local.set $3
-   local.get $3
-   i32.reinterpret_f32
-   i32.const 31
-   i32.shr_u
+   block $~lib/math/NativeMath.signbit<f32>|inlined.1 (result i32)
+    local.get $1
+    local.set $3
+    i32.const 0
+    drop
+    i32.const 1
+    drop
+    i32.const 4
+    i32.const 4
+    i32.eq
+    drop
+    local.get $3
+    i32.reinterpret_f32
+    i32.const 31
+    i32.shr_u
+    br $~lib/math/NativeMath.signbit<f32>|inlined.1
+   end
    i32.const 0
    i32.ne
    i32.eq
@@ -541,7 +591,7 @@
   local.get $1
   call $std/math/eulpf
   i32.sub
-  call $~lib/math/NativeMathf.scalbn
+  call $~lib/util/math/scalbn32
   local.get $2
   f32.add
  )
@@ -586,19 +636,10 @@
   end
   i32.const 1
  )
- (func $std/math/test_scalbn (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMath.scalbn
-  local.get $2
-  local.get $3
-  local.get $4
-  call $std/math/check<f64>
- )
  (func $std/math/test_scalbnf (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
   local.get $0
   local.get $1
-  call $~lib/math/NativeMathf.scalbn
+  call $~lib/util/math/scalbn32
   local.get $2
   local.get $3
   local.get $4
@@ -636,7 +677,7 @@
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/R (param $0 f64) (result f64)
+ (func $~lib/util/math/R64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 f64)
   local.get $0
@@ -685,7 +726,7 @@
   local.get $2
   f64.div
  )
- (func $~lib/math/NativeMath.acos (param $0 f64) (result f64)
+ (func $~lib/util/math/acos64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
@@ -763,7 +804,7 @@
    local.get $0
    local.get $0
    f64.mul
-   call $~lib/math/R
+   call $~lib/util/math/R64
    f64.mul
    f64.sub
    f64.sub
@@ -784,7 +825,7 @@
    f64.sqrt
    local.set $4
    local.get $6
-   call $~lib/math/R
+   call $~lib/util/math/R64
    local.get $4
    f64.mul
    f64.const 6.123233995736766e-17
@@ -825,7 +866,7 @@
   f64.div
   local.set $8
   local.get $6
-  call $~lib/math/R
+  call $~lib/util/math/R64
   local.get $4
   f64.mul
   local.get $8
@@ -838,8 +879,24 @@
   f64.mul
  )
  (func $std/math/test_acos (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.acos
+  (local $4 f64)
+  block $~lib/math/NativeMath.acos<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/acos64
+   br $~lib/math/NativeMath.acos<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -855,7 +912,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/Rf (param $0 f32) (result f32)
+ (func $~lib/util/math/R32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 f32)
   local.get $0
@@ -880,7 +937,7 @@
   local.get $2
   f32.div
  )
- (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32)
+ (func $~lib/util/math/acos32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 f32)
@@ -944,7 +1001,7 @@
    local.get $0
    local.get $0
    f32.mul
-   call $~lib/math/Rf
+   call $~lib/util/math/R32
    f32.mul
    f32.sub
    f32.sub
@@ -965,7 +1022,7 @@
    f32.sqrt
    local.set $5
    local.get $3
-   call $~lib/math/Rf
+   call $~lib/util/math/R32
    local.get $5
    f32.mul
    f32.const 7.549789415861596e-08
@@ -1008,7 +1065,7 @@
   f32.div
   local.set $7
   local.get $3
-  call $~lib/math/Rf
+  call $~lib/util/math/R32
   local.get $5
   f32.mul
   local.get $7
@@ -1021,14 +1078,26 @@
   f32.mul
  )
  (func $std/math/test_acosf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.acos
+  (local $4 f32)
+  block $~lib/math/NativeMath.acos<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/acos32
+   br $~lib/math/NativeMath.acos<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64)
+ (func $~lib/util/math/log1p64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
@@ -1272,7 +1341,7 @@
   f64.mul
   f64.add
  )
- (func $~lib/math/NativeMath.log (param $0 f64) (result f64)
+ (func $~lib/util/math/log64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i64)
   (local $3 f64)
@@ -1295,7 +1364,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/log_lut|inlined.0 (result f64)
+  block $~lib/util/math/log64_lut|inlined.0 (result f64)
    local.get $0
    local.set $1
    local.get $1
@@ -1406,7 +1475,7 @@
     f64.add
     local.get $10
     f64.add
-    br $~lib/util/math/log_lut|inlined.0
+    br $~lib/util/math/log64_lut|inlined.0
    end
    local.get $2
    i64.const 48
@@ -1432,7 +1501,7 @@
      local.get $1
      f64.mul
      f64.div
-     br $~lib/util/math/log_lut|inlined.0
+     br $~lib/util/math/log64_lut|inlined.0
     end
     local.get $2
     f64.const inf
@@ -1440,7 +1509,7 @@
     i64.eq
     if
      local.get $1
-     br $~lib/util/math/log_lut|inlined.0
+     br $~lib/util/math/log64_lut|inlined.0
     end
     local.get $12
     i32.const 32768
@@ -1462,7 +1531,7 @@
      local.get $1
      f64.sub
      f64.div
-     br $~lib/util/math/log_lut|inlined.0
+     br $~lib/util/math/log64_lut|inlined.0
     end
     local.get $1
     f64.const 4503599627370496
@@ -1605,7 +1674,7 @@
   end
   return
  )
- (func $~lib/math/NativeMath.acosh (param $0 f64) (result f64)
+ (func $~lib/util/math/acosh64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i64)
   local.get $0
@@ -1652,7 +1721,7 @@
    f64.add
    f64.sqrt
    f64.add
-   call $~lib/math/NativeMath.log1p
+   call $~lib/util/math/log1p64
    return
   end
   local.get $2
@@ -1675,17 +1744,33 @@
    f64.add
    f64.div
    f64.sub
-   call $~lib/math/NativeMath.log
+   call $~lib/util/math/log64
    return
   end
   local.get $0
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const 0.6931471805599453
   f64.add
  )
  (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.acosh
+  (local $4 f64)
+  block $~lib/math/NativeMath.acosh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/acosh64
+   br $~lib/math/NativeMath.acosh<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -1701,7 +1786,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32)
+ (func $~lib/util/math/log1p32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   (local $3 f32)
@@ -1912,7 +1997,7 @@
   f32.mul
   f32.add
  )
- (func $~lib/math/NativeMathf.log (param $0 f32) (result f32)
+ (func $~lib/util/math/log32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 i32)
   (local $3 i32)
@@ -2083,7 +2168,7 @@
   end
   return
  )
- (func $~lib/math/NativeMathf.acosh (param $0 f32) (result f32)
+ (func $~lib/util/math/acosh32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 f32)
@@ -2114,7 +2199,7 @@
    f32.mul
    f32.sqrt
    f32.add
-   call $~lib/math/NativeMathf.log1p
+   call $~lib/util/math/log1p32
    return
   end
   local.get $1
@@ -2139,23 +2224,35 @@
    f32.add
    f32.div
    f32.sub
-   call $~lib/math/NativeMathf.log
+   call $~lib/util/math/log32
    return
   end
   local.get $0
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const 0.6931471824645996
   f32.add
  )
  (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.acosh
+  (local $4 f32)
+  block $~lib/math/NativeMath.acosh<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/acosh32
+   br $~lib/math/NativeMath.acosh<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.asin (param $0 f64) (result f64)
+ (func $~lib/util/math/asin64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
@@ -2228,7 +2325,7 @@
    local.get $0
    local.get $0
    f64.mul
-   call $~lib/math/R
+   call $~lib/util/math/R64
    f64.mul
    f64.add
    return
@@ -2244,7 +2341,7 @@
   f64.sqrt
   local.set $5
   local.get $4
-  call $~lib/math/R
+  call $~lib/util/math/R64
   local.set $6
   local.get $2
   i32.const 1072640819
@@ -2315,8 +2412,24 @@
   local.get $0
  )
  (func $std/math/test_asin (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.asin
+  (local $4 f64)
+  block $~lib/math/NativeMath.asin<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/asin64
+   br $~lib/math/NativeMath.asin<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -2332,7 +2445,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32)
+ (func $~lib/util/math/asin32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 i32)
   (local $3 f32)
@@ -2389,7 +2502,7 @@
    local.get $0
    local.get $0
    f32.mul
-   call $~lib/math/Rf
+   call $~lib/util/math/R32
    f32.mul
    f32.add
    return
@@ -2412,7 +2525,7 @@
   local.get $4
   local.get $4
   local.get $3
-  call $~lib/math/Rf
+  call $~lib/util/math/R32
   f64.promote_f32
   f64.mul
   f64.add
@@ -2425,14 +2538,26 @@
   f32.copysign
  )
  (func $std/math/test_asinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.asin
+  (local $4 f32)
+  block $~lib/math/NativeMath.asin<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/asin32
+   br $~lib/math/NativeMath.asin<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.asinh (param $0 f64) (result f64)
+ (func $~lib/util/math/asinh64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i64)
   (local $3 f64)
@@ -2457,7 +2582,7 @@
   i64.ge_u
   if
    local.get $3
-   call $~lib/math/NativeMath.log
+   call $~lib/util/math/log64
    f64.const 0.6931471805599453
    f64.add
    local.set $3
@@ -2482,7 +2607,7 @@
     f64.add
     f64.div
     f64.add
-    call $~lib/math/NativeMath.log
+    call $~lib/util/math/log64
     local.set $3
    else
     local.get $2
@@ -2505,7 +2630,7 @@
      f64.add
      f64.div
      f64.add
-     call $~lib/math/NativeMath.log1p
+     call $~lib/util/math/log1p64
      local.set $3
     end
    end
@@ -2515,8 +2640,24 @@
   f64.copysign
  )
  (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.asinh
+  (local $4 f64)
+  block $~lib/math/NativeMath.asinh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/asinh64
+   br $~lib/math/NativeMath.asinh<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -2532,7 +2673,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.asinh (param $0 f32) (result f32)
+ (func $~lib/util/math/asinh32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   local.get $0
@@ -2552,7 +2693,7 @@
   i32.ge_u
   if
    local.get $2
-   call $~lib/math/NativeMathf.log
+   call $~lib/util/math/log32
    f32.const 0.6931471824645996
    f32.add
    local.set $2
@@ -2579,7 +2720,7 @@
     f32.add
     f32.div
     f32.add
-    call $~lib/math/NativeMathf.log
+    call $~lib/util/math/log32
     local.set $2
    else
     local.get $1
@@ -2604,7 +2745,7 @@
      f32.add
      f32.div
      f32.add
-     call $~lib/math/NativeMathf.log1p
+     call $~lib/util/math/log1p32
      local.set $2
     end
    end
@@ -2614,14 +2755,26 @@
   f32.copysign
  )
  (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.asinh
+  (local $4 f32)
+  block $~lib/math/NativeMath.asinh<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/asinh32
+   br $~lib/math/NativeMath.asinh<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.atan (param $0 f64) (result f64)
+ (func $~lib/util/math/atan64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 f64)
   (local $3 f64)
@@ -2880,8 +3033,24 @@
   f64.copysign
  )
  (func $std/math/test_atan (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.atan
+  (local $4 f64)
+  block $~lib/math/NativeMath.atan<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/atan64
+   br $~lib/math/NativeMath.atan<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -2897,7 +3066,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32)
+ (func $~lib/util/math/atan32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   (local $3 f32)
@@ -3128,14 +3297,26 @@
   f32.copysign
  )
  (func $std/math/test_atanf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.atan
+  (local $4 f32)
+  block $~lib/math/NativeMath.atan<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/atan32
+   br $~lib/math/NativeMath.atan<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.atanh (param $0 f64) (result f64)
+ (func $~lib/util/math/atanh64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i64)
   (local $3 f64)
@@ -3177,7 +3358,7 @@
     f64.sub
     f64.div
     f64.add
-    call $~lib/math/NativeMath.log1p
+    call $~lib/util/math/log1p64
     f64.mul
     local.set $3
    end
@@ -3190,7 +3371,7 @@
    f64.sub
    f64.div
    f64.mul
-   call $~lib/math/NativeMath.log1p
+   call $~lib/util/math/log1p64
    f64.mul
    local.set $3
   end
@@ -3199,8 +3380,24 @@
   f64.copysign
  )
  (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.atanh
+  (local $4 f64)
+  block $~lib/math/NativeMath.atanh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/atanh64
+   br $~lib/math/NativeMath.atanh<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -3216,7 +3413,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.atanh (param $0 f32) (result f32)
+ (func $~lib/util/math/atanh32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   local.get $0
@@ -3253,7 +3450,7 @@
     f32.div
     f32.add
     f32.mul
-    call $~lib/math/NativeMathf.log1p
+    call $~lib/util/math/log1p32
     f32.mul
     local.set $2
    end
@@ -3266,7 +3463,7 @@
    f32.sub
    f32.div
    f32.mul
-   call $~lib/math/NativeMathf.log1p
+   call $~lib/util/math/log1p32
    f32.mul
    local.set $2
   end
@@ -3275,14 +3472,26 @@
   f32.copysign
  )
  (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.atanh
+  (local $4 f32)
+  block $~lib/math/NativeMath.atanh<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/atanh32
+   br $~lib/math/NativeMath.atanh<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.atan2 (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/atan2_64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i32)
   (local $4 i32)
@@ -3339,7 +3548,7 @@
   i32.eq
   if
    local.get $0
-   call $~lib/math/NativeMath.atan
+   call $~lib/util/math/atan64
    return
   end
   local.get $5
@@ -3397,10 +3606,10 @@
       local.get $0
       return
      end
-     global.get $~lib/math/NativeMath.PI
+     f64.const 3.141592653589793
      return
     end
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     f64.neg
     return
    end
@@ -3415,12 +3624,12 @@
    i32.const 1
    i32.and
    if (result f64)
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     f64.neg
     f64.const 2
     f64.div
    else
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     f64.const 2
     f64.div
    end
@@ -3440,12 +3649,12 @@
     if (result f64)
      i32.const 3
      f64.convert_i32_s
-     global.get $~lib/math/NativeMath.PI
+     f64.const 3.141592653589793
      f64.mul
      f64.const 4
      f64.div
     else
-     global.get $~lib/math/NativeMath.PI
+     f64.const 3.141592653589793
      f64.const 4
      f64.div
     end
@@ -3465,7 +3674,7 @@
     i32.const 2
     i32.and
     if (result f64)
-     global.get $~lib/math/NativeMath.PI
+     f64.const 3.141592653589793
     else
      f64.const 0
     end
@@ -3502,12 +3711,12 @@
    i32.const 1
    i32.and
    if (result f64)
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     f64.neg
     f64.const 2
     f64.div
    else
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     f64.const 2
     f64.div
    end
@@ -3535,7 +3744,7 @@
    local.get $1
    f64.div
    f64.abs
-   call $~lib/math/NativeMath.atan
+   call $~lib/util/math/atan64
    local.set $10
   end
   block $break|1
@@ -3570,7 +3779,7 @@
      f64.neg
      return
     end
-    global.get $~lib/math/NativeMath.PI
+    f64.const 3.141592653589793
     local.get $10
     f64.const 1.2246467991473532e-16
     f64.sub
@@ -3580,16 +3789,35 @@
    local.get $10
    f64.const 1.2246467991473532e-16
    f64.sub
-   global.get $~lib/math/NativeMath.PI
+   f64.const 3.141592653589793
    f64.sub
    return
   end
   unreachable
  )
  (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMath.atan2
+  (local $5 f64)
+  (local $6 f64)
+  block $~lib/math/NativeMath.atan2<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/atan2_64
+   br $~lib/math/NativeMath.atan2<f64>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
@@ -3606,7 +3834,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/atan2_32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -3640,7 +3868,7 @@
   i32.eq
   if
    local.get $0
-   call $~lib/math/NativeMathf.atan
+   call $~lib/util/math/atan32
    return
   end
   local.get $3
@@ -3831,7 +4059,7 @@
    local.get $1
    f32.div
    f32.abs
-   call $~lib/math/NativeMathf.atan
+   call $~lib/util/math/atan32
    local.set $7
   end
   block $break|1
@@ -3883,15 +4111,30 @@
   unreachable
  )
  (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMathf.atan2
+  (local $5 f32)
+  (local $6 f32)
+  block $~lib/math/NativeMath.atan2<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/atan2_32
+   br $~lib/math/NativeMath.atan2<f32>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64)
+ (func $~lib/util/math/cbrt64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 f64)
@@ -4036,8 +4279,24 @@
   local.get $3
  )
  (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.cbrt
+  (local $4 f64)
+  block $~lib/math/NativeMath.cbrt<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cbrt64
+   br $~lib/math/NativeMath.cbrt<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -4053,7 +4312,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.cbrt (param $0 f32) (result f32)
+ (func $~lib/util/math/cbrt32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 f64)
@@ -4170,8 +4429,20 @@
   f32.demote_f64
  )
  (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.cbrt
+  (local $4 f32)
+  block $~lib/math/NativeMath.cbrt<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cbrt32
+   br $~lib/math/NativeMath.cbrt<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -4179,10 +4450,17 @@
  )
  (func $std/math/test_ceil (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   (local $4 f64)
-  local.get $0
-  local.set $4
-  local.get $4
-  f64.ceil
+  block $~lib/math/NativeMath.ceil<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f64.ceil
+   br $~lib/math/NativeMath.ceil<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -4200,16 +4478,23 @@
  )
  (func $std/math/test_ceilf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
   (local $4 f32)
-  local.get $0
-  local.set $4
-  local.get $4
-  f32.ceil
+  block $~lib/math/NativeMath.ceil<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f32.ceil
+   br $~lib/math/NativeMath.ceil<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/pio2_large_quot (param $0 f64) (param $1 i64) (result i32)
+ (func $~lib/util/math/pio2_64_large_quot (param $0 f64) (param $1 i64) (result i32)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -4384,14 +4669,14 @@
   i64.const 32
   i64.shr_u
   i64.add
-  global.set $~lib/math/res128_hi
+  global.set $~lib/util/math/res128_hi
   local.get $19
   i64.const 32
   i64.shl
   local.get $17
   i64.add
   local.set $20
-  global.get $~lib/math/res128_hi
+  global.get $~lib/util/math/res128_hi
   local.set $21
   local.get $6
   local.get $14
@@ -4527,14 +4812,14 @@
   i64.const 32
   i64.shr_u
   i64.add
-  global.set $~lib/math/res128_hi
+  global.set $~lib/util/math/res128_hi
   local.get $33
   i64.const 32
   i64.shl
   local.get $31
   i64.add
   local.set $33
-  global.get $~lib/math/res128_hi
+  global.get $~lib/util/math/res128_hi
   local.set $32
   local.get $32
   i64.const 11
@@ -4572,14 +4857,14 @@
   i64.extend_i32_u
   i64.add
   f64.convert_i64_u
-  global.set $~lib/math/rempio2_y0
+  global.set $~lib/util/math/rempio2_y0
   f64.const 5.421010862427522e-20
   local.get $17
   local.get $18
   i64.add
   f64.convert_i64_u
   f64.mul
-  global.set $~lib/math/rempio2_y1
+  global.set $~lib/util/math/rempio2_y1
   local.get $19
   i64.const 52
   i64.shl
@@ -4596,18 +4881,18 @@
   i64.or
   f64.reinterpret_i64
   local.set $36
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.get $36
   f64.mul
-  global.set $~lib/math/rempio2_y0
-  global.get $~lib/math/rempio2_y1
+  global.set $~lib/util/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y1
   local.get $36
   f64.mul
-  global.set $~lib/math/rempio2_y1
+  global.set $~lib/util/math/rempio2_y1
   local.get $30
   i32.wrap_i64
  )
- (func $~lib/math/NativeMath.cos (param $0 f64) (result f64)
+ (func $~lib/util/math/cos64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
@@ -4726,7 +5011,7 @@
    f64.sub
    return
   end
-  block $~lib/math/rempio2|inlined.0 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.0 (result i32)
    local.get $0
    local.set $4
    local.get $1
@@ -4826,11 +5111,11 @@
      local.set $13
     end
     local.get $8
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $7
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $13
-    br $~lib/math/rempio2|inlined.0
+    br $~lib/util/math/rempio2_64|inlined.0
    end
    local.get $12
    i32.const 1094263291
@@ -4952,16 +5237,16 @@
     f64.sub
     local.set $5
     local.get $6
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $5
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $7
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.0
+    br $~lib/util/math/rempio2_64|inlined.0
    end
    local.get $4
    local.get $11
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.set $15
    i32.const 0
    local.get $15
@@ -4971,15 +5256,15 @@
    select
   end
   local.set $17
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.set $18
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y1
   local.set $19
   local.get $17
   i32.const 1
   i32.and
   if (result f64)
-   block $~lib/math/sin_kern|inlined.0 (result f64)
+   block $~lib/util/math/sin64_kern|inlined.0 (result f64)
     local.get $18
     local.set $7
     local.get $19
@@ -5030,7 +5315,7 @@
      f64.add
      f64.mul
      f64.add
-     br $~lib/math/sin_kern|inlined.0
+     br $~lib/util/math/sin64_kern|inlined.0
     else
      local.get $7
      local.get $4
@@ -5049,7 +5334,7 @@
      f64.mul
      f64.sub
      f64.sub
-     br $~lib/math/sin_kern|inlined.0
+     br $~lib/util/math/sin64_kern|inlined.0
     end
     unreachable
    end
@@ -5130,8 +5415,24 @@
   end
  )
  (func $std/math/test_cos (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.cos
+  (local $4 f64)
+  block $~lib/math/NativeMath.cos<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -5147,7 +5448,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32)
+ (func $~lib/util/math/cos32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 f64)
@@ -5527,7 +5828,7 @@
    f32.sub
    return
   end
-  block $~lib/math/rempio2f|inlined.0 (result i32)
+  block $~lib/util/math/rempio2_32|inlined.0 (result i32)
    local.get $0
    local.set $10
    local.get $1
@@ -5554,10 +5855,10 @@
     f64.const 1.5893254773528196e-08
     f64.mul
     f64.sub
-    global.set $~lib/math/rempio2f_y
+    global.set $~lib/util/math/rempio2_32_y
     local.get $6
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2f|inlined.0
+    br $~lib/util/math/rempio2_32|inlined.0
    end
    local.get $10
    local.set $12
@@ -5664,7 +5965,7 @@
    local.get $22
    f64.convert_i64_s
    f64.mul
-   global.set $~lib/math/rempio2f_y
+   global.set $~lib/util/math/rempio2_32_y
    local.get $23
    local.set $23
    i32.const 0
@@ -5675,7 +5976,7 @@
    select
   end
   local.set $24
-  global.get $~lib/math/rempio2f_y
+  global.get $~lib/util/math/rempio2_32_y
   local.set $25
   local.get $24
   i32.const 1
@@ -5766,14 +6067,26 @@
   end
  )
  (func $std/math/test_cosf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.cos
+  (local $4 f32)
+  block $~lib/math/NativeMath.cos<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cos32
+   br $~lib/math/NativeMath.cos<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64)
+ (func $~lib/util/math/expm1_64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
@@ -6086,7 +6399,7 @@
   local.get $14
   f64.mul
  )
- (func $~lib/math/NativeMath.exp (param $0 f64) (result f64)
+ (func $~lib/util/math/exp64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i64)
   (local $3 i32)
@@ -6370,7 +6683,7 @@
   end
   return
  )
- (func $~lib/math/NativeMath.cosh (param $0 f64) (result f64)
+ (func $~lib/util/math/cosh64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 f64)
@@ -6408,7 +6721,7 @@
     return
    end
    local.get $0
-   call $~lib/math/NativeMath.expm1
+   call $~lib/util/math/expm1_64
    local.set $3
    f64.const 1
    local.get $3
@@ -6428,7 +6741,7 @@
   i32.lt_u
   if
    local.get $0
-   call $~lib/math/NativeMath.exp
+   call $~lib/util/math/exp64
    local.set $3
    f64.const 0.5
    local.get $3
@@ -6458,7 +6771,7 @@
   local.get $5
   f64.const 1416.0996898839683
   f64.sub
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   local.get $4
   local.get $6
   f64.mul
@@ -6469,8 +6782,24 @@
   local.get $3
  )
  (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.cosh
+  (local $4 f64)
+  block $~lib/math/NativeMath.cosh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cosh64
+   br $~lib/math/NativeMath.cosh<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -6486,7 +6815,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32)
+ (func $~lib/util/math/expm1_32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
@@ -6779,7 +7108,7 @@
   local.get $13
   f32.mul
  )
- (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32)
+ (func $~lib/util/math/exp32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 f64)
   (local $3 i32)
@@ -6795,7 +7124,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/expf_lut|inlined.0 (result f32)
+  block $~lib/util/math/exp32_lut|inlined.0 (result f32)
    local.get $0
    local.set $1
    local.get $1
@@ -6819,7 +7148,7 @@
     i32.eq
     if
      f32.const 0
-     br $~lib/util/math/expf_lut|inlined.0
+     br $~lib/util/math/exp32_lut|inlined.0
     end
     local.get $4
     i32.const 2040
@@ -6828,7 +7157,7 @@
      local.get $1
      local.get $1
      f32.add
-     br $~lib/util/math/expf_lut|inlined.0
+     br $~lib/util/math/exp32_lut|inlined.0
     end
     local.get $1
     i32.const 1118925335
@@ -6838,7 +7167,7 @@
      local.get $1
      f32.const 1701411834604692317316873e14
      f32.mul
-     br $~lib/util/math/expf_lut|inlined.0
+     br $~lib/util/math/exp32_lut|inlined.0
     end
     local.get $1
     i32.const -1026559564
@@ -6846,7 +7175,7 @@
     f32.lt
     if
      f32.const 0
-     br $~lib/util/math/expf_lut|inlined.0
+     br $~lib/util/math/exp32_lut|inlined.0
     end
    end
    f64.const 46.16624130844683
@@ -6917,7 +7246,7 @@
   end
   return
  )
- (func $~lib/math/NativeMathf.cosh (param $0 f32) (result f32)
+ (func $~lib/util/math/cosh32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   (local $3 f32)
@@ -6948,7 +7277,7 @@
     return
    end
    local.get $0
-   call $~lib/math/NativeMathf.expm1
+   call $~lib/util/math/expm1_32
    local.set $2
    f32.const 1
    local.get $2
@@ -6968,7 +7297,7 @@
   i32.lt_u
   if
    local.get $0
-   call $~lib/math/NativeMathf.exp
+   call $~lib/util/math/exp32
    local.set $2
    f32.const 0.5
    local.get $2
@@ -6995,7 +7324,7 @@
   local.get $3
   f32.const 162.88958740234375
   f32.sub
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   local.get $2
   local.get $4
   f32.mul
@@ -7004,16 +7333,44 @@
   f32.mul
  )
  (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.cosh
+  (local $4 f32)
+  block $~lib/math/NativeMath.cosh<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/cosh32
+   br $~lib/math/NativeMath.cosh<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
  (func $std/math/test_exp (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.exp
+  (local $4 f64)
+  block $~lib/math/NativeMath.exp<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/exp64
+   br $~lib/math/NativeMath.exp<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -7030,16 +7387,44 @@
   end
  )
  (func $std/math/test_expf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.exp
+  (local $4 f32)
+  block $~lib/math/NativeMath.exp<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/exp32
+   br $~lib/math/NativeMath.exp<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
  (func $std/math/test_expm1 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.expm1
+  (local $4 f64)
+  block $~lib/math/NativeMath.expm1<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/expm1_64
+   br $~lib/math/NativeMath.expm1<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -7056,428 +7441,459 @@
   end
  )
  (func $std/math/test_expm1f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.expm1
+  (local $4 f32)
+  block $~lib/math/NativeMath.expm1<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/expm1_32
+   br $~lib/math/NativeMath.expm1<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.exp2 (param $0 f64) (result f64)
-  (local $1 f64)
-  (local $2 i64)
-  (local $3 i32)
-  (local $4 f64)
-  (local $5 i64)
-  (local $6 f64)
-  (local $7 i32)
-  (local $8 i64)
-  (local $9 f64)
-  (local $10 i64)
+ (func $~lib/util/math/exp2_64_lut (param $0 f64) (result f64)
+  (local $1 i64)
+  (local $2 i32)
+  (local $3 f64)
+  (local $4 i64)
+  (local $5 f64)
+  (local $6 i32)
+  (local $7 i64)
+  (local $8 f64)
+  (local $9 i64)
+  (local $10 f64)
   (local $11 f64)
-  (local $12 f64)
+  (local $12 i64)
   (local $13 i64)
-  (local $14 i64)
+  (local $14 f64)
   (local $15 f64)
   (local $16 f64)
   (local $17 f64)
   (local $18 f64)
   (local $19 f64)
-  block $~lib/util/math/exp2_lut|inlined.0 (result f64)
-   local.get $0
-   local.set $1
-   local.get $1
-   i64.reinterpret_f64
-   local.set $2
+  local.get $0
+  i64.reinterpret_f64
+  local.set $1
+  local.get $1
+  i64.const 52
+  i64.shr_u
+  i64.const 2047
+  i64.and
+  i32.wrap_i64
+  local.set $2
+  local.get $2
+  i32.const 969
+  i32.sub
+  i32.const 63
+  i32.ge_u
+  if
    local.get $2
-   i64.const 52
-   i64.shr_u
-   i64.const 2047
-   i64.and
-   i32.wrap_i64
-   local.set $3
-   local.get $3
    i32.const 969
    i32.sub
-   i32.const 63
+   i32.const -2147483648
    i32.ge_u
    if
-    local.get $3
-    i32.const 969
-    i32.sub
-    i32.const -2147483648
+    f64.const 1
+    return
+   end
+   local.get $2
+   i32.const 1033
+   i32.ge_u
+   if
+    local.get $1
+    i64.const -4503599627370496
+    i64.eq
+    if
+     f64.const 0
+     return
+    end
+    local.get $2
+    i32.const 2047
     i32.ge_u
     if
      f64.const 1
-     br $~lib/util/math/exp2_lut|inlined.0
+     local.get $0
+     f64.add
+     return
     end
-    local.get $3
-    i32.const 1033
-    i32.ge_u
+    local.get $1
+    i64.const 63
+    i64.shr_u
+    i64.const 0
+    i64.ne
+    i32.eqz
     if
-     local.get $2
-     i64.const -4503599627370496
-     i64.eq
+     f64.const inf
+     return
+    else
+     local.get $1
+     i64.const -4570929321408987136
+     i64.ge_u
      if
       f64.const 0
-      br $~lib/util/math/exp2_lut|inlined.0
-     end
-     local.get $3
-     i32.const 2047
-     i32.ge_u
-     if
-      f64.const 1
-      local.get $1
-      f64.add
-      br $~lib/util/math/exp2_lut|inlined.0
-     end
-     local.get $2
-     i64.const 63
-     i64.shr_u
-     i64.const 0
-     i64.ne
-     i32.eqz
-     if
-      f64.const inf
-      br $~lib/util/math/exp2_lut|inlined.0
-     else
-      local.get $2
-      i64.const -4570929321408987136
-      i64.ge_u
-      if
-       f64.const 0
-       br $~lib/util/math/exp2_lut|inlined.0
-      end
+      return
      end
     end
-    local.get $2
-    i64.const 1
-    i64.shl
-    i64.const -9143996093422370816
-    i64.gt_u
-    if
-     i32.const 0
-     local.set $3
-    end
    end
    local.get $1
-   f64.const 52776558133248
-   f64.add
-   local.set $4
-   local.get $4
-   i64.reinterpret_f64
-   local.set $5
-   local.get $4
-   f64.const 52776558133248
-   f64.sub
-   local.set $4
-   local.get $1
-   local.get $4
-   f64.sub
-   local.set $6
-   local.get $5
-   i32.const 127
-   i64.extend_i32_s
-   i64.and
    i64.const 1
    i64.shl
-   i32.wrap_i64
-   local.set $7
-   local.get $5
-   i64.const 52
-   i32.const 7
-   i64.extend_i32_s
-   i64.sub
-   i64.shl
-   local.set $8
-   i32.const 4640
-   local.get $7
-   i32.const 3
-   i32.shl
-   i32.add
-   i64.load
-   f64.reinterpret_i64
-   local.set $9
-   i32.const 4640
-   local.get $7
-   i32.const 3
-   i32.shl
-   i32.add
-   i64.load offset=8
-   local.get $8
-   i64.add
-   local.set $10
-   local.get $6
-   local.get $6
-   f64.mul
-   local.set $11
-   local.get $9
-   local.get $6
-   f64.const 0.6931471805599453
-   f64.mul
-   f64.add
-   local.get $11
-   f64.const 0.24022650695909065
-   local.get $6
-   f64.const 0.0555041086686087
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.get $11
-   local.get $11
-   f64.mul
-   f64.const 0.009618131975721055
-   local.get $6
-   f64.const 1.3332074570119598e-03
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.set $12
-   local.get $3
-   i32.const 0
-   i32.eq
+   i64.const -9143996093422370816
+   i64.gt_u
    if
-    block $~lib/util/math/specialcase2|inlined.0 (result f64)
-     local.get $12
-     local.set $15
-     local.get $10
-     local.set $14
-     local.get $5
-     local.set $13
-     local.get $13
-     i64.const 2147483648
-     i64.and
-     i64.const 0
-     i64.eq
-     if
-      local.get $14
-      i64.const 1
-      i64.const 52
-      i64.shl
-      i64.sub
-      local.set $14
-      local.get $14
-      f64.reinterpret_i64
-      local.set $16
-      f64.const 2
-      local.get $16
-      local.get $15
-      f64.mul
-      local.get $16
-      f64.add
-      f64.mul
-      br $~lib/util/math/specialcase2|inlined.0
-     end
-     local.get $14
-     i64.const 1022
-     i64.const 52
-     i64.shl
-     i64.add
-     local.set $14
-     local.get $14
-     f64.reinterpret_i64
-     local.set $16
-     local.get $16
-     local.get $15
-     f64.mul
-     local.get $16
-     f64.add
-     local.set $17
-     local.get $17
-     f64.const 1
-     f64.lt
-     if
-      local.get $16
-      local.get $17
-      f64.sub
-      local.get $16
-      local.get $15
-      f64.mul
-      f64.add
-      local.set $19
-      f64.const 1
-      local.get $17
-      f64.add
-      local.set $18
-      f64.const 1
-      local.get $18
-      f64.sub
-      local.get $17
-      f64.add
-      local.get $19
-      f64.add
-      local.set $19
-      local.get $18
-      local.get $19
-      f64.add
-      f64.const 1
-      f64.sub
-      local.set $17
-     end
-     local.get $17
-     f64.const 2.2250738585072014e-308
-     f64.mul
-    end
-    br $~lib/util/math/exp2_lut|inlined.0
+    i32.const 0
+    local.set $2
    end
-   local.get $10
-   f64.reinterpret_i64
-   local.set $17
-   local.get $17
-   local.get $12
-   f64.mul
-   local.get $17
-   f64.add
   end
- )
- (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   local.get $0
-  call $~lib/math/NativeMath.exp2
-  local.get $1
-  local.get $2
+  f64.const 52776558133248
+  f64.add
+  local.set $3
   local.get $3
-  call $std/math/check<f64>
-  if (result i32)
-   f64.const 2
-   local.get $0
-   call $~lib/bindings/dom/Math.pow
-   local.get $1
-   local.get $2
-   local.get $3
-   call $std/math/check<f64>
-  else
-   i32.const 0
-  end
- )
- (func $~lib/math/NativeMathf.exp2 (param $0 f32) (result f32)
-  (local $1 f32)
-  (local $2 f64)
-  (local $3 i32)
-  (local $4 i32)
-  (local $5 f64)
-  (local $6 i64)
-  (local $7 f64)
-  (local $8 i64)
-  (local $9 f64)
-  (local $10 f64)
-  block $~lib/util/math/exp2f_lut|inlined.0 (result f32)
-   local.get $0
-   local.set $1
-   local.get $1
-   f64.promote_f32
-   local.set $2
-   local.get $1
-   i32.reinterpret_f32
-   local.set $3
-   local.get $3
-   i32.const 20
-   i32.shr_u
-   i32.const 2047
-   i32.and
-   local.set $4
-   local.get $4
-   i32.const 1072
-   i32.ge_u
-   if
-    local.get $3
-    i32.const -8388608
-    i32.eq
-    if
-     f32.const 0
-     br $~lib/util/math/exp2f_lut|inlined.0
-    end
+  i64.reinterpret_f64
+  local.set $4
+  local.get $3
+  f64.const 52776558133248
+  f64.sub
+  local.set $3
+  local.get $0
+  local.get $3
+  f64.sub
+  local.set $5
+  local.get $4
+  i32.const 127
+  i64.extend_i32_s
+  i64.and
+  i64.const 1
+  i64.shl
+  i32.wrap_i64
+  local.set $6
+  local.get $4
+  i64.const 52
+  i32.const 7
+  i64.extend_i32_s
+  i64.sub
+  i64.shl
+  local.set $7
+  i32.const 4640
+  local.get $6
+  i32.const 3
+  i32.shl
+  i32.add
+  i64.load
+  f64.reinterpret_i64
+  local.set $8
+  i32.const 4640
+  local.get $6
+  i32.const 3
+  i32.shl
+  i32.add
+  i64.load offset=8
+  local.get $7
+  i64.add
+  local.set $9
+  local.get $5
+  local.get $5
+  f64.mul
+  local.set $10
+  local.get $8
+  local.get $5
+  f64.const 0.6931471805599453
+  f64.mul
+  f64.add
+  local.get $10
+  f64.const 0.24022650695909065
+  local.get $5
+  f64.const 0.0555041086686087
+  f64.mul
+  f64.add
+  f64.mul
+  f64.add
+  local.get $10
+  local.get $10
+  f64.mul
+  f64.const 0.009618131975721055
+  local.get $5
+  f64.const 1.3332074570119598e-03
+  f64.mul
+  f64.add
+  f64.mul
+  f64.add
+  local.set $11
+  local.get $2
+  i32.const 0
+  i32.eq
+  if
+   block $~lib/util/math/specialcase2|inlined.0 (result f64)
+    local.get $11
+    local.set $14
+    local.get $9
+    local.set $13
     local.get $4
-    i32.const 2040
-    i32.ge_u
-    if
-     local.get $1
-     local.get $1
-     f32.add
-     br $~lib/util/math/exp2f_lut|inlined.0
-    end
-    local.get $1
-    f32.const 0
-    f32.gt
+    local.set $12
+    local.get $12
+    i64.const 2147483648
+    i64.and
+    i64.const 0
+    i64.eq
     if
-     local.get $1
-     f32.const 1701411834604692317316873e14
-     f32.mul
-     br $~lib/util/math/exp2f_lut|inlined.0
+     local.get $13
+     i64.const 1
+     i64.const 52
+     i64.shl
+     i64.sub
+     local.set $13
+     local.get $13
+     f64.reinterpret_i64
+     local.set $15
+     f64.const 2
+     local.get $15
+     local.get $14
+     f64.mul
+     local.get $15
+     f64.add
+     f64.mul
+     br $~lib/util/math/specialcase2|inlined.0
     end
-    local.get $1
-    f32.const -150
-    f32.le
+    local.get $13
+    i64.const 1022
+    i64.const 52
+    i64.shl
+    i64.add
+    local.set $13
+    local.get $13
+    f64.reinterpret_i64
+    local.set $15
+    local.get $15
+    local.get $14
+    f64.mul
+    local.get $15
+    f64.add
+    local.set $16
+    local.get $16
+    f64.const 1
+    f64.lt
     if
-     f32.const 0
-     br $~lib/util/math/exp2f_lut|inlined.0
+     local.get $15
+     local.get $16
+     f64.sub
+     local.get $15
+     local.get $14
+     f64.mul
+     f64.add
+     local.set $18
+     f64.const 1
+     local.get $16
+     f64.add
+     local.set $17
+     f64.const 1
+     local.get $17
+     f64.sub
+     local.get $16
+     f64.add
+     local.get $18
+     f64.add
+     local.set $18
+     local.get $17
+     local.get $18
+     f64.add
+     f64.const 1
+     f64.sub
+     local.set $16
     end
+    local.get $16
+    f64.const 2.2250738585072014e-308
+    f64.mul
    end
+   return
+  end
+  local.get $9
+  f64.reinterpret_i64
+  local.set $19
+  local.get $19
+  local.get $11
+  f64.mul
+  local.get $19
+  f64.add
+ )
+ (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
+  (local $4 f64)
+  block $~lib/math/NativeMath.exp2<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/exp2_64_lut
+   br $~lib/math/NativeMath.exp2<f64>|inlined.0
+  end
+  local.get $1
+  local.get $2
+  local.get $3
+  call $std/math/check<f64>
+  if (result i32)
+   f64.const 2
+   local.get $0
+   call $~lib/bindings/dom/Math.pow
+   local.get $1
    local.get $2
-   f64.const 211106232532992
-   f64.add
-   local.set $5
-   local.get $5
-   i64.reinterpret_f64
-   local.set $6
+   local.get $3
+   call $std/math/check<f64>
+  else
+   i32.const 0
+  end
+ )
+ (func $~lib/util/math/exp2_32_lut (param $0 f32) (result f32)
+  (local $1 f64)
+  (local $2 i32)
+  (local $3 i32)
+  (local $4 f64)
+  (local $5 i64)
+  (local $6 f64)
+  (local $7 i64)
+  (local $8 f64)
+  (local $9 f64)
+  local.get $0
+  f64.promote_f32
+  local.set $1
+  local.get $0
+  i32.reinterpret_f32
+  local.set $2
+  local.get $2
+  i32.const 20
+  i32.shr_u
+  i32.const 2047
+  i32.and
+  local.set $3
+  local.get $3
+  i32.const 1072
+  i32.ge_u
+  if
    local.get $2
-   local.get $5
-   f64.const 211106232532992
-   f64.sub
-   f64.sub
-   local.set $7
-   i32.const 6688
-   local.get $6
-   i32.wrap_i64
-   i32.const 31
-   i32.and
-   i32.const 3
-   i32.shl
-   i32.add
-   i64.load
-   local.set $8
-   local.get $8
-   local.get $6
-   i64.const 52
-   i32.const 5
-   i64.extend_i32_s
-   i64.sub
-   i64.shl
-   i64.add
-   local.set $8
-   local.get $8
-   f64.reinterpret_i64
-   local.set $10
-   f64.const 0.6931471806916203
-   local.get $7
-   f64.mul
-   f64.const 1
-   f64.add
-   local.set $9
-   local.get $9
-   f64.const 0.05550361559341535
-   local.get $7
-   f64.mul
-   f64.const 0.2402284522445722
-   f64.add
-   local.get $7
-   local.get $7
-   f64.mul
-   f64.mul
-   f64.add
-   local.set $9
-   local.get $9
-   local.get $10
-   f64.mul
-   local.set $9
-   local.get $9
-   f32.demote_f64
+   i32.const -8388608
+   i32.eq
+   if
+    f32.const 0
+    return
+   end
+   local.get $3
+   i32.const 2040
+   i32.ge_u
+   if
+    local.get $0
+    local.get $0
+    f32.add
+    return
+   end
+   local.get $0
+   f32.const 0
+   f32.gt
+   if
+    local.get $0
+    f32.const 1701411834604692317316873e14
+    f32.mul
+    return
+   end
+   local.get $0
+   f32.const -150
+   f32.le
+   if
+    f32.const 0
+    return
+   end
   end
+  local.get $1
+  f64.const 211106232532992
+  f64.add
+  local.set $4
+  local.get $4
+  i64.reinterpret_f64
+  local.set $5
+  local.get $1
+  local.get $4
+  f64.const 211106232532992
+  f64.sub
+  f64.sub
+  local.set $6
+  i32.const 6688
+  local.get $5
+  i32.wrap_i64
+  i32.const 31
+  i32.and
+  i32.const 3
+  i32.shl
+  i32.add
+  i64.load
+  local.set $7
+  local.get $7
+  local.get $5
+  i64.const 52
+  i32.const 5
+  i64.extend_i32_s
+  i64.sub
+  i64.shl
+  i64.add
+  local.set $7
+  local.get $7
+  f64.reinterpret_i64
+  local.set $9
+  f64.const 0.6931471806916203
+  local.get $6
+  f64.mul
+  f64.const 1
+  f64.add
+  local.set $8
+  local.get $8
+  f64.const 0.05550361559341535
+  local.get $6
+  f64.mul
+  f64.const 0.2402284522445722
+  f64.add
+  local.get $6
+  local.get $6
+  f64.mul
+  f64.mul
+  f64.add
+  local.set $8
+  local.get $8
+  local.get $9
+  f64.mul
+  local.set $8
+  local.get $8
+  f32.demote_f64
  )
  (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.exp2
+  (local $4 f32)
+  block $~lib/math/NativeMath.exp2<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/exp2_32_lut
+   br $~lib/math/NativeMath.exp2<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -7485,10 +7901,17 @@
  )
  (func $std/math/test_floor (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   (local $4 f64)
-  local.get $0
-  local.set $4
-  local.get $4
-  f64.floor
+  block $~lib/math/NativeMath.floor<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f64.floor
+   br $~lib/math/NativeMath.floor<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -7506,16 +7929,23 @@
  )
  (func $std/math/test_floorf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
   (local $4 f32)
-  local.get $0
-  local.set $4
-  local.get $4
-  f32.floor
+  block $~lib/math/NativeMath.floor<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f32.floor
+   br $~lib/math/NativeMath.floor<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/hypot64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -7715,15 +8145,34 @@
   f64.mul
  )
  (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMath.hypot
+  (local $5 f64)
+  (local $6 f64)
+  block $~lib/math/NativeMath.hypot<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/hypot64
+   br $~lib/math/NativeMath.hypot<f64>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
   call $std/math/check<f64>
  )
- (func $~lib/math/NativeMathf.hypot (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/hypot32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -7855,17 +8304,48 @@
   f32.mul
  )
  (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMathf.hypot
+  (local $5 f32)
+  (local $6 f32)
+  block $~lib/math/NativeMath.hypot<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/hypot32
+   br $~lib/math/NativeMath.hypot<f32>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
   call $std/math/check<f32>
  )
  (func $std/math/test_log (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.log
+  (local $4 f64)
+  block $~lib/math/NativeMath.log<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log64
+   br $~lib/math/NativeMath.log<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -7882,14 +8362,26 @@
   end
  )
  (func $std/math/test_logf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.log
+  (local $4 f32)
+  block $~lib/math/NativeMath.log<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log32
+   br $~lib/math/NativeMath.log<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64)
+ (func $~lib/util/math/log10_64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
@@ -8150,8 +8642,24 @@
   f64.add
  )
  (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.log10
+  (local $4 f64)
+  block $~lib/math/NativeMath.log10<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log10_64
+   br $~lib/math/NativeMath.log10<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -8167,7 +8675,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32)
+ (func $~lib/util/math/log10_32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 f32)
@@ -8368,16 +8876,44 @@
   f32.add
  )
  (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.log10
+  (local $4 f32)
+  block $~lib/math/NativeMath.log10<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log10_32
+   br $~lib/math/NativeMath.log10<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
  (func $std/math/test_log1p (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.log1p
+  (local $4 f64)
+  block $~lib/math/NativeMath.log1p<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log1p64
+   br $~lib/math/NativeMath.log1p<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -8394,14 +8930,26 @@
   end
  )
  (func $std/math/test_log1pf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.log1p
+  (local $4 f32)
+  block $~lib/math/NativeMath.log1p<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log1p32
+   br $~lib/math/NativeMath.log1p<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64)
+ (func $~lib/util/math/log2_64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i64)
   (local $3 f64)
@@ -8429,7 +8977,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/log2_lut|inlined.0 (result f64)
+  block $~lib/util/math/log2_64_lut|inlined.0 (result f64)
    local.get $0
    local.set $1
    local.get $1
@@ -8534,7 +9082,7 @@
     local.get $11
     local.get $7
     f64.add
-    br $~lib/util/math/log2_lut|inlined.0
+    br $~lib/util/math/log2_64_lut|inlined.0
    end
    local.get $2
    i64.const 48
@@ -8560,14 +9108,14 @@
      local.get $1
      f64.mul
      f64.div
-     br $~lib/util/math/log2_lut|inlined.0
+     br $~lib/util/math/log2_64_lut|inlined.0
     end
     local.get $2
     i64.const 9218868437227405312
     i64.eq
     if
      local.get $1
-     br $~lib/util/math/log2_lut|inlined.0
+     br $~lib/util/math/log2_64_lut|inlined.0
     end
     local.get $12
     i32.const 32768
@@ -8589,7 +9137,7 @@
      local.get $1
      f64.sub
      f64.div
-     br $~lib/util/math/log2_lut|inlined.0
+     br $~lib/util/math/log2_64_lut|inlined.0
     end
     local.get $1
     f64.const 4503599627370496
@@ -8755,8 +9303,24 @@
   return
  )
  (func $std/math/test_log2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.log2
+  (local $4 f64)
+  block $~lib/math/NativeMath.log2<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log2_64
+   br $~lib/math/NativeMath.log2<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -8772,7 +9336,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.log2 (param $0 f32) (result f32)
+ (func $~lib/util/math/log2_32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 i32)
   (local $3 i32)
@@ -8792,7 +9356,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/log2f_lut|inlined.0 (result f32)
+  block $~lib/util/math/log2_32_lut|inlined.0 (result f32)
    local.get $0
    local.set $1
    local.get $1
@@ -8814,14 +9378,14 @@
     if
      f32.const inf
      f32.neg
-     br $~lib/util/math/log2f_lut|inlined.0
+     br $~lib/util/math/log2_32_lut|inlined.0
     end
     local.get $2
     i32.const 2139095040
     i32.eq
     if
      local.get $1
-     br $~lib/util/math/log2f_lut|inlined.0
+     br $~lib/util/math/log2_32_lut|inlined.0
     end
     local.get $2
     i32.const 31
@@ -8843,7 +9407,7 @@
      local.get $1
      f32.sub
      f32.div
-     br $~lib/util/math/log2f_lut|inlined.0
+     br $~lib/util/math/log2_32_lut|inlined.0
     end
     local.get $1
     f32.const 8388608
@@ -8948,8 +9512,20 @@
   return
  )
  (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.log2
+  (local $4 f32)
+  block $~lib/math/NativeMath.log2<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/log2_32
+   br $~lib/math/NativeMath.log2<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -9037,7 +9613,7 @@
   local.get $4
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/mod64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -9295,9 +9871,30 @@
   f64.reinterpret_i64
  )
  (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMath.mod
+  (local $5 f64)
+  (local $6 f64)
+  block $~lib/math/NativeMath.mod<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/mod64
+   br $~lib/math/NativeMath.mod<f64>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
@@ -9314,7 +9911,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/mod32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -9566,15 +10163,32 @@
   f32.reinterpret_i32
  )
  (func $std/math/test_modf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMathf.mod
+  (local $5 f32)
+  (local $6 f32)
+  block $~lib/math/NativeMath.mod<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/mod32
+   br $~lib/math/NativeMath.mod<f32>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/pow64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 f64)
   (local $3 f64)
   (local $4 i32)
@@ -9675,7 +10289,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/pow_lut|inlined.0 (result f64)
+  block $~lib/util/math/pow64_lut|inlined.0 (result f64)
    local.get $0
    local.set $3
    local.get $1
@@ -9736,14 +10350,14 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -9763,7 +10377,7 @@
       local.get $3
       local.get $2
       f64.add
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -9772,7 +10386,7 @@
      i64.eq
      if
       f64.const nan:0x8000000000000
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 1
@@ -9788,12 +10402,12 @@
      i32.eq
      if
       f64.const 0
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $2
      local.get $2
      f64.mul
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     local.set $9
@@ -9816,7 +10430,7 @@
      i64.shr_u
      i32.wrap_i64
      if (result i32)
-      block $~lib/util/math/checkint|inlined.0 (result i32)
+      block $~lib/util/math/checkint64|inlined.0 (result i32)
        local.get $6
        local.set $9
        local.get $9
@@ -9830,7 +10444,7 @@
        i64.lt_u
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $11
        i64.const 1023
@@ -9839,7 +10453,7 @@
        i64.gt_u
        if
         i32.const 2
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i64.const 1
        i64.const 1023
@@ -9858,7 +10472,7 @@
        i64.ne
        if
         i32.const 0
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        local.get $9
        local.get $11
@@ -9867,7 +10481,7 @@
        i64.ne
        if
         i32.const 1
-        br $~lib/util/math/checkint|inlined.0
+        br $~lib/util/math/checkint64|inlined.0
        end
        i32.const 2
       end
@@ -9893,7 +10507,7 @@
      else
       local.get $10
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $5
     i64.const 63
@@ -9901,7 +10515,7 @@
     i64.const 0
     i64.ne
     if
-     block $~lib/util/math/checkint|inlined.1 (result i32)
+     block $~lib/util/math/checkint64|inlined.1 (result i32)
       local.get $6
       local.set $9
       local.get $9
@@ -9915,7 +10529,7 @@
       i64.lt_u
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $11
       i64.const 1023
@@ -9924,7 +10538,7 @@
       i64.gt_u
       if
        i32.const 2
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i64.const 1
       i64.const 1023
@@ -9943,7 +10557,7 @@
       i64.ne
       if
        i32.const 0
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       local.get $9
       local.get $11
@@ -9952,7 +10566,7 @@
       i64.ne
       if
        i32.const 1
-       br $~lib/util/math/checkint|inlined.1
+       br $~lib/util/math/checkint64|inlined.1
       end
       i32.const 2
      end
@@ -9968,7 +10582,7 @@
       local.get $3
       f64.sub
       f64.div
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $12
      i32.const 1
@@ -10001,7 +10615,7 @@
      i64.eq
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $8
      i64.const 2047
@@ -10010,7 +10624,7 @@
      i64.lt_u
      if
       f64.const 1
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $5
      i64.const 4607182418800017408
@@ -10024,7 +10638,7 @@
      else
       f64.const 0
      end
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $7
     i64.const 0
@@ -10273,7 +10887,7 @@
    f64.mul
    f64.add
    local.set $35
-   block $~lib/util/math/exp_inline|inlined.0 (result f64)
+   block $~lib/util/math/exp64_inline|inlined.0 (result f64)
     local.get $36
     local.set $15
     local.get $35
@@ -10306,7 +10920,7 @@
       f64.const 1
       local.get $12
       select
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      local.get $39
      i32.const 1033
@@ -10348,7 +10962,7 @@
        local.get $17
        f64.mul
       end
-      br $~lib/util/math/exp_inline|inlined.0
+      br $~lib/util/math/exp64_inline|inlined.0
      end
      i32.const 0
      local.set $39
@@ -10544,7 +11158,7 @@
       f64.const 2.2250738585072014e-308
       f64.mul
      end
-     br $~lib/util/math/exp_inline|inlined.0
+     br $~lib/util/math/exp64_inline|inlined.0
     end
     local.get $11
     f64.reinterpret_i64
@@ -10559,9 +11173,28 @@
   return
  )
  (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMath.pow
+  (local $5 f64)
+  (local $6 f64)
+  block $~lib/math/NativeMath.pow<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
@@ -10578,7 +11211,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/pow32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 f32)
   (local $3 f32)
   (local $4 i32)
@@ -10659,7 +11292,7 @@
   i32.const 1
   i32.lt_s
   drop
-  block $~lib/util/math/powf_lut|inlined.0 (result f32)
+  block $~lib/util/math/pow32_lut|inlined.0 (result f32)
    local.get $0
    local.set $3
    local.get $1
@@ -10708,14 +11341,14 @@
      i32.eq
      if
       f32.const 1
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1065353216
      i32.eq
      if
       f32.const nan:0x400000
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -10739,7 +11372,7 @@
       local.get $3
       local.get $2
       f32.add
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -10750,7 +11383,7 @@
      i32.eq
      if
       f32.const nan:0x400000
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $5
      i32.const 1
@@ -10766,12 +11399,12 @@
      i32.eq
      if
       f32.const 0
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $2
      local.get $2
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $5
     local.set $8
@@ -10795,7 +11428,7 @@
      i32.const 31
      i32.shr_u
      if (result i32)
-      block $~lib/util/math/checkintf|inlined.0 (result i32)
+      block $~lib/util/math/checkint32|inlined.0 (result i32)
        local.get $6
        local.set $8
        local.get $8
@@ -10809,7 +11442,7 @@
        i32.lt_u
        if
         i32.const 0
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        local.get $10
        i32.const 127
@@ -10818,7 +11451,7 @@
        i32.gt_u
        if
         i32.const 2
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        i32.const 1
        i32.const 127
@@ -10835,14 +11468,14 @@
        i32.and
        if
         i32.const 0
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        local.get $8
        local.get $10
        i32.and
        if
         i32.const 1
-        br $~lib/util/math/checkintf|inlined.0
+        br $~lib/util/math/checkint32|inlined.0
        end
        i32.const 2
       end
@@ -10866,13 +11499,13 @@
      else
       local.get $9
      end
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $5
     i32.const 31
     i32.shr_u
     if
-     block $~lib/util/math/checkintf|inlined.1 (result i32)
+     block $~lib/util/math/checkint32|inlined.1 (result i32)
       local.get $6
       local.set $8
       local.get $8
@@ -10886,7 +11519,7 @@
       i32.lt_u
       if
        i32.const 0
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       local.get $10
       i32.const 127
@@ -10895,7 +11528,7 @@
       i32.gt_u
       if
        i32.const 2
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       i32.const 1
       i32.const 127
@@ -10912,14 +11545,14 @@
       i32.and
       if
        i32.const 0
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       local.get $8
       local.get $10
       i32.and
       if
        i32.const 1
-       br $~lib/util/math/checkintf|inlined.1
+       br $~lib/util/math/checkint32|inlined.1
       end
       i32.const 2
      end
@@ -10935,7 +11568,7 @@
       local.get $3
       f32.sub
       f32.div
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      local.get $10
      i32.const 1
@@ -11099,7 +11732,7 @@
      select
      local.get $9
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $21
     f64.const -150
@@ -11119,7 +11752,7 @@
      select
      local.get $9
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
    end
    local.get $21
@@ -11194,15 +11827,30 @@
   return
  )
  (func $std/math/test_powf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMathf.pow
+  (local $5 f32)
+  (local $6 f32)
+  block $~lib/math/NativeMath.pow<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $6
+   local.get $1
+   local.set $5
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $6
+   local.get $5
+   call $~lib/util/math/pow32
+   br $~lib/math/NativeMath.pow<f32>|inlined.0
+  end
   local.get $2
   local.get $3
   local.get $4
   call $std/math/check<f32>
  )
- (func $~lib/math/murmurHash3 (param $0 i64) (result i64)
+ (func $~lib/util/math/murmurHash3 (param $0 i64) (result i64)
   local.get $0
   local.get $0
   i64.const 33
@@ -11231,41 +11879,6 @@
   local.set $0
   local.get $0
  )
- (func $~lib/math/splitMix32 (param $0 i32) (result i32)
-  local.get $0
-  i32.const 1831565813
-  i32.add
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 15
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 1
-  i32.or
-  i32.mul
-  local.set $0
-  local.get $0
-  local.get $0
-  local.get $0
-  local.get $0
-  i32.const 7
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 61
-  i32.or
-  i32.mul
-  i32.add
-  i32.xor
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 14
-  i32.shr_u
-  i32.xor
- )
  (func $~lib/math/NativeMath.seedRandom (param $0 i64)
   local.get $0
   i64.const 0
@@ -11275,20 +11888,13 @@
    local.set $0
   end
   local.get $0
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state0_64
   global.get $~lib/math/random_state0_64
   i64.const -1
   i64.xor
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state1_64
-  local.get $0
-  i32.wrap_i64
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state0_32
-  global.get $~lib/math/random_state0_32
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state1_32
   i32.const 1
   global.set $~lib/math/random_seeded
  )
@@ -11344,79 +11950,31 @@
   f64.const 1
   f64.sub
  )
- (func $~lib/math/NativeMathf.random (result f32)
-  (local $0 i64)
-  (local $1 i32)
-  (local $2 i32)
-  (local $3 i32)
-  global.get $~lib/math/random_seeded
-  i32.eqz
-  if
-   call $~lib/builtins/seed
-   i64.reinterpret_f64
-   local.set $0
-   local.get $0
-   call $~lib/math/NativeMath.seedRandom
-  end
-  global.get $~lib/math/random_state0_32
-  local.set $1
-  global.get $~lib/math/random_state1_32
-  local.set $2
-  local.get $1
-  i32.const -1640531525
-  i32.mul
-  i32.const 5
-  i32.rotl
-  i32.const 5
-  i32.mul
-  local.set $3
-  local.get $2
-  local.get $1
-  i32.xor
-  local.set $2
-  local.get $1
-  i32.const 26
-  i32.rotl
-  local.get $2
-  i32.xor
-  local.get $2
-  i32.const 9
-  i32.shl
-  i32.xor
-  global.set $~lib/math/random_state0_32
-  local.get $2
-  i32.const 13
-  i32.rotl
-  global.set $~lib/math/random_state1_32
-  local.get $3
-  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 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   (local $4 f64)
   (local $5 f64)
-  local.get $0
-  local.set $4
-  local.get $4
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $4
-  f64.le
-  select
+  block $~lib/math/NativeMath.round<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f64.ceil
+   local.set $5
+   local.get $5
+   local.get $5
+   f64.const 1
+   f64.sub
+   local.get $5
+   f64.const 0.5
+   f64.sub
+   local.get $4
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -11425,21 +11983,28 @@
  (func $std/math/test_roundf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
   (local $4 f32)
   (local $5 f32)
-  local.get $0
-  local.set $4
-  local.get $4
-  f32.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f32.const 1
-  f32.sub
-  local.get $5
-  f32.const 0.5
-  f32.sub
-  local.get $4
-  f32.le
-  select
+  block $~lib/math/NativeMath.round<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f32.ceil
+   local.set $5
+   local.get $5
+   local.get $5
+   f32.const 1
+   f32.sub
+   local.get $5
+   f32.const 0.5
+   f32.sub
+   local.get $4
+   f32.le
+   select
+   br $~lib/math/NativeMath.round<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -11447,10 +12012,14 @@
  )
  (func $std/math/test_sign (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   (local $4 f64)
-  block $~lib/math/NativeMath.sign|inlined.0 (result f64)
+  block $~lib/math/NativeMath.sign<f64>|inlined.0 (result f64)
    local.get $0
    local.set $4
    i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 0
    i32.const 0
    i32.gt_s
    drop
@@ -11469,7 +12038,7 @@
      local.get $4
     end
    end
-   br $~lib/math/NativeMath.sign|inlined.0
+   br $~lib/math/NativeMath.sign<f64>|inlined.0
   end
   local.get $1
   local.get $2
@@ -11488,10 +12057,14 @@
  )
  (func $std/math/test_signf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
   (local $4 f32)
-  block $~lib/math/NativeMathf.sign|inlined.0 (result f32)
+  block $~lib/math/NativeMath.sign<f32>|inlined.0 (result f32)
    local.get $0
    local.set $4
    i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 0
    i32.const 0
    i32.gt_s
    drop
@@ -11510,320 +12083,539 @@
      local.get $4
     end
    end
-   br $~lib/math/NativeMathf.sign|inlined.0
+   br $~lib/math/NativeMath.sign<f32>|inlined.0
   end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64)
-  (local $2 i64)
-  (local $3 i64)
-  (local $4 i64)
-  (local $5 i64)
-  (local $6 i32)
+ (func $~lib/util/math/sin64 (param $0 f64) (result f64)
+  (local $1 i64)
+  (local $2 i32)
+  (local $3 i32)
+  (local $4 i32)
+  (local $5 f64)
+  (local $6 f64)
   (local $7 f64)
-  (local $8 i64)
-  (local $9 i32)
-  (local $10 i32)
+  (local $8 f64)
+  (local $9 f64)
+  (local $10 f64)
   (local $11 i64)
-  (local $12 f64)
+  (local $12 i32)
+  (local $13 i32)
+  (local $14 i32)
+  (local $15 i32)
+  (local $16 f64)
+  (local $17 i32)
+  (local $18 f64)
+  (local $19 f64)
   local.get $0
   i64.reinterpret_f64
-  local.set $2
+  local.set $1
   local.get $1
-  i64.reinterpret_f64
+  i64.const 32
+  i64.shr_u
+  i32.wrap_i64
+  local.set $2
+  local.get $2
+  i32.const 31
+  i32.shr_u
   local.set $3
   local.get $2
-  i64.const 52
-  i64.shr_u
-  i64.const 2047
-  i64.and
-  local.set $4
-  local.get $3
-  i64.const 52
-  i64.shr_u
-  i64.const 2047
-  i64.and
-  local.set $5
+  i32.const 2147483647
+  i32.and
+  local.set $2
   local.get $2
-  i64.const 63
-  i64.shr_u
-  i32.wrap_i64
-  local.set $6
-  local.get $3
-  i64.const 1
-  i64.shl
-  i64.const 0
-  i64.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $4
-   i64.const 2047
-   i64.eq
-  end
-  if (result i32)
-   i32.const 1
-  else
-   local.get $1
-   local.get $1
-   f64.ne
-  end
+  i32.const 1072243195
+  i32.le_u
   if
-   local.get $0
-   local.get $1
-   f64.mul
-   local.set $7
-   local.get $7
-   local.get $7
-   f64.div
+   local.get $2
+   i32.const 1045430272
+   i32.lt_u
+   if
+    local.get $0
+    return
+   end
+   block $~lib/util/math/sin64_kern|inlined.1 (result f64)
+    local.get $0
+    local.set $6
+    f64.const 0
+    local.set $5
+    i32.const 0
+    local.set $4
+    local.get $6
+    local.get $6
+    f64.mul
+    local.set $7
+    local.get $7
+    local.get $7
+    f64.mul
+    local.set $8
+    f64.const 0.00833333333332249
+    local.get $7
+    f64.const -1.984126982985795e-04
+    local.get $7
+    f64.const 2.7557313707070068e-06
+    f64.mul
+    f64.add
+    f64.mul
+    f64.add
+    local.get $7
+    local.get $8
+    f64.mul
+    f64.const -2.5050760253406863e-08
+    local.get $7
+    f64.const 1.58969099521155e-10
+    f64.mul
+    f64.add
+    f64.mul
+    f64.add
+    local.set $9
+    local.get $7
+    local.get $6
+    f64.mul
+    local.set $10
+    local.get $4
+    i32.eqz
+    if
+     local.get $6
+     local.get $10
+     f64.const -0.16666666666666632
+     local.get $7
+     local.get $9
+     f64.mul
+     f64.add
+     f64.mul
+     f64.add
+     br $~lib/util/math/sin64_kern|inlined.1
+    else
+     local.get $6
+     local.get $7
+     f64.const 0.5
+     local.get $5
+     f64.mul
+     local.get $10
+     local.get $9
+     f64.mul
+     f64.sub
+     f64.mul
+     local.get $5
+     f64.sub
+     local.get $10
+     f64.const -0.16666666666666632
+     f64.mul
+     f64.sub
+     f64.sub
+     br $~lib/util/math/sin64_kern|inlined.1
+    end
+    unreachable
+   end
    return
   end
   local.get $2
-  i64.const 1
-  i64.shl
-  i64.const 0
-  i64.eq
+  i32.const 2146435072
+  i32.ge_u
   if
    local.get $0
+   local.get $0
+   f64.sub
    return
   end
-  local.get $2
-  local.set $8
-  local.get $4
-  i64.const 0
-  i64.ne
-  i32.eqz
-  if
-   local.get $4
-   local.get $8
-   i64.const 12
-   i64.shl
-   i64.clz
-   i64.sub
-   local.set $4
-   local.get $8
-   i64.const 1
-   local.get $4
-   i64.sub
-   i64.shl
-   local.set $8
-  else
-   local.get $8
-   i64.const -1
-   i64.const 12
-   i64.shr_u
-   i64.and
-   local.set $8
-   local.get $8
-   i64.const 1
-   i64.const 52
-   i64.shl
-   i64.or
-   local.set $8
-  end
-  local.get $5
-  i64.const 0
-  i64.ne
-  i32.eqz
-  if
-   local.get $5
-   local.get $3
-   i64.const 12
-   i64.shl
-   i64.clz
-   i64.sub
+  block $~lib/util/math/rempio2_64|inlined.1 (result i32)
+   local.get $0
    local.set $5
+   local.get $1
+   local.set $11
    local.get $3
-   i64.const 1
-   local.get $5
-   i64.sub
-   i64.shl
-   local.set $3
-  else
-   local.get $3
-   i64.const -1
-   i64.const 12
+   local.set $4
+   local.get $11
+   i64.const 32
    i64.shr_u
-   i64.and
-   local.set $3
-   local.get $3
-   i64.const 1
-   i64.const 52
-   i64.shl
-   i64.or
-   local.set $3
-  end
-  i32.const 0
-  local.set $9
-  block $do-break|0
-   loop $do-loop|0
+   i32.wrap_i64
+   i32.const 2147483647
+   i32.and
+   local.set $12
+   i32.const 0
+   i32.const 1
+   i32.lt_s
+   drop
+   local.get $12
+   i32.const 1073928572
+   i32.lt_u
+   if
+    i32.const 1
+    local.set $13
     local.get $4
-    local.get $5
-    i64.lt_s
+    i32.eqz
     if
-     local.get $4
-     i64.const 1
-     i64.add
      local.get $5
-     i64.eq
+     f64.const 1.5707963267341256
+     f64.sub
+     local.set $10
+     local.get $12
+     i32.const 1073291771
+     i32.ne
      if
-      br $do-break|0
+      local.get $10
+      f64.const 6.077100506506192e-11
+      f64.sub
+      local.set $9
+      local.get $10
+      local.get $9
+      f64.sub
+      f64.const 6.077100506506192e-11
+      f64.sub
+      local.set $8
+     else
+      local.get $10
+      f64.const 6.077100506303966e-11
+      f64.sub
+      local.set $10
+      local.get $10
+      f64.const 2.0222662487959506e-21
+      f64.sub
+      local.set $9
+      local.get $10
+      local.get $9
+      f64.sub
+      f64.const 2.0222662487959506e-21
+      f64.sub
+      local.set $8
      end
-     local.get $0
-     return
-    end
-    loop $while-continue|1
-     local.get $4
+    else
      local.get $5
-     i64.gt_s
+     f64.const 1.5707963267341256
+     f64.add
      local.set $10
-     local.get $10
+     local.get $12
+     i32.const 1073291771
+     i32.ne
      if
-      local.get $8
-      local.get $3
-      i64.ge_u
-      if
-       local.get $8
-       local.get $3
-       i64.sub
-       local.set $8
-       local.get $9
-       i32.const 1
-       i32.add
-       local.set $9
-      end
-      local.get $8
-      i64.const 1
-      i64.shl
-      local.set $8
+      local.get $10
+      f64.const 6.077100506506192e-11
+      f64.add
+      local.set $9
+      local.get $10
       local.get $9
-      i32.const 1
-      i32.shl
+      f64.sub
+      f64.const 6.077100506506192e-11
+      f64.add
+      local.set $8
+     else
+      local.get $10
+      f64.const 6.077100506303966e-11
+      f64.add
+      local.set $10
+      local.get $10
+      f64.const 2.0222662487959506e-21
+      f64.add
       local.set $9
-      local.get $4
-      i64.const 1
-      i64.sub
-      local.set $4
-      br $while-continue|1
+      local.get $10
+      local.get $9
+      f64.sub
+      f64.const 2.0222662487959506e-21
+      f64.add
+      local.set $8
      end
+     i32.const -1
+     local.set $13
     end
+    local.get $9
+    global.set $~lib/util/math/rempio2_y0
     local.get $8
-    local.get $3
-    i64.ge_u
-    if
-     local.get $8
-     local.get $3
-     i64.sub
-     local.set $8
-     local.get $9
-     i32.const 1
-     i32.add
-     local.set $9
-    end
+    global.set $~lib/util/math/rempio2_y1
+    local.get $13
+    br $~lib/util/math/rempio2_64|inlined.1
+   end
+   local.get $12
+   i32.const 1094263291
+   i32.lt_u
+   if
+    local.get $5
+    f64.const 0.6366197723675814
+    f64.mul
+    f64.nearest
+    local.set $8
+    local.get $5
     local.get $8
-    i64.const 0
-    i64.eq
+    f64.const 1.5707963267341256
+    f64.mul
+    f64.sub
+    local.set $9
+    local.get $8
+    f64.const 6.077100506506192e-11
+    f64.mul
+    local.set $10
+    local.get $12
+    i32.const 20
+    i32.shr_u
+    local.set $13
+    local.get $9
+    local.get $10
+    f64.sub
+    local.set $7
+    local.get $7
+    i64.reinterpret_f64
+    i64.const 32
+    i64.shr_u
+    i32.wrap_i64
+    local.set $14
+    local.get $13
+    local.get $14
+    i32.const 20
+    i32.shr_u
+    i32.const 2047
+    i32.and
+    i32.sub
+    local.set $15
+    local.get $15
+    i32.const 16
+    i32.gt_u
     if
-     i64.const -60
-     local.set $4
-    else
+     local.get $9
+     local.set $6
      local.get $8
-     i64.const 11
-     i64.shl
-     i64.clz
-     local.set $11
-     local.get $4
-     local.get $11
-     i64.sub
-     local.set $4
+     f64.const 6.077100506303966e-11
+     f64.mul
+     local.set $10
+     local.get $6
+     local.get $10
+     f64.sub
+     local.set $9
      local.get $8
-     local.get $11
-     i64.shl
-     local.set $8
+     f64.const 2.0222662487959506e-21
+     f64.mul
+     local.get $6
+     local.get $9
+     f64.sub
+     local.get $10
+     f64.sub
+     f64.sub
+     local.set $10
+     local.get $9
+     local.get $10
+     f64.sub
+     local.set $7
+     local.get $7
+     i64.reinterpret_f64
+     i64.const 32
+     i64.shr_u
+     i32.wrap_i64
+     local.set $14
+     local.get $13
+     local.get $14
+     i32.const 20
+     i32.shr_u
+     i32.const 2047
+     i32.and
+     i32.sub
+     local.set $15
+     local.get $15
+     i32.const 49
+     i32.gt_u
+     if
+      local.get $9
+      local.set $16
+      local.get $8
+      f64.const 2.0222662487111665e-21
+      f64.mul
+      local.set $10
+      local.get $16
+      local.get $10
+      f64.sub
+      local.set $9
+      local.get $8
+      f64.const 8.4784276603689e-32
+      f64.mul
+      local.get $16
+      local.get $9
+      f64.sub
+      local.get $10
+      f64.sub
+      f64.sub
+      local.set $10
+      local.get $9
+      local.get $10
+      f64.sub
+      local.set $7
+     end
     end
-    br $do-break|0
+    local.get $9
+    local.get $7
+    f64.sub
+    local.get $10
+    f64.sub
+    local.set $6
+    local.get $7
+    global.set $~lib/util/math/rempio2_y0
+    local.get $6
+    global.set $~lib/util/math/rempio2_y1
+    local.get $8
+    i32.trunc_sat_f64_s
+    br $~lib/util/math/rempio2_64|inlined.1
    end
-   unreachable
+   local.get $5
+   local.get $11
+   call $~lib/util/math/pio2_64_large_quot
+   local.set $15
+   i32.const 0
+   local.get $15
+   i32.sub
+   local.get $15
+   local.get $4
+   select
   end
-  local.get $4
-  i64.const 0
-  i64.gt_s
-  if
-   local.get $8
-   i64.const 1
-   i64.const 52
-   i64.shl
-   i64.sub
+  local.set $17
+  global.get $~lib/util/math/rempio2_y0
+  local.set $18
+  global.get $~lib/util/math/rempio2_y1
+  local.set $19
+  local.get $17
+  i32.const 1
+  i32.and
+  if (result f64)
+   local.get $18
    local.set $8
+   local.get $19
+   local.set $16
    local.get $8
-   local.get $4
-   i64.const 52
-   i64.shl
-   i64.or
-   local.set $8
-  else
    local.get $8
-   i64.const 0
-   local.get $4
-   i64.sub
-   i64.const 1
-   i64.add
-   i64.shr_u
-   local.set $8
-  end
-  local.get $8
-  f64.reinterpret_i64
-  local.set $0
-  local.get $1
-  f64.abs
-  local.set $1
-  local.get $0
-  local.get $0
-  f64.add
-  local.set $12
-  local.get $4
-  local.get $5
-  i64.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $4
-   i64.const 1
-   i64.add
+   f64.mul
+   local.set $5
    local.get $5
-   i64.eq
-   if (result i32)
-    local.get $12
-    local.get $1
-    f64.gt
-    if (result i32)
-     i32.const 1
+   local.get $5
+   f64.mul
+   local.set $6
+   local.get $5
+   f64.const 0.0416666666666666
+   local.get $5
+   f64.const -0.001388888888887411
+   local.get $5
+   f64.const 2.480158728947673e-05
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   f64.mul
+   local.get $6
+   local.get $6
+   f64.mul
+   f64.const -2.7557314351390663e-07
+   local.get $5
+   f64.const 2.087572321298175e-09
+   local.get $5
+   f64.const -1.1359647557788195e-11
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   local.set $7
+   f64.const 0.5
+   local.get $5
+   f64.mul
+   local.set $10
+   f64.const 1
+   local.get $10
+   f64.sub
+   local.set $6
+   local.get $6
+   f64.const 1
+   local.get $6
+   f64.sub
+   local.get $10
+   f64.sub
+   local.get $5
+   local.get $7
+   f64.mul
+   local.get $8
+   local.get $16
+   f64.mul
+   f64.sub
+   f64.add
+   f64.add
+  else
+   block $~lib/util/math/sin64_kern|inlined.2 (result f64)
+    local.get $18
+    local.set $16
+    local.get $19
+    local.set $9
+    i32.const 1
+    local.set $13
+    local.get $16
+    local.get $16
+    f64.mul
+    local.set $10
+    local.get $10
+    local.get $10
+    f64.mul
+    local.set $7
+    f64.const 0.00833333333332249
+    local.get $10
+    f64.const -1.984126982985795e-04
+    local.get $10
+    f64.const 2.7557313707070068e-06
+    f64.mul
+    f64.add
+    f64.mul
+    f64.add
+    local.get $10
+    local.get $7
+    f64.mul
+    f64.const -2.5050760253406863e-08
+    local.get $10
+    f64.const 1.58969099521155e-10
+    f64.mul
+    f64.add
+    f64.mul
+    f64.add
+    local.set $6
+    local.get $10
+    local.get $16
+    f64.mul
+    local.set $5
+    local.get $13
+    i32.eqz
+    if
+     local.get $16
+     local.get $5
+     f64.const -0.16666666666666632
+     local.get $10
+     local.get $6
+     f64.mul
+     f64.add
+     f64.mul
+     f64.add
+     br $~lib/util/math/sin64_kern|inlined.2
     else
-     local.get $12
-     local.get $1
-     f64.eq
-     if (result i32)
-      local.get $9
-      i32.const 1
-      i32.and
-     else
-      i32.const 0
-     end
+     local.get $16
+     local.get $10
+     f64.const 0.5
+     local.get $9
+     f64.mul
+     local.get $5
+     local.get $6
+     f64.mul
+     f64.sub
+     f64.mul
+     local.get $9
+     f64.sub
+     local.get $5
+     f64.const -0.16666666666666632
+     f64.mul
+     f64.sub
+     f64.sub
+     br $~lib/util/math/sin64_kern|inlined.2
     end
-   else
-    i32.const 0
+    unreachable
    end
   end
-  if
-   local.get $0
-   local.get $1
-   f64.sub
-   local.set $0
-  end
-  local.get $6
+  local.set $0
+  local.get $17
+  i32.const 2
+  i32.and
   if (result f64)
    local.get $0
    f64.neg
@@ -11831,1783 +12623,991 @@
    local.get $0
   end
  )
- (func $std/math/test_rem (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  local.get $0
+ (func $std/math/test_sin (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
+  (local $4 f64)
+  block $~lib/math/NativeMath.sin<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.0
+  end
   local.get $1
-  call $~lib/math/NativeMath.rem
   local.get $2
   local.get $3
-  local.get $4
   call $std/math/check<f64>
+  if (result i32)
+   local.get $0
+   call $~lib/bindings/dom/Math.sin
+   local.get $1
+   local.get $2
+   local.get $3
+   call $std/math/check<f64>
+  else
+   i32.const 0
+  end
  )
- (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/sin32 (param $0 f32) (result f32)
+  (local $1 i32)
   (local $2 i32)
-  (local $3 i32)
-  (local $4 i32)
-  (local $5 i32)
-  (local $6 i32)
-  (local $7 i32)
+  (local $3 f64)
+  (local $4 f64)
+  (local $5 f64)
+  (local $6 f64)
+  (local $7 f64)
   (local $8 i32)
   (local $9 i32)
   (local $10 f32)
+  (local $11 i32)
+  (local $12 f32)
+  (local $13 i32)
+  (local $14 i64)
+  (local $15 i32)
+  (local $16 i64)
+  (local $17 i64)
+  (local $18 i64)
+  (local $19 i64)
+  (local $20 i64)
+  (local $21 i64)
+  (local $22 i64)
+  (local $23 i32)
+  (local $24 i32)
+  (local $25 f64)
+  (local $26 f32)
   local.get $0
   i32.reinterpret_f32
-  local.set $2
+  local.set $1
   local.get $1
-  i32.reinterpret_f32
-  local.set $3
-  local.get $2
-  i32.const 23
-  i32.shr_u
-  i32.const 255
-  i32.and
-  local.set $4
-  local.get $3
-  i32.const 23
-  i32.shr_u
-  i32.const 255
-  i32.and
-  local.set $5
-  local.get $2
   i32.const 31
   i32.shr_u
-  local.set $6
-  local.get $2
-  local.set $7
-  local.get $3
-  i32.const 1
-  i32.shl
-  i32.const 0
-  i32.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $4
-   i32.const 255
-   i32.eq
-  end
-  if (result i32)
-   i32.const 1
-  else
-   local.get $1
-   local.get $1
-   f32.ne
-  end
+  local.set $2
+  local.get $1
+  i32.const 2147483647
+  i32.and
+  local.set $1
+  local.get $1
+  i32.const 1061752794
+  i32.le_u
   if
-   local.get $0
-   local.get $1
-   f32.mul
-   local.get $0
    local.get $1
-   f32.mul
-   f32.div
-   return
-  end
-  local.get $2
-  i32.const 1
-  i32.shl
-  i32.const 0
-  i32.eq
-  if
+   i32.const 964689920
+   i32.lt_u
+   if
+    local.get $0
+    return
+   end
    local.get $0
-   return
-  end
-  local.get $4
-  i32.eqz
-  if
-   local.get $4
-   local.get $7
-   i32.const 9
-   i32.shl
-   i32.clz
-   i32.sub
+   f64.promote_f32
+   local.set $3
+   local.get $3
+   local.get $3
+   f64.mul
    local.set $4
-   local.get $7
-   i32.const 1
    local.get $4
-   i32.sub
-   i32.shl
+   local.get $4
+   f64.mul
+   local.set $5
+   f64.const -1.9839334836096632e-04
+   local.get $4
+   f64.const 2.718311493989822e-06
+   f64.mul
+   f64.add
+   local.set $6
+   local.get $4
+   local.get $3
+   f64.mul
    local.set $7
-  else
+   local.get $3
    local.get $7
-   i32.const -1
-   i32.const 9
-   i32.shr_u
-   i32.and
-   local.set $7
+   f64.const -0.16666666641626524
+   local.get $4
+   f64.const 0.008333329385889463
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
    local.get $7
-   i32.const 1
-   i32.const 23
-   i32.shl
-   i32.or
-   local.set $7
-  end
-  local.get $5
-  i32.eqz
-  if
-   local.get $5
-   local.get $3
-   i32.const 9
-   i32.shl
-   i32.clz
-   i32.sub
-   local.set $5
-   local.get $3
-   i32.const 1
    local.get $5
-   i32.sub
-   i32.shl
-   local.set $3
-  else
-   local.get $3
-   i32.const -1
-   i32.const 9
-   i32.shr_u
-   i32.and
-   local.set $3
-   local.get $3
-   i32.const 1
-   i32.const 23
-   i32.shl
-   i32.or
-   local.set $3
+   f64.mul
+   local.get $6
+   f64.mul
+   f64.add
+   f32.demote_f64
+   return
   end
   i32.const 0
-  local.set $8
-  block $do-break|0
-   loop $do-loop|0
-    local.get $4
-    local.get $5
-    i32.lt_s
-    if
-     local.get $4
-     i32.const 1
-     i32.add
-     local.get $5
-     i32.eq
-     if
-      br $do-break|0
-     end
+  i32.const 1
+  i32.lt_s
+  drop
+  local.get $1
+  i32.const 1081824209
+  i32.le_u
+  if
+   local.get $1
+   i32.const 1075235811
+   i32.le_u
+   if
+    local.get $2
+    if (result f32)
      local.get $0
-     return
-    end
-    loop $while-continue|1
-     local.get $4
-     local.get $5
-     i32.gt_s
-     local.set $9
-     local.get $9
-     if
-      local.get $7
-      local.get $3
-      i32.ge_u
-      if
-       local.get $7
-       local.get $3
-       i32.sub
-       local.set $7
-       local.get $8
-       i32.const 1
-       i32.add
-       local.set $8
-      end
-      local.get $7
-      i32.const 1
-      i32.shl
-      local.set $7
-      local.get $8
-      i32.const 1
-      i32.shl
-      local.set $8
-      local.get $4
-      i32.const 1
-      i32.sub
-      local.set $4
-      br $while-continue|1
-     end
-    end
-    local.get $7
-    local.get $3
-    i32.ge_u
-    if
-     local.get $7
+     f64.promote_f32
+     f64.const 1.5707963267948966
+     f64.add
+     local.set $3
      local.get $3
-     i32.sub
+     local.get $3
+     f64.mul
      local.set $7
-     local.get $8
-     i32.const 1
-     i32.add
-     local.set $8
-    end
-    local.get $7
-    i32.const 0
-    i32.eq
-    if
-     i32.const -30
-     local.set $4
-    else
      local.get $7
-     i32.const 8
-     i32.shl
-     i32.clz
-     local.set $9
-     local.get $4
-     local.get $9
-     i32.sub
-     local.set $4
      local.get $7
-     local.get $9
-     i32.shl
-     local.set $7
-    end
-    br $do-break|0
-   end
-   unreachable
-  end
-  local.get $4
-  i32.const 0
-  i32.gt_s
-  if
-   local.get $7
-   i32.const 1
-   i32.const 23
-   i32.shl
-   i32.sub
-   local.set $7
-   local.get $7
-   local.get $4
-   i32.const 23
-   i32.shl
-   i32.or
-   local.set $7
-  else
-   local.get $7
-   i32.const 0
-   local.get $4
-   i32.sub
-   i32.const 1
-   i32.add
-   i32.shr_u
-   local.set $7
-  end
-  local.get $7
-  f32.reinterpret_i32
-  local.set $0
-  local.get $1
-  f32.abs
-  local.set $1
-  local.get $0
-  local.get $0
-  f32.add
-  local.set $10
-  local.get $4
-  local.get $5
-  i32.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $4
-   i32.const 1
-   i32.add
-   local.get $5
-   i32.eq
-   if (result i32)
-    local.get $10
-    local.get $1
-    f32.gt
-    if (result i32)
-     i32.const 1
+     f64.mul
+     local.set $6
+     f64.const -0.001388676377460993
+     local.get $7
+     f64.const 2.439044879627741e-05
+     f64.mul
+     f64.add
+     local.set $5
+     f32.const 1
+     f64.promote_f32
+     local.get $7
+     f64.const -0.499999997251031
+     f64.mul
+     f64.add
+     local.get $6
+     f64.const 0.04166662332373906
+     f64.mul
+     f64.add
+     local.get $6
+     local.get $7
+     f64.mul
+     local.get $5
+     f64.mul
+     f64.add
+     f32.demote_f64
+     f32.neg
     else
-     local.get $10
-     local.get $1
-     f32.eq
-     if (result i32)
-      local.get $8
-      i32.const 1
-      i32.and
-     else
-      i32.const 0
-     end
+     local.get $0
+     f64.promote_f32
+     f64.const 1.5707963267948966
+     f64.sub
+     local.set $4
+     local.get $4
+     local.get $4
+     f64.mul
+     local.set $5
+     local.get $5
+     local.get $5
+     f64.mul
+     local.set $6
+     f64.const -0.001388676377460993
+     local.get $5
+     f64.const 2.439044879627741e-05
+     f64.mul
+     f64.add
+     local.set $7
+     f32.const 1
+     f64.promote_f32
+     local.get $5
+     f64.const -0.499999997251031
+     f64.mul
+     f64.add
+     local.get $6
+     f64.const 0.04166662332373906
+     f64.mul
+     f64.add
+     local.get $6
+     local.get $5
+     f64.mul
+     local.get $7
+     f64.mul
+     f64.add
+     f32.demote_f64
     end
+    return
+   end
+   local.get $2
+   if (result f64)
+    local.get $0
+    f64.promote_f32
+    f64.const 3.141592653589793
+    f64.add
    else
-    i32.const 0
+    local.get $0
+    f64.promote_f32
+    f64.const 3.141592653589793
+    f64.sub
    end
+   f64.neg
+   local.set $3
+   local.get $3
+   local.get $3
+   f64.mul
+   local.set $7
+   local.get $7
+   local.get $7
+   f64.mul
+   local.set $6
+   f64.const -1.9839334836096632e-04
+   local.get $7
+   f64.const 2.718311493989822e-06
+   f64.mul
+   f64.add
+   local.set $5
+   local.get $7
+   local.get $3
+   f64.mul
+   local.set $4
+   local.get $3
+   local.get $4
+   f64.const -0.16666666641626524
+   local.get $7
+   f64.const 0.008333329385889463
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   local.get $4
+   local.get $6
+   f64.mul
+   local.get $5
+   f64.mul
+   f64.add
+   f32.demote_f64
+   return
   end
-  if
-   local.get $0
-   local.get $1
-   f32.sub
-   local.set $0
-  end
-  local.get $6
-  if (result f32)
-   local.get $0
-   f32.neg
-  else
-   local.get $0
-  end
- )
- (func $std/math/test_remf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  local.get $0
-  local.get $1
-  call $~lib/math/NativeMathf.rem
-  local.get $2
-  local.get $3
-  local.get $4
-  call $std/math/check<f32>
- )
- (func $~lib/math/NativeMath.sin (param $0 f64) (result f64)
-  (local $1 i64)
-  (local $2 i32)
-  (local $3 i32)
-  (local $4 i32)
-  (local $5 f64)
-  (local $6 f64)
-  (local $7 f64)
-  (local $8 f64)
-  (local $9 f64)
-  (local $10 f64)
-  (local $11 i64)
-  (local $12 i32)
-  (local $13 i32)
-  (local $14 i32)
-  (local $15 i32)
-  (local $16 f64)
-  (local $17 i32)
-  (local $18 f64)
-  (local $19 f64)
-  local.get $0
-  i64.reinterpret_f64
-  local.set $1
   local.get $1
-  i64.const 32
-  i64.shr_u
-  i32.wrap_i64
-  local.set $2
-  local.get $2
-  i32.const 31
-  i32.shr_u
-  local.set $3
-  local.get $2
-  i32.const 2147483647
-  i32.and
-  local.set $2
-  local.get $2
-  i32.const 1072243195
+  i32.const 1088565717
   i32.le_u
   if
-   local.get $2
-   i32.const 1045430272
-   i32.lt_u
+   local.get $1
+   i32.const 1085271519
+   i32.le_u
    if
-    local.get $0
-    return
-   end
-   block $~lib/math/sin_kern|inlined.1 (result f64)
-    local.get $0
-    local.set $6
-    f64.const 0
-    local.set $5
-    i32.const 0
-    local.set $4
-    local.get $6
-    local.get $6
-    f64.mul
-    local.set $7
-    local.get $7
-    local.get $7
-    f64.mul
-    local.set $8
-    f64.const 0.00833333333332249
-    local.get $7
-    f64.const -1.984126982985795e-04
-    local.get $7
-    f64.const 2.7557313707070068e-06
-    f64.mul
-    f64.add
-    f64.mul
-    f64.add
-    local.get $7
-    local.get $8
-    f64.mul
-    f64.const -2.5050760253406863e-08
-    local.get $7
-    f64.const 1.58969099521155e-10
-    f64.mul
-    f64.add
-    f64.mul
-    f64.add
-    local.set $9
-    local.get $7
-    local.get $6
-    f64.mul
-    local.set $10
-    local.get $4
-    i32.eqz
-    if
-     local.get $6
-     local.get $10
-     f64.const -0.16666666666666632
-     local.get $7
-     local.get $9
+    local.get $2
+    if (result f32)
+     local.get $0
+     f64.promote_f32
+     f64.const 4.71238898038469
+     f64.add
+     local.set $3
+     local.get $3
+     local.get $3
+     f64.mul
+     local.set $4
+     local.get $4
+     local.get $4
+     f64.mul
+     local.set $5
+     f64.const -0.001388676377460993
+     local.get $4
+     f64.const 2.439044879627741e-05
      f64.mul
      f64.add
+     local.set $6
+     f32.const 1
+     f64.promote_f32
+     local.get $4
+     f64.const -0.499999997251031
      f64.mul
      f64.add
-     br $~lib/math/sin_kern|inlined.1
-    else
-     local.get $6
-     local.get $7
-     f64.const 0.5
      local.get $5
+     f64.const 0.04166662332373906
      f64.mul
-     local.get $10
-     local.get $9
+     f64.add
+     local.get $5
+     local.get $4
+     f64.mul
+     local.get $6
      f64.mul
+     f64.add
+     f32.demote_f64
+    else
+     local.get $0
+     f64.promote_f32
+     f64.const 4.71238898038469
      f64.sub
+     local.set $7
+     local.get $7
+     local.get $7
+     f64.mul
+     local.set $6
+     local.get $6
+     local.get $6
+     f64.mul
+     local.set $5
+     f64.const -0.001388676377460993
+     local.get $6
+     f64.const 2.439044879627741e-05
+     f64.mul
+     f64.add
+     local.set $4
+     f32.const 1
+     f64.promote_f32
+     local.get $6
+     f64.const -0.499999997251031
      f64.mul
+     f64.add
      local.get $5
-     f64.sub
-     local.get $10
-     f64.const -0.16666666666666632
+     f64.const 0.04166662332373906
      f64.mul
-     f64.sub
-     f64.sub
-     br $~lib/math/sin_kern|inlined.1
+     f64.add
+     local.get $5
+     local.get $6
+     f64.mul
+     local.get $4
+     f64.mul
+     f64.add
+     f32.demote_f64
+     f32.neg
     end
-    unreachable
+    return
+   end
+   local.get $2
+   if (result f64)
+    local.get $0
+    f64.promote_f32
+    f64.const 6.283185307179586
+    f64.add
+   else
+    local.get $0
+    f64.promote_f32
+    f64.const 6.283185307179586
+    f64.sub
    end
+   local.set $3
+   local.get $3
+   local.get $3
+   f64.mul
+   local.set $4
+   local.get $4
+   local.get $4
+   f64.mul
+   local.set $5
+   f64.const -1.9839334836096632e-04
+   local.get $4
+   f64.const 2.718311493989822e-06
+   f64.mul
+   f64.add
+   local.set $6
+   local.get $4
+   local.get $3
+   f64.mul
+   local.set $7
+   local.get $3
+   local.get $7
+   f64.const -0.16666666641626524
+   local.get $4
+   f64.const 0.008333329385889463
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   local.get $7
+   local.get $5
+   f64.mul
+   local.get $6
+   f64.mul
+   f64.add
+   f32.demote_f64
    return
   end
-  local.get $2
-  i32.const 2146435072
+  local.get $1
+  i32.const 2139095040
   i32.ge_u
   if
    local.get $0
    local.get $0
-   f64.sub
+   f32.sub
    return
   end
-  block $~lib/math/rempio2|inlined.1 (result i32)
+  block $~lib/util/math/rempio2_32|inlined.1 (result i32)
    local.get $0
-   local.set $5
+   local.set $10
    local.get $1
-   local.set $11
-   local.get $3
-   local.set $4
-   local.get $11
-   i64.const 32
-   i64.shr_u
-   i32.wrap_i64
-   i32.const 2147483647
-   i32.and
-   local.set $12
-   i32.const 0
-   i32.const 1
-   i32.lt_s
-   drop
-   local.get $12
-   i32.const 1073928572
-   i32.lt_u
-   if
-    i32.const 1
-    local.set $13
-    local.get $4
-    i32.eqz
-    if
-     local.get $5
-     f64.const 1.5707963267341256
-     f64.sub
-     local.set $10
-     local.get $12
-     i32.const 1073291771
-     i32.ne
-     if
-      local.get $10
-      f64.const 6.077100506506192e-11
-      f64.sub
-      local.set $9
-      local.get $10
-      local.get $9
-      f64.sub
-      f64.const 6.077100506506192e-11
-      f64.sub
-      local.set $8
-     else
-      local.get $10
-      f64.const 6.077100506303966e-11
-      f64.sub
-      local.set $10
-      local.get $10
-      f64.const 2.0222662487959506e-21
-      f64.sub
-      local.set $9
-      local.get $10
-      local.get $9
-      f64.sub
-      f64.const 2.0222662487959506e-21
-      f64.sub
-      local.set $8
-     end
-    else
-     local.get $5
-     f64.const 1.5707963267341256
-     f64.add
-     local.set $10
-     local.get $12
-     i32.const 1073291771
-     i32.ne
-     if
-      local.get $10
-      f64.const 6.077100506506192e-11
-      f64.add
-      local.set $9
-      local.get $10
-      local.get $9
-      f64.sub
-      f64.const 6.077100506506192e-11
-      f64.add
-      local.set $8
-     else
-      local.get $10
-      f64.const 6.077100506303966e-11
-      f64.add
-      local.set $10
-      local.get $10
-      f64.const 2.0222662487959506e-21
-      f64.add
-      local.set $9
-      local.get $10
-      local.get $9
-      f64.sub
-      f64.const 2.0222662487959506e-21
-      f64.add
-      local.set $8
-     end
-     i32.const -1
-     local.set $13
-    end
-    local.get $9
-    global.set $~lib/math/rempio2_y0
-    local.get $8
-    global.set $~lib/math/rempio2_y1
-    local.get $13
-    br $~lib/math/rempio2|inlined.1
-   end
-   local.get $12
-   i32.const 1094263291
+   local.set $9
+   local.get $2
+   local.set $8
+   local.get $9
+   i32.const 1305022427
    i32.lt_u
    if
-    local.get $5
+    local.get $10
+    f64.promote_f32
     f64.const 0.6366197723675814
     f64.mul
     f64.nearest
-    local.set $8
-    local.get $5
-    local.get $8
-    f64.const 1.5707963267341256
-    f64.mul
-    f64.sub
-    local.set $9
-    local.get $8
-    f64.const 6.077100506506192e-11
-    f64.mul
-    local.set $10
-    local.get $12
-    i32.const 20
-    i32.shr_u
-    local.set $13
-    local.get $9
-    local.get $10
-    f64.sub
     local.set $7
+    local.get $10
+    f64.promote_f32
     local.get $7
-    i64.reinterpret_f64
-    i64.const 32
-    i64.shr_u
-    i32.wrap_i64
-    local.set $14
-    local.get $13
-    local.get $14
-    i32.const 20
-    i32.shr_u
-    i32.const 2047
-    i32.and
-    i32.sub
-    local.set $15
-    local.get $15
-    i32.const 16
-    i32.gt_u
-    if
-     local.get $9
-     local.set $6
-     local.get $8
-     f64.const 6.077100506303966e-11
-     f64.mul
-     local.set $10
-     local.get $6
-     local.get $10
-     f64.sub
-     local.set $9
-     local.get $8
-     f64.const 2.0222662487959506e-21
-     f64.mul
-     local.get $6
-     local.get $9
-     f64.sub
-     local.get $10
-     f64.sub
-     f64.sub
-     local.set $10
-     local.get $9
-     local.get $10
-     f64.sub
-     local.set $7
-     local.get $7
-     i64.reinterpret_f64
-     i64.const 32
-     i64.shr_u
-     i32.wrap_i64
-     local.set $14
-     local.get $13
-     local.get $14
-     i32.const 20
-     i32.shr_u
-     i32.const 2047
-     i32.and
-     i32.sub
-     local.set $15
-     local.get $15
-     i32.const 49
-     i32.gt_u
-     if
-      local.get $9
-      local.set $16
-      local.get $8
-      f64.const 2.0222662487111665e-21
-      f64.mul
-      local.set $10
-      local.get $16
-      local.get $10
-      f64.sub
-      local.set $9
-      local.get $8
-      f64.const 8.4784276603689e-32
-      f64.mul
-      local.get $16
-      local.get $9
-      f64.sub
-      local.get $10
-      f64.sub
-      f64.sub
-      local.set $10
-      local.get $9
-      local.get $10
-      f64.sub
-      local.set $7
-     end
-    end
-    local.get $9
-    local.get $7
+    f64.const 1.5707963109016418
+    f64.mul
     f64.sub
-    local.get $10
+    local.get $7
+    f64.const 1.5893254773528196e-08
+    f64.mul
     f64.sub
-    local.set $6
+    global.set $~lib/util/math/rempio2_32_y
     local.get $7
-    global.set $~lib/math/rempio2_y0
-    local.get $6
-    global.set $~lib/math/rempio2_y1
-    local.get $8
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.1
+    br $~lib/util/math/rempio2_32|inlined.1
    end
-   local.get $5
+   local.get $10
+   local.set $12
+   local.get $9
+   local.set $11
    local.get $11
-   call $~lib/math/pio2_large_quot
+   i32.const 23
+   i32.shr_s
+   i32.const 152
+   i32.sub
+   local.set $13
+   local.get $13
+   i32.const 63
+   i32.and
+   i64.extend_i32_s
+   local.set $14
+   i32.const 4608
+   local.get $13
+   i32.const 6
+   i32.shr_s
+   i32.const 3
+   i32.shl
+   i32.add
    local.set $15
-   i32.const 0
    local.get $15
-   i32.sub
+   i64.load
+   local.set $16
    local.get $15
-   local.get $4
+   i64.load offset=8
+   local.set $17
+   local.get $14
+   i64.const 32
+   i64.gt_u
+   if
+    local.get $15
+    i64.load offset=16
+    local.set $19
+    local.get $19
+    i64.const 96
+    local.get $14
+    i64.sub
+    i64.shr_u
+    local.set $18
+    local.get $18
+    local.get $17
+    local.get $14
+    i64.const 32
+    i64.sub
+    i64.shl
+    i64.or
+    local.set $18
+   else
+    local.get $17
+    i64.const 32
+    local.get $14
+    i64.sub
+    i64.shr_u
+    local.set $18
+   end
+   local.get $17
+   i64.const 64
+   local.get $14
+   i64.sub
+   i64.shr_u
+   local.get $16
+   local.get $14
+   i64.shl
+   i64.or
+   local.set $19
+   local.get $11
+   i32.const 8388607
+   i32.and
+   i32.const 8388608
+   i32.or
+   i64.extend_i32_s
+   local.set $20
+   local.get $20
+   local.get $19
+   i64.mul
+   local.get $20
+   local.get $18
+   i64.mul
+   i64.const 32
+   i64.shr_u
+   i64.add
+   local.set $21
+   local.get $21
+   i64.const 2
+   i64.shl
+   local.set $22
+   local.get $21
+   i64.const 62
+   i64.shr_u
+   local.get $22
+   i64.const 63
+   i64.shr_u
+   i64.add
+   i32.wrap_i64
+   local.set $23
+   f64.const 8.515303950216386e-20
+   local.get $12
+   f64.promote_f32
+   f64.copysign
+   local.get $22
+   f64.convert_i64_s
+   f64.mul
+   global.set $~lib/util/math/rempio2_32_y
+   local.get $23
+   local.set $23
+   i32.const 0
+   local.get $23
+   i32.sub
+   local.get $23
+   local.get $8
    select
   end
-  local.set $17
-  global.get $~lib/math/rempio2_y0
-  local.set $18
-  global.get $~lib/math/rempio2_y1
-  local.set $19
-  local.get $17
+  local.set $24
+  global.get $~lib/util/math/rempio2_32_y
+  local.set $25
+  local.get $24
   i32.const 1
   i32.and
-  if (result f64)
-   local.get $18
-   local.set $8
-   local.get $19
-   local.set $16
-   local.get $8
-   local.get $8
+  if (result f32)
+   local.get $25
+   local.set $3
+   local.get $3
+   local.get $3
    f64.mul
-   local.set $5
-   local.get $5
-   local.get $5
+   local.set $7
+   local.get $7
+   local.get $7
    f64.mul
    local.set $6
-   local.get $5
-   f64.const 0.0416666666666666
-   local.get $5
-   f64.const -0.001388888888887411
-   local.get $5
-   f64.const 2.480158728947673e-05
+   f64.const -0.001388676377460993
+   local.get $7
+   f64.const 2.439044879627741e-05
    f64.mul
    f64.add
+   local.set $5
+   f32.const 1
+   f64.promote_f32
+   local.get $7
+   f64.const -0.499999997251031
    f64.mul
    f64.add
-   f64.mul
    local.get $6
+   f64.const 0.04166662332373906
+   f64.mul
+   f64.add
    local.get $6
+   local.get $7
    f64.mul
-   f64.const -2.7557314351390663e-07
-   local.get $5
-   f64.const 2.087572321298175e-09
    local.get $5
-   f64.const -1.1359647557788195e-11
    f64.mul
    f64.add
+   f32.demote_f64
+  else
+   local.get $25
+   local.set $4
+   local.get $4
+   local.get $4
    f64.mul
-   f64.add
+   local.set $5
+   local.get $5
+   local.get $5
+   f64.mul
+   local.set $6
+   f64.const -1.9839334836096632e-04
+   local.get $5
+   f64.const 2.718311493989822e-06
    f64.mul
    f64.add
    local.set $7
-   f64.const 0.5
    local.get $5
+   local.get $4
    f64.mul
-   local.set $10
-   f64.const 1
-   local.get $10
-   f64.sub
-   local.set $6
-   local.get $6
-   f64.const 1
-   local.get $6
-   f64.sub
-   local.get $10
-   f64.sub
+   local.set $3
+   local.get $4
+   local.get $3
+   f64.const -0.16666666641626524
    local.get $5
-   local.get $7
+   f64.const 0.008333329385889463
    f64.mul
-   local.get $8
-   local.get $16
+   f64.add
    f64.mul
-   f64.sub
    f64.add
+   local.get $3
+   local.get $6
+   f64.mul
+   local.get $7
+   f64.mul
    f64.add
-  else
-   block $~lib/math/sin_kern|inlined.2 (result f64)
-    local.get $18
-    local.set $16
-    local.get $19
-    local.set $9
-    i32.const 1
-    local.set $13
-    local.get $16
-    local.get $16
-    f64.mul
-    local.set $10
-    local.get $10
-    local.get $10
-    f64.mul
-    local.set $7
-    f64.const 0.00833333333332249
-    local.get $10
-    f64.const -1.984126982985795e-04
-    local.get $10
-    f64.const 2.7557313707070068e-06
-    f64.mul
-    f64.add
-    f64.mul
-    f64.add
-    local.get $10
-    local.get $7
-    f64.mul
-    f64.const -2.5050760253406863e-08
-    local.get $10
-    f64.const 1.58969099521155e-10
-    f64.mul
-    f64.add
-    f64.mul
-    f64.add
-    local.set $6
-    local.get $10
-    local.get $16
-    f64.mul
-    local.set $5
-    local.get $13
-    i32.eqz
-    if
-     local.get $16
-     local.get $5
-     f64.const -0.16666666666666632
-     local.get $10
-     local.get $6
-     f64.mul
-     f64.add
-     f64.mul
-     f64.add
-     br $~lib/math/sin_kern|inlined.2
-    else
-     local.get $16
-     local.get $10
-     f64.const 0.5
-     local.get $9
-     f64.mul
-     local.get $5
-     local.get $6
-     f64.mul
-     f64.sub
-     f64.mul
-     local.get $9
-     f64.sub
-     local.get $5
-     f64.const -0.16666666666666632
-     f64.mul
-     f64.sub
-     f64.sub
-     br $~lib/math/sin_kern|inlined.2
-    end
-    unreachable
-   end
+   f32.demote_f64
   end
-  local.set $0
-  local.get $17
+  local.set $26
+  local.get $24
   i32.const 2
   i32.and
-  if (result f64)
-   local.get $0
-   f64.neg
+  if (result f32)
+   local.get $26
+   f32.neg
   else
-   local.get $0
+   local.get $26
   end
  )
- (func $std/math/test_sin (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.sin
+ (func $std/math/test_sinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
+  (local $4 f32)
+  block $~lib/math/NativeMath.sin<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/sin32
+   br $~lib/math/NativeMath.sin<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
-  call $std/math/check<f64>
-  if (result i32)
-   local.get $0
-   call $~lib/bindings/dom/Math.sin
-   local.get $1
-   local.get $2
-   local.get $3
-   call $std/math/check<f64>
-  else
-   i32.const 0
-  end
+  call $std/math/check<f32>
  )
- (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32)
-  (local $1 i32)
-  (local $2 i32)
-  (local $3 f64)
+ (func $~lib/util/math/sinh64 (param $0 f64) (result f64)
+  (local $1 i64)
+  (local $2 f64)
+  (local $3 i32)
   (local $4 f64)
   (local $5 f64)
   (local $6 f64)
   (local $7 f64)
-  (local $8 i32)
-  (local $9 i32)
-  (local $10 f32)
-  (local $11 i32)
-  (local $12 f32)
-  (local $13 i32)
-  (local $14 i64)
-  (local $15 i32)
-  (local $16 i64)
-  (local $17 i64)
-  (local $18 i64)
-  (local $19 i64)
-  (local $20 i64)
-  (local $21 i64)
-  (local $22 i64)
-  (local $23 i32)
-  (local $24 i32)
-  (local $25 f64)
-  (local $26 f32)
   local.get $0
-  i32.reinterpret_f32
+  i64.reinterpret_f64
+  i64.const 9223372036854775807
+  i64.and
   local.set $1
   local.get $1
-  i32.const 31
-  i32.shr_u
+  f64.reinterpret_i64
   local.set $2
   local.get $1
-  i32.const 2147483647
-  i32.and
-  local.set $1
-  local.get $1
-  i32.const 1061752794
-  i32.le_u
+  i64.const 32
+  i64.shr_u
+  i32.wrap_i64
+  local.set $3
+  f64.const 0.5
+  local.get $0
+  f64.copysign
+  local.set $4
+  local.get $3
+  i32.const 1082535490
+  i32.lt_u
   if
-   local.get $1
-   i32.const 964689920
+   local.get $2
+   call $~lib/util/math/expm1_64
+   local.set $5
+   local.get $3
+   i32.const 1072693248
    i32.lt_u
    if
-    local.get $0
+    local.get $3
+    i32.const 1072693248
+    i32.const 26
+    i32.const 20
+    i32.shl
+    i32.sub
+    i32.lt_u
+    if
+     local.get $0
+     return
+    end
+    local.get $4
+    f64.const 2
+    local.get $5
+    f64.mul
+    local.get $5
+    local.get $5
+    f64.mul
+    local.get $5
+    f64.const 1
+    f64.add
+    f64.div
+    f64.sub
+    f64.mul
     return
    end
-   local.get $0
-   f64.promote_f32
-   local.set $3
-   local.get $3
-   local.get $3
-   f64.mul
-   local.set $4
-   local.get $4
-   local.get $4
-   f64.mul
-   local.set $5
-   f64.const -1.9839334836096632e-04
-   local.get $4
-   f64.const 2.718311493989822e-06
-   f64.mul
-   f64.add
-   local.set $6
-   local.get $4
-   local.get $3
-   f64.mul
-   local.set $7
-   local.get $3
-   local.get $7
-   f64.const -0.16666666641626524
    local.get $4
-   f64.const 0.008333329385889463
-   f64.mul
+   local.get $5
+   local.get $5
+   local.get $5
+   f64.const 1
    f64.add
-   f64.mul
+   f64.div
    f64.add
-   local.get $7
-   local.get $5
    f64.mul
-   local.get $6
-   f64.mul
-   f64.add
-   f32.demote_f64
    return
   end
-  i32.const 0
-  i32.const 1
-  i32.lt_s
-  drop
+  local.get $2
+  local.set $6
+  f64.const 2
+  local.get $4
+  f64.mul
+  local.set $5
+  i32.const 1023
+  i32.const 2043
+  i32.const 2
+  i32.div_u
+  i32.add
+  i32.const 20
+  i32.shl
+  i64.extend_i32_u
+  i64.const 32
+  i64.shl
+  f64.reinterpret_i64
+  local.set $7
+  local.get $6
+  f64.const 1416.0996898839683
+  f64.sub
+  call $~lib/util/math/exp64
+  local.get $5
+  local.get $7
+  f64.mul
+  f64.mul
+  local.get $7
+  f64.mul
+ )
+ (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
+  (local $4 f64)
+  block $~lib/math/NativeMath.sinh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/sinh64
+   br $~lib/math/NativeMath.sinh<f64>|inlined.0
+  end
   local.get $1
-  i32.const 1081824209
-  i32.le_u
-  if
+  local.get $2
+  local.get $3
+  call $std/math/check<f64>
+  if (result i32)
+   local.get $0
+   call $~lib/bindings/dom/Math.sinh
    local.get $1
-   i32.const 1075235811
-   i32.le_u
-   if
-    local.get $2
-    if (result f32)
-     local.get $0
-     f64.promote_f32
-     f64.const 1.5707963267948966
-     f64.add
-     local.set $3
-     local.get $3
-     local.get $3
-     f64.mul
-     local.set $7
-     local.get $7
-     local.get $7
-     f64.mul
-     local.set $6
-     f64.const -0.001388676377460993
-     local.get $7
-     f64.const 2.439044879627741e-05
-     f64.mul
-     f64.add
-     local.set $5
-     f32.const 1
-     f64.promote_f32
-     local.get $7
-     f64.const -0.499999997251031
-     f64.mul
-     f64.add
-     local.get $6
-     f64.const 0.04166662332373906
-     f64.mul
-     f64.add
-     local.get $6
-     local.get $7
-     f64.mul
-     local.get $5
-     f64.mul
-     f64.add
-     f32.demote_f64
-     f32.neg
-    else
-     local.get $0
-     f64.promote_f32
-     f64.const 1.5707963267948966
-     f64.sub
-     local.set $4
-     local.get $4
-     local.get $4
-     f64.mul
-     local.set $5
-     local.get $5
-     local.get $5
-     f64.mul
-     local.set $6
-     f64.const -0.001388676377460993
-     local.get $5
-     f64.const 2.439044879627741e-05
-     f64.mul
-     f64.add
-     local.set $7
-     f32.const 1
-     f64.promote_f32
-     local.get $5
-     f64.const -0.499999997251031
-     f64.mul
-     f64.add
-     local.get $6
-     f64.const 0.04166662332373906
-     f64.mul
-     f64.add
-     local.get $6
-     local.get $5
-     f64.mul
-     local.get $7
-     f64.mul
-     f64.add
-     f32.demote_f64
-    end
-    return
-   end
    local.get $2
-   if (result f64)
-    local.get $0
-    f64.promote_f32
-    f64.const 3.141592653589793
-    f64.add
-   else
-    local.get $0
-    f64.promote_f32
-    f64.const 3.141592653589793
-    f64.sub
-   end
-   f64.neg
-   local.set $3
-   local.get $3
-   local.get $3
-   f64.mul
-   local.set $7
-   local.get $7
-   local.get $7
-   f64.mul
-   local.set $6
-   f64.const -1.9839334836096632e-04
-   local.get $7
-   f64.const 2.718311493989822e-06
-   f64.mul
-   f64.add
-   local.set $5
-   local.get $7
    local.get $3
-   f64.mul
-   local.set $4
-   local.get $3
-   local.get $4
-   f64.const -0.16666666641626524
-   local.get $7
-   f64.const 0.008333329385889463
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.get $4
-   local.get $6
-   f64.mul
-   local.get $5
-   f64.mul
-   f64.add
-   f32.demote_f64
-   return
+   call $std/math/check<f64>
+  else
+   i32.const 0
   end
+ )
+ (func $~lib/util/math/sinh32 (param $0 f32) (result f32)
+  (local $1 i32)
+  (local $2 f32)
+  (local $3 f32)
+  (local $4 f32)
+  (local $5 f32)
+  (local $6 f32)
+  local.get $0
+  i32.reinterpret_f32
+  i32.const 2147483647
+  i32.and
+  local.set $1
   local.get $1
-  i32.const 1088565717
-  i32.le_u
+  f32.reinterpret_i32
+  local.set $2
+  f32.const 0.5
+  local.get $0
+  f32.copysign
+  local.set $3
+  local.get $1
+  i32.const 1118925335
+  i32.lt_u
   if
+   local.get $2
+   call $~lib/util/math/expm1_32
+   local.set $4
    local.get $1
-   i32.const 1085271519
-   i32.le_u
+   i32.const 1065353216
+   i32.lt_u
    if
-    local.get $2
-    if (result f32)
-     local.get $0
-     f64.promote_f32
-     f64.const 4.71238898038469
-     f64.add
-     local.set $3
-     local.get $3
-     local.get $3
-     f64.mul
-     local.set $4
-     local.get $4
-     local.get $4
-     f64.mul
-     local.set $5
-     f64.const -0.001388676377460993
-     local.get $4
-     f64.const 2.439044879627741e-05
-     f64.mul
-     f64.add
-     local.set $6
-     f32.const 1
-     f64.promote_f32
-     local.get $4
-     f64.const -0.499999997251031
-     f64.mul
-     f64.add
-     local.get $5
-     f64.const 0.04166662332373906
-     f64.mul
-     f64.add
-     local.get $5
-     local.get $4
-     f64.mul
-     local.get $6
-     f64.mul
-     f64.add
-     f32.demote_f64
-    else
+    local.get $1
+    i32.const 1065353216
+    i32.const 12
+    i32.const 23
+    i32.shl
+    i32.sub
+    i32.lt_u
+    if
      local.get $0
-     f64.promote_f32
-     f64.const 4.71238898038469
-     f64.sub
-     local.set $7
-     local.get $7
-     local.get $7
-     f64.mul
-     local.set $6
-     local.get $6
-     local.get $6
-     f64.mul
-     local.set $5
-     f64.const -0.001388676377460993
-     local.get $6
-     f64.const 2.439044879627741e-05
-     f64.mul
-     f64.add
-     local.set $4
-     f32.const 1
-     f64.promote_f32
-     local.get $6
-     f64.const -0.499999997251031
-     f64.mul
-     f64.add
-     local.get $5
-     f64.const 0.04166662332373906
-     f64.mul
-     f64.add
-     local.get $5
-     local.get $6
-     f64.mul
-     local.get $4
-     f64.mul
-     f64.add
-     f32.demote_f64
-     f32.neg
+     return
     end
+    local.get $3
+    f32.const 2
+    local.get $4
+    f32.mul
+    local.get $4
+    local.get $4
+    f32.mul
+    local.get $4
+    f32.const 1
+    f32.add
+    f32.div
+    f32.sub
+    f32.mul
     return
    end
-   local.get $2
-   if (result f64)
-    local.get $0
-    f64.promote_f32
-    f64.const 6.283185307179586
-    f64.add
-   else
-    local.get $0
-    f64.promote_f32
-    f64.const 6.283185307179586
-    f64.sub
-   end
-   local.set $3
-   local.get $3
    local.get $3
-   f64.mul
-   local.set $4
-   local.get $4
-   local.get $4
-   f64.mul
-   local.set $5
-   f64.const -1.9839334836096632e-04
    local.get $4
-   f64.const 2.718311493989822e-06
-   f64.mul
-   f64.add
-   local.set $6
    local.get $4
-   local.get $3
-   f64.mul
-   local.set $7
-   local.get $3
-   local.get $7
-   f64.const -0.16666666641626524
    local.get $4
-   f64.const 0.008333329385889463
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.get $7
-   local.get $5
-   f64.mul
-   local.get $6
-   f64.mul
-   f64.add
-   f32.demote_f64
+   f32.const 1
+   f32.add
+   f32.div
+   f32.add
+   f32.mul
    return
   end
-  local.get $1
-  i32.const 2139095040
-  i32.ge_u
-  if
+  local.get $2
+  local.set $5
+  f32.const 2
+  local.get $3
+  f32.mul
+  local.set $4
+  i32.const 127
+  i32.const 235
+  i32.const 1
+  i32.shr_u
+  i32.add
+  i32.const 23
+  i32.shl
+  f32.reinterpret_i32
+  local.set $6
+  local.get $5
+  f32.const 162.88958740234375
+  f32.sub
+  call $~lib/util/math/exp32
+  local.get $4
+  local.get $6
+  f32.mul
+  f32.mul
+  local.get $6
+  f32.mul
+ )
+ (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
+  (local $4 f32)
+  block $~lib/math/NativeMath.sinh<f32>|inlined.0 (result f32)
    local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/sinh32
+   br $~lib/math/NativeMath.sinh<f32>|inlined.0
+  end
+  local.get $1
+  local.get $2
+  local.get $3
+  call $std/math/check<f32>
+ )
+ (func $std/math/test_sqrt (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
+  (local $4 f64)
+  block $~lib/math/NativeMath.sqrt<f64>|inlined.0 (result f64)
    local.get $0
-   f32.sub
-   return
+   local.set $4
+   i32.const 1
+   drop
+   local.get $4
+   f64.sqrt
+   br $~lib/math/NativeMath.sqrt<f64>|inlined.0
   end
-  block $~lib/math/rempio2f|inlined.1 (result i32)
+  local.get $1
+  local.get $2
+  local.get $3
+  call $std/math/check<f64>
+  if (result i32)
    local.get $0
-   local.set $10
+   call $~lib/bindings/dom/Math.sqrt
    local.get $1
-   local.set $9
    local.get $2
-   local.set $8
-   local.get $9
-   i32.const 1305022427
-   i32.lt_u
-   if
-    local.get $10
-    f64.promote_f32
-    f64.const 0.6366197723675814
-    f64.mul
-    f64.nearest
-    local.set $7
-    local.get $10
-    f64.promote_f32
-    local.get $7
-    f64.const 1.5707963109016418
-    f64.mul
-    f64.sub
-    local.get $7
-    f64.const 1.5893254773528196e-08
-    f64.mul
-    f64.sub
-    global.set $~lib/math/rempio2f_y
-    local.get $7
-    i32.trunc_sat_f64_s
-    br $~lib/math/rempio2f|inlined.1
-   end
-   local.get $10
-   local.set $12
-   local.get $9
-   local.set $11
-   local.get $11
-   i32.const 23
-   i32.shr_s
-   i32.const 152
-   i32.sub
-   local.set $13
-   local.get $13
-   i32.const 63
-   i32.and
-   i64.extend_i32_s
-   local.set $14
-   i32.const 4608
-   local.get $13
-   i32.const 6
-   i32.shr_s
-   i32.const 3
-   i32.shl
-   i32.add
-   local.set $15
-   local.get $15
-   i64.load
-   local.set $16
-   local.get $15
-   i64.load offset=8
-   local.set $17
-   local.get $14
-   i64.const 32
-   i64.gt_u
-   if
-    local.get $15
-    i64.load offset=16
-    local.set $19
-    local.get $19
-    i64.const 96
-    local.get $14
-    i64.sub
-    i64.shr_u
-    local.set $18
-    local.get $18
-    local.get $17
-    local.get $14
-    i64.const 32
-    i64.sub
-    i64.shl
-    i64.or
-    local.set $18
-   else
-    local.get $17
-    i64.const 32
-    local.get $14
-    i64.sub
-    i64.shr_u
-    local.set $18
-   end
-   local.get $17
-   i64.const 64
-   local.get $14
-   i64.sub
-   i64.shr_u
-   local.get $16
-   local.get $14
-   i64.shl
-   i64.or
-   local.set $19
-   local.get $11
-   i32.const 8388607
-   i32.and
-   i32.const 8388608
-   i32.or
-   i64.extend_i32_s
-   local.set $20
-   local.get $20
-   local.get $19
-   i64.mul
-   local.get $20
-   local.get $18
-   i64.mul
-   i64.const 32
-   i64.shr_u
-   i64.add
-   local.set $21
-   local.get $21
-   i64.const 2
-   i64.shl
-   local.set $22
-   local.get $21
-   i64.const 62
-   i64.shr_u
-   local.get $22
-   i64.const 63
-   i64.shr_u
-   i64.add
-   i32.wrap_i64
-   local.set $23
-   f64.const 8.515303950216386e-20
-   local.get $12
-   f64.promote_f32
-   f64.copysign
-   local.get $22
-   f64.convert_i64_s
-   f64.mul
-   global.set $~lib/math/rempio2f_y
-   local.get $23
-   local.set $23
-   i32.const 0
-   local.get $23
-   i32.sub
-   local.get $23
-   local.get $8
-   select
-  end
-  local.set $24
-  global.get $~lib/math/rempio2f_y
-  local.set $25
-  local.get $24
-  i32.const 1
-  i32.and
-  if (result f32)
-   local.get $25
-   local.set $3
-   local.get $3
-   local.get $3
-   f64.mul
-   local.set $7
-   local.get $7
-   local.get $7
-   f64.mul
-   local.set $6
-   f64.const -0.001388676377460993
-   local.get $7
-   f64.const 2.439044879627741e-05
-   f64.mul
-   f64.add
-   local.set $5
-   f32.const 1
-   f64.promote_f32
-   local.get $7
-   f64.const -0.499999997251031
-   f64.mul
-   f64.add
-   local.get $6
-   f64.const 0.04166662332373906
-   f64.mul
-   f64.add
-   local.get $6
-   local.get $7
-   f64.mul
-   local.get $5
-   f64.mul
-   f64.add
-   f32.demote_f64
-  else
-   local.get $25
-   local.set $4
-   local.get $4
-   local.get $4
-   f64.mul
-   local.set $5
-   local.get $5
-   local.get $5
-   f64.mul
-   local.set $6
-   f64.const -1.9839334836096632e-04
-   local.get $5
-   f64.const 2.718311493989822e-06
-   f64.mul
-   f64.add
-   local.set $7
-   local.get $5
-   local.get $4
-   f64.mul
-   local.set $3
-   local.get $4
-   local.get $3
-   f64.const -0.16666666641626524
-   local.get $5
-   f64.const 0.008333329385889463
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.get $3
-   local.get $6
-   f64.mul
-   local.get $7
-   f64.mul
-   f64.add
-   f32.demote_f64
-  end
-  local.set $26
-  local.get $24
-  i32.const 2
-  i32.and
-  if (result f32)
-   local.get $26
-   f32.neg
-  else
-   local.get $26
-  end
- )
- (func $std/math/test_sinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.sin
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f32>
- )
- (func $~lib/math/NativeMath.sinh (param $0 f64) (result f64)
-  (local $1 i64)
-  (local $2 f64)
-  (local $3 i32)
-  (local $4 f64)
-  (local $5 f64)
-  (local $6 f64)
-  (local $7 f64)
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 9223372036854775807
-  i64.and
-  local.set $1
-  local.get $1
-  f64.reinterpret_i64
-  local.set $2
-  local.get $1
-  i64.const 32
-  i64.shr_u
-  i32.wrap_i64
-  local.set $3
-  f64.const 0.5
-  local.get $0
-  f64.copysign
-  local.set $4
-  local.get $3
-  i32.const 1082535490
-  i32.lt_u
-  if
-   local.get $2
-   call $~lib/math/NativeMath.expm1
-   local.set $5
-   local.get $3
-   i32.const 1072693248
-   i32.lt_u
-   if
-    local.get $3
-    i32.const 1072693248
-    i32.const 26
-    i32.const 20
-    i32.shl
-    i32.sub
-    i32.lt_u
-    if
-     local.get $0
-     return
-    end
-    local.get $4
-    f64.const 2
-    local.get $5
-    f64.mul
-    local.get $5
-    local.get $5
-    f64.mul
-    local.get $5
-    f64.const 1
-    f64.add
-    f64.div
-    f64.sub
-    f64.mul
-    return
-   end
-   local.get $4
-   local.get $5
-   local.get $5
-   local.get $5
-   f64.const 1
-   f64.add
-   f64.div
-   f64.add
-   f64.mul
-   return
-  end
-  local.get $2
-  local.set $6
-  f64.const 2
-  local.get $4
-  f64.mul
-  local.set $5
-  i32.const 1023
-  i32.const 2043
-  i32.const 2
-  i32.div_u
-  i32.add
-  i32.const 20
-  i32.shl
-  i64.extend_i32_u
-  i64.const 32
-  i64.shl
-  f64.reinterpret_i64
-  local.set $7
-  local.get $6
-  f64.const 1416.0996898839683
-  f64.sub
-  call $~lib/math/NativeMath.exp
-  local.get $5
-  local.get $7
-  f64.mul
-  f64.mul
-  local.get $7
-  f64.mul
- )
- (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.sinh
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f64>
-  if (result i32)
-   local.get $0
-   call $~lib/bindings/dom/Math.sinh
-   local.get $1
-   local.get $2
-   local.get $3
-   call $std/math/check<f64>
-  else
-   i32.const 0
-  end
- )
- (func $~lib/math/NativeMathf.sinh (param $0 f32) (result f32)
-  (local $1 i32)
-  (local $2 f32)
-  (local $3 f32)
-  (local $4 f32)
-  (local $5 f32)
-  (local $6 f32)
-  local.get $0
-  i32.reinterpret_f32
-  i32.const 2147483647
-  i32.and
-  local.set $1
-  local.get $1
-  f32.reinterpret_i32
-  local.set $2
-  f32.const 0.5
-  local.get $0
-  f32.copysign
-  local.set $3
-  local.get $1
-  i32.const 1118925335
-  i32.lt_u
-  if
-   local.get $2
-   call $~lib/math/NativeMathf.expm1
-   local.set $4
-   local.get $1
-   i32.const 1065353216
-   i32.lt_u
-   if
-    local.get $1
-    i32.const 1065353216
-    i32.const 12
-    i32.const 23
-    i32.shl
-    i32.sub
-    i32.lt_u
-    if
-     local.get $0
-     return
-    end
-    local.get $3
-    f32.const 2
-    local.get $4
-    f32.mul
-    local.get $4
-    local.get $4
-    f32.mul
-    local.get $4
-    f32.const 1
-    f32.add
-    f32.div
-    f32.sub
-    f32.mul
-    return
-   end
-   local.get $3
-   local.get $4
-   local.get $4
-   local.get $4
-   f32.const 1
-   f32.add
-   f32.div
-   f32.add
-   f32.mul
-   return
-  end
-  local.get $2
-  local.set $5
-  f32.const 2
-  local.get $3
-  f32.mul
-  local.set $4
-  i32.const 127
-  i32.const 235
-  i32.const 1
-  i32.shr_u
-  i32.add
-  i32.const 23
-  i32.shl
-  f32.reinterpret_i32
-  local.set $6
-  local.get $5
-  f32.const 162.88958740234375
-  f32.sub
-  call $~lib/math/NativeMathf.exp
-  local.get $4
-  local.get $6
-  f32.mul
-  f32.mul
-  local.get $6
-  f32.mul
- )
- (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.sinh
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f32>
- )
- (func $std/math/test_sqrt (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  (local $4 f64)
-  local.get $0
-  local.set $4
-  local.get $4
-  f64.sqrt
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f64>
-  if (result i32)
-   local.get $0
-   call $~lib/bindings/dom/Math.sqrt
-   local.get $1
-   local.get $2
-   local.get $3
-   call $std/math/check<f64>
-  else
-   i32.const 0
-  end
- )
- (func $std/math/test_sqrtf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  (local $4 f32)
-  local.get $0
-  local.set $4
-  local.get $4
-  f32.sqrt
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f32>
- )
- (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64)
-  (local $3 f64)
-  (local $4 f64)
-  (local $5 f64)
-  (local $6 f64)
-  (local $7 f64)
-  (local $8 i32)
-  (local $9 i32)
-  (local $10 i32)
-  (local $11 f64)
-  (local $12 f64)
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 32
-  i64.shr_u
-  i32.wrap_i64
-  local.set $8
-  local.get $8
-  i32.const 2147483647
-  i32.and
-  local.set $9
-  local.get $9
-  i32.const 1072010280
-  i32.ge_s
-  local.set $10
-  local.get $10
-  if
-   local.get $8
-   i32.const 0
-   i32.lt_s
+   local.get $3
+   call $std/math/check<f64>
+  else
+   i32.const 0
+  end
+ )
+ (func $std/math/test_sqrtf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
+  (local $4 f32)
+  block $~lib/math/NativeMath.sqrt<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   local.get $4
+   f32.sqrt
+   br $~lib/math/NativeMath.sqrt<f32>|inlined.0
+  end
+  local.get $1
+  local.get $2
+  local.get $3
+  call $std/math/check<f32>
+ )
+ (func $~lib/util/math/tan64_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64)
+  (local $3 f64)
+  (local $4 f64)
+  (local $5 f64)
+  (local $6 f64)
+  (local $7 f64)
+  (local $8 i32)
+  (local $9 i32)
+  (local $10 i32)
+  (local $11 f64)
+  (local $12 f64)
+  local.get $0
+  i64.reinterpret_f64
+  i64.const 32
+  i64.shr_u
+  i32.wrap_i64
+  local.set $8
+  local.get $8
+  i32.const 2147483647
+  i32.and
+  local.set $9
+  local.get $9
+  i32.const 1072010280
+  i32.ge_s
+  local.set $10
+  local.get $10
+  if
+   local.get $8
+   i32.const 0
+   i32.lt_s
    if
     local.get $0
     f64.neg
@@ -13791,7 +13791,7 @@
   f64.mul
   f64.add
  )
- (func $~lib/math/NativeMath.tan (param $0 f64) (result f64)
+ (func $~lib/util/math/tan64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
@@ -13839,7 +13839,7 @@
    local.get $0
    f64.const 0
    i32.const 1
-   call $~lib/math/tan_kern
+   call $~lib/util/math/tan64_kern
    return
   end
   local.get $2
@@ -13851,7 +13851,7 @@
    f64.sub
    return
   end
-  block $~lib/math/rempio2|inlined.2 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.2 (result i32)
    local.get $0
    local.set $6
    local.get $1
@@ -13951,11 +13951,11 @@
      local.set $8
     end
     local.get $10
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $11
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $8
-    br $~lib/math/rempio2|inlined.2
+    br $~lib/util/math/rempio2_64|inlined.2
    end
    local.get $7
    i32.const 1094263291
@@ -14077,16 +14077,16 @@
     f64.sub
     local.set $15
     local.get $12
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $15
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $11
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.2
+    br $~lib/util/math/rempio2_64|inlined.2
    end
    local.get $6
    local.get $5
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.set $14
    i32.const 0
    local.get $14
@@ -14096,8 +14096,8 @@
    select
   end
   local.set $17
-  global.get $~lib/math/rempio2_y0
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y1
   i32.const 1
   local.get $17
   i32.const 1
@@ -14105,27 +14105,43 @@
   i32.const 1
   i32.shl
   i32.sub
-  call $~lib/math/tan_kern
+  call $~lib/util/math/tan64_kern
  )
  (func $std/math/test_tan (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.tan
-  local.get $1
-  local.get $2
-  local.get $3
-  call $std/math/check<f64>
-  if (result i32)
+  (local $4 f64)
+  block $~lib/math/NativeMath.tan<f64>|inlined.0 (result f64)
    local.get $0
-   call $~lib/bindings/dom/Math.tan
-   local.get $1
-   local.get $2
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.0
+  end
+  local.get $1
+  local.get $2
+  local.get $3
+  call $std/math/check<f64>
+  if (result i32)
+   local.get $0
+   call $~lib/bindings/dom/Math.tan
+   local.get $1
+   local.get $2
    local.get $3
    call $std/math/check<f64>
   else
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32)
+ (func $~lib/util/math/tan32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 i32)
   (local $3 i32)
@@ -14563,7 +14579,7 @@
    f32.sub
    return
   end
-  block $~lib/math/rempio2f|inlined.2 (result i32)
+  block $~lib/util/math/rempio2_32|inlined.2 (result i32)
    local.get $0
    local.set $12
    local.get $1
@@ -14590,10 +14606,10 @@
     f64.const 1.5893254773528196e-08
     f64.mul
     f64.sub
-    global.set $~lib/math/rempio2f_y
+    global.set $~lib/util/math/rempio2_32_y
     local.get $10
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2f|inlined.2
+    br $~lib/util/math/rempio2_32|inlined.2
    end
    local.get $12
    local.set $14
@@ -14700,7 +14716,7 @@
    local.get $24
    f64.convert_i64_s
    f64.mul
-   global.set $~lib/math/rempio2f_y
+   global.set $~lib/util/math/rempio2_32_y
    local.get $25
    local.set $25
    i32.const 0
@@ -14711,7 +14727,7 @@
    select
   end
   local.set $26
-  global.get $~lib/math/rempio2f_y
+  global.get $~lib/util/math/rempio2_32_y
   local.set $27
   local.get $27
   local.set $4
@@ -14777,14 +14793,26 @@
   f32.demote_f64
  )
  (func $std/math/test_tanf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.tan
+  (local $4 f32)
+  block $~lib/math/NativeMath.tan<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/tan32
+   br $~lib/math/NativeMath.tan<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.tanh (param $0 f64) (result f64)
+ (func $~lib/util/math/tanh64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 f64)
   (local $3 i32)
@@ -14822,7 +14850,7 @@
     f64.const 2
     local.get $2
     f64.mul
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     local.set $4
     f64.const 1
     f64.const 2
@@ -14841,7 +14869,7 @@
     f64.const 2
     local.get $2
     f64.mul
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     local.set $4
     local.get $4
     local.get $4
@@ -14857,7 +14885,7 @@
      f64.const -2
      local.get $2
      f64.mul
-     call $~lib/math/NativeMath.expm1
+     call $~lib/util/math/expm1_64
      local.set $4
      local.get $4
      f64.neg
@@ -14877,8 +14905,24 @@
   f64.copysign
  )
  (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMath.tanh
+  (local $4 f64)
+  block $~lib/math/NativeMath.tanh<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/tanh64
+   br $~lib/math/NativeMath.tanh<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -14894,7 +14938,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.tanh (param $0 f32) (result f32)
+ (func $~lib/util/math/tanh32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   (local $3 f32)
@@ -14926,7 +14970,7 @@
     f32.const 2
     local.get $2
     f32.mul
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     local.set $3
     f32.const 1
     f32.const 2
@@ -14945,7 +14989,7 @@
     f32.const 2
     local.get $2
     f32.mul
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     local.set $3
     local.get $3
     local.get $3
@@ -14961,7 +15005,7 @@
      f32.const -2
      local.get $2
      f32.mul
-     call $~lib/math/NativeMathf.expm1
+     call $~lib/util/math/expm1_32
      local.set $3
      local.get $3
      f32.neg
@@ -14981,8 +15025,20 @@
   f32.copysign
  )
  (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
-  local.get $0
-  call $~lib/math/NativeMathf.tanh
+  (local $4 f32)
+  block $~lib/math/NativeMath.tanh<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   call $~lib/util/math/tanh32
+   br $~lib/math/NativeMath.tanh<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -14990,10 +15046,17 @@
  )
  (func $std/math/test_trunc (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32)
   (local $4 f64)
-  local.get $0
-  local.set $4
-  local.get $4
-  f64.trunc
+  block $~lib/math/NativeMath.trunc<f64>|inlined.0 (result f64)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f64.trunc
+   br $~lib/math/NativeMath.trunc<f64>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
@@ -15011,26 +15074,33 @@
  )
  (func $std/math/test_truncf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32)
   (local $4 f32)
-  local.get $0
-  local.set $4
-  local.get $4
-  f32.trunc
+  block $~lib/math/NativeMath.trunc<f32>|inlined.0 (result f32)
+   local.get $0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $4
+   f32.trunc
+   br $~lib/math/NativeMath.trunc<f32>|inlined.0
+  end
   local.get $1
   local.get $2
   local.get $3
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.sincos (param $0 f64)
+ (func $~lib/util/math/sincos64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i32)
-  (local $4 i32)
+  (local $4 f64)
   (local $5 f64)
   (local $6 f64)
   (local $7 f64)
   (local $8 f64)
   (local $9 f64)
-  (local $10 f64)
+  (local $10 i32)
   (local $11 i64)
   (local $12 i32)
   (local $13 i32)
@@ -15068,149 +15138,147 @@
    i32.const 1044816030
    i32.lt_u
    if
-    local.get $0
-    global.set $~lib/math/NativeMath.sincos_sin
     f64.const 1
-    global.set $~lib/math/NativeMath.sincos_cos
+    global.set $~lib/util/math/sincos_cos64
+    local.get $0
     return
    end
-   block $~lib/math/sin_kern|inlined.3 (result f64)
+   local.get $0
+   local.set $5
+   f64.const 0
+   local.set $4
+   local.get $5
+   local.get $5
+   f64.mul
+   local.set $6
+   local.get $6
+   local.get $6
+   f64.mul
+   local.set $7
+   local.get $6
+   f64.const 0.0416666666666666
+   local.get $6
+   f64.const -0.001388888888887411
+   local.get $6
+   f64.const 2.480158728947673e-05
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   f64.mul
+   local.get $7
+   local.get $7
+   f64.mul
+   f64.const -2.7557314351390663e-07
+   local.get $6
+   f64.const 2.087572321298175e-09
+   local.get $6
+   f64.const -1.1359647557788195e-11
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   f64.mul
+   f64.add
+   local.set $8
+   f64.const 0.5
+   local.get $6
+   f64.mul
+   local.set $9
+   f64.const 1
+   local.get $9
+   f64.sub
+   local.set $7
+   local.get $7
+   f64.const 1
+   local.get $7
+   f64.sub
+   local.get $9
+   f64.sub
+   local.get $6
+   local.get $8
+   f64.mul
+   local.get $5
+   local.get $4
+   f64.mul
+   f64.sub
+   f64.add
+   f64.add
+   global.set $~lib/util/math/sincos_cos64
+   block $~lib/util/math/sin64_kern|inlined.3 (result f64)
     local.get $0
-    local.set $6
-    f64.const 0
     local.set $5
-    i32.const 0
+    f64.const 0
     local.set $4
-    local.get $6
-    local.get $6
+    i32.const 0
+    local.set $10
+    local.get $5
+    local.get $5
     f64.mul
-    local.set $7
-    local.get $7
-    local.get $7
+    local.set $9
+    local.get $9
+    local.get $9
     f64.mul
     local.set $8
     f64.const 0.00833333333332249
-    local.get $7
+    local.get $9
     f64.const -1.984126982985795e-04
-    local.get $7
+    local.get $9
     f64.const 2.7557313707070068e-06
     f64.mul
     f64.add
     f64.mul
     f64.add
-    local.get $7
+    local.get $9
     local.get $8
     f64.mul
     f64.const -2.5050760253406863e-08
-    local.get $7
+    local.get $9
     f64.const 1.58969099521155e-10
     f64.mul
     f64.add
     f64.mul
     f64.add
-    local.set $9
-    local.get $7
-    local.get $6
+    local.set $7
+    local.get $9
+    local.get $5
     f64.mul
-    local.set $10
-    local.get $4
+    local.set $6
+    local.get $10
     i32.eqz
     if
+     local.get $5
      local.get $6
-     local.get $10
      f64.const -0.16666666666666632
-     local.get $7
      local.get $9
+     local.get $7
      f64.mul
      f64.add
      f64.mul
      f64.add
-     br $~lib/math/sin_kern|inlined.3
+     br $~lib/util/math/sin64_kern|inlined.3
     else
-     local.get $6
-     local.get $7
-     f64.const 0.5
      local.get $5
-     f64.mul
-     local.get $10
      local.get $9
+     f64.const 0.5
+     local.get $4
+     f64.mul
+     local.get $6
+     local.get $7
      f64.mul
      f64.sub
      f64.mul
-     local.get $5
+     local.get $4
      f64.sub
-     local.get $10
+     local.get $6
      f64.const -0.16666666666666632
      f64.mul
      f64.sub
      f64.sub
-     br $~lib/math/sin_kern|inlined.3
+     br $~lib/util/math/sin64_kern|inlined.3
     end
     unreachable
    end
-   global.set $~lib/math/NativeMath.sincos_sin
-   local.get $0
-   local.set $6
-   f64.const 0
-   local.set $5
-   local.get $6
-   local.get $6
-   f64.mul
-   local.set $10
-   local.get $10
-   local.get $10
-   f64.mul
-   local.set $9
-   local.get $10
-   f64.const 0.0416666666666666
-   local.get $10
-   f64.const -0.001388888888887411
-   local.get $10
-   f64.const 2.480158728947673e-05
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   f64.mul
-   local.get $9
-   local.get $9
-   f64.mul
-   f64.const -2.7557314351390663e-07
-   local.get $10
-   f64.const 2.087572321298175e-09
-   local.get $10
-   f64.const -1.1359647557788195e-11
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   f64.mul
-   f64.add
-   local.set $8
-   f64.const 0.5
-   local.get $10
-   f64.mul
-   local.set $7
-   f64.const 1
-   local.get $7
-   f64.sub
-   local.set $9
-   local.get $9
-   f64.const 1
-   local.get $9
-   f64.sub
-   local.get $7
-   f64.sub
-   local.get $10
-   local.get $8
-   f64.mul
-   local.get $6
-   local.get $5
-   f64.mul
-   f64.sub
-   f64.add
-   f64.add
-   global.set $~lib/math/NativeMath.sincos_cos
    return
   end
   local.get $2
@@ -15220,20 +15288,19 @@
    local.get $0
    local.get $0
    f64.sub
-   local.set $7
-   local.get $7
-   global.set $~lib/math/NativeMath.sincos_sin
-   local.get $7
-   global.set $~lib/math/NativeMath.sincos_cos
+   local.set $6
+   local.get $6
+   global.set $~lib/util/math/sincos_cos64
+   local.get $6
    return
   end
-  block $~lib/math/rempio2|inlined.3 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.3 (result i32)
    local.get $0
-   local.set $5
+   local.set $4
    local.get $1
    local.set $11
    local.get $3
-   local.set $4
+   local.set $10
    local.get $11
    i64.const 32
    i64.shr_u
@@ -15251,116 +15318,116 @@
    if
     i32.const 1
     local.set $13
-    local.get $4
+    local.get $10
     i32.eqz
     if
-     local.get $5
+     local.get $4
      f64.const 1.5707963267341256
      f64.sub
-     local.set $7
+     local.set $6
      local.get $12
      i32.const 1073291771
      i32.ne
      if
-      local.get $7
+      local.get $6
       f64.const 6.077100506506192e-11
       f64.sub
-      local.set $8
+      local.set $7
+      local.get $6
       local.get $7
-      local.get $8
       f64.sub
       f64.const 6.077100506506192e-11
       f64.sub
-      local.set $9
+      local.set $8
      else
-      local.get $7
+      local.get $6
       f64.const 6.077100506303966e-11
       f64.sub
-      local.set $7
-      local.get $7
+      local.set $6
+      local.get $6
       f64.const 2.0222662487959506e-21
       f64.sub
-      local.set $8
+      local.set $7
+      local.get $6
       local.get $7
-      local.get $8
       f64.sub
       f64.const 2.0222662487959506e-21
       f64.sub
-      local.set $9
+      local.set $8
      end
     else
-     local.get $5
+     local.get $4
      f64.const 1.5707963267341256
      f64.add
-     local.set $7
+     local.set $6
      local.get $12
      i32.const 1073291771
      i32.ne
      if
-      local.get $7
+      local.get $6
       f64.const 6.077100506506192e-11
       f64.add
-      local.set $8
+      local.set $7
+      local.get $6
       local.get $7
-      local.get $8
       f64.sub
       f64.const 6.077100506506192e-11
       f64.add
-      local.set $9
+      local.set $8
      else
-      local.get $7
+      local.get $6
       f64.const 6.077100506303966e-11
       f64.add
-      local.set $7
-      local.get $7
+      local.set $6
+      local.get $6
       f64.const 2.0222662487959506e-21
       f64.add
-      local.set $8
+      local.set $7
+      local.get $6
       local.get $7
-      local.get $8
       f64.sub
       f64.const 2.0222662487959506e-21
       f64.add
-      local.set $9
+      local.set $8
      end
      i32.const -1
      local.set $13
     end
+    local.get $7
+    global.set $~lib/util/math/rempio2_y0
     local.get $8
-    global.set $~lib/math/rempio2_y0
-    local.get $9
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $13
-    br $~lib/math/rempio2|inlined.3
+    br $~lib/util/math/rempio2_64|inlined.3
    end
    local.get $12
    i32.const 1094263291
    i32.lt_u
    if
-    local.get $5
+    local.get $4
     f64.const 0.6366197723675814
     f64.mul
     f64.nearest
-    local.set $9
-    local.get $5
-    local.get $9
+    local.set $8
+    local.get $4
+    local.get $8
     f64.const 1.5707963267341256
     f64.mul
     f64.sub
-    local.set $8
-    local.get $9
+    local.set $7
+    local.get $8
     f64.const 6.077100506506192e-11
     f64.mul
-    local.set $7
+    local.set $6
     local.get $12
     i32.const 20
     i32.shr_u
     local.set $13
-    local.get $8
     local.get $7
+    local.get $6
     f64.sub
-    local.set $10
-    local.get $10
+    local.set $9
+    local.get $9
     i64.reinterpret_f64
     i64.const 32
     i64.shr_u
@@ -15378,31 +15445,31 @@
     i32.const 16
     i32.gt_u
     if
+     local.get $7
+     local.set $5
      local.get $8
-     local.set $6
-     local.get $9
      f64.const 6.077100506303966e-11
      f64.mul
-     local.set $7
+     local.set $6
+     local.get $5
      local.get $6
-     local.get $7
      f64.sub
-     local.set $8
-     local.get $9
+     local.set $7
+     local.get $8
      f64.const 2.0222662487959506e-21
      f64.mul
-     local.get $6
-     local.get $8
-     f64.sub
+     local.get $5
      local.get $7
      f64.sub
+     local.get $6
      f64.sub
-     local.set $7
-     local.get $8
+     f64.sub
+     local.set $6
      local.get $7
+     local.get $6
      f64.sub
-     local.set $10
-     local.get $10
+     local.set $9
+     local.get $9
      i64.reinterpret_f64
      i64.const 32
      i64.shr_u
@@ -15420,133 +15487,133 @@
      i32.const 49
      i32.gt_u
      if
-      local.get $8
+      local.get $7
       local.set $16
-      local.get $9
+      local.get $8
       f64.const 2.0222662487111665e-21
       f64.mul
-      local.set $7
+      local.set $6
       local.get $16
-      local.get $7
+      local.get $6
       f64.sub
-      local.set $8
-      local.get $9
+      local.set $7
+      local.get $8
       f64.const 8.4784276603689e-32
       f64.mul
       local.get $16
-      local.get $8
-      f64.sub
       local.get $7
       f64.sub
+      local.get $6
       f64.sub
-      local.set $7
-      local.get $8
+      f64.sub
+      local.set $6
       local.get $7
+      local.get $6
       f64.sub
-      local.set $10
+      local.set $9
      end
     end
-    local.get $8
-    local.get $10
-    f64.sub
     local.get $7
+    local.get $9
     f64.sub
-    local.set $6
-    local.get $10
-    global.set $~lib/math/rempio2_y0
     local.get $6
-    global.set $~lib/math/rempio2_y1
+    f64.sub
+    local.set $5
     local.get $9
+    global.set $~lib/util/math/rempio2_y0
+    local.get $5
+    global.set $~lib/util/math/rempio2_y1
+    local.get $8
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.3
+    br $~lib/util/math/rempio2_64|inlined.3
    end
-   local.get $5
+   local.get $4
    local.get $11
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.set $15
    i32.const 0
    local.get $15
    i32.sub
    local.get $15
-   local.get $4
+   local.get $10
    select
   end
   local.set $17
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.set $18
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y1
   local.set $19
-  block $~lib/math/sin_kern|inlined.4 (result f64)
+  block $~lib/util/math/sin64_kern|inlined.4 (result f64)
    local.get $18
-   local.set $9
+   local.set $8
    local.get $19
    local.set $16
    i32.const 1
    local.set $13
-   local.get $9
-   local.get $9
+   local.get $8
+   local.get $8
    f64.mul
-   local.set $5
-   local.get $5
-   local.get $5
+   local.set $4
+   local.get $4
+   local.get $4
    f64.mul
-   local.set $6
+   local.set $5
    f64.const 0.00833333333332249
-   local.get $5
+   local.get $4
    f64.const -1.984126982985795e-04
-   local.get $5
+   local.get $4
    f64.const 2.7557313707070068e-06
    f64.mul
    f64.add
    f64.mul
    f64.add
+   local.get $4
    local.get $5
-   local.get $6
    f64.mul
    f64.const -2.5050760253406863e-08
-   local.get $5
+   local.get $4
    f64.const 1.58969099521155e-10
    f64.mul
    f64.add
    f64.mul
    f64.add
-   local.set $10
-   local.get $5
-   local.get $9
+   local.set $9
+   local.get $4
+   local.get $8
    f64.mul
-   local.set $7
+   local.set $6
    local.get $13
    i32.eqz
    if
-    local.get $9
-    local.get $7
+    local.get $8
+    local.get $6
     f64.const -0.16666666666666632
-    local.get $5
-    local.get $10
+    local.get $4
+    local.get $9
     f64.mul
     f64.add
     f64.mul
     f64.add
-    br $~lib/math/sin_kern|inlined.4
+    br $~lib/util/math/sin64_kern|inlined.4
    else
-    local.get $9
-    local.get $5
+    local.get $8
+    local.get $4
     f64.const 0.5
     local.get $16
     f64.mul
-    local.get $7
-    local.get $10
+    local.get $6
+    local.get $9
     f64.mul
     f64.sub
     f64.mul
     local.get $16
     f64.sub
-    local.get $7
+    local.get $6
     f64.const -0.16666666666666632
     f64.mul
     f64.sub
     f64.sub
-    br $~lib/math/sin_kern|inlined.4
+    br $~lib/util/math/sin64_kern|inlined.4
    end
    unreachable
   end
@@ -15554,33 +15621,33 @@
   local.get $18
   local.set $16
   local.get $19
-  local.set $8
+  local.set $7
   local.get $16
   local.get $16
   f64.mul
-  local.set $7
-  local.get $7
-  local.get $7
+  local.set $6
+  local.get $6
+  local.get $6
   f64.mul
-  local.set $10
-  local.get $7
+  local.set $9
+  local.get $6
   f64.const 0.0416666666666666
-  local.get $7
+  local.get $6
   f64.const -0.001388888888887411
-  local.get $7
+  local.get $6
   f64.const 2.480158728947673e-05
   f64.mul
   f64.add
   f64.mul
   f64.add
   f64.mul
-  local.get $10
-  local.get $10
+  local.get $9
+  local.get $9
   f64.mul
   f64.const -2.7557314351390663e-07
-  local.get $7
+  local.get $6
   f64.const 2.087572321298175e-09
-  local.get $7
+  local.get $6
   f64.const -1.1359647557788195e-11
   f64.mul
   f64.add
@@ -15588,26 +15655,26 @@
   f64.add
   f64.mul
   f64.add
-  local.set $6
+  local.set $5
   f64.const 0.5
-  local.get $7
+  local.get $6
   f64.mul
-  local.set $5
+  local.set $4
   f64.const 1
-  local.get $5
+  local.get $4
   f64.sub
-  local.set $10
-  local.get $10
+  local.set $9
+  local.get $9
   f64.const 1
-  local.get $10
+  local.get $9
   f64.sub
-  local.get $5
+  local.get $4
   f64.sub
-  local.get $7
   local.get $6
+  local.get $5
   f64.mul
   local.get $16
-  local.get $8
+  local.get $7
   f64.mul
   f64.sub
   f64.add
@@ -15638,10 +15705,9 @@
    f64.neg
    local.set $23
   end
-  local.get $22
-  global.set $~lib/math/NativeMath.sincos_sin
   local.get $23
-  global.set $~lib/math/NativeMath.sincos_cos
+  global.set $~lib/util/math/sincos_cos64
+  local.get $22
  )
  (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32)
   (local $6 f64)
@@ -15649,6 +15715,7 @@
   (local $8 f64)
   (local $9 f64)
   (local $10 f64)
+  (local $11 f64)
   local.get $0
   f64.reinterpret_i64
   local.set $6
@@ -15665,7 +15732,22 @@
   f64.reinterpret_i64
   local.set $10
   local.get $6
-  call $~lib/math/NativeMath.sincos
+  local.set $11
+  i32.const 1
+  drop
+  i32.const 8
+  i32.const 4
+  i32.eq
+  drop
+  i32.const 8
+  i32.const 8
+  i32.eq
+  drop
+  local.get $11
+  call $~lib/util/math/sincos64
+  global.set $~lib/math/NativeMath.sincos_sin
+  global.get $~lib/util/math/sincos_cos64
+  global.set $~lib/math/NativeMath.sincos_cos
   global.get $~lib/math/NativeMath.sincos_sin
   local.get $7
   local.get $9
@@ -15681,7 +15763,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/dtoi32 (param $0 f64) (result i32)
+ (func $~lib/util/math/dtoi32 (param $0 f64) (result i32)
   (local $1 i32)
   (local $2 i64)
   (local $3 i64)
@@ -15762,8 +15844,12 @@
   local.get $1
   return
  )
- (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/math/NativeMath.imul<f64> (param $0 f64) (param $1 f64) (result f64)
   (local $2 f64)
+  i32.const 0
+  drop
+  i32.const 1
+  drop
   local.get $0
   local.get $1
   f64.add
@@ -15778,13 +15864,18 @@
    return
   end
   local.get $0
-  call $~lib/math/dtoi32
+  call $~lib/util/math/dtoi32
   local.get $1
-  call $~lib/math/dtoi32
+  call $~lib/util/math/dtoi32
   i32.mul
   f64.convert_i32_s
+  return
  )
- (func $~lib/math/NativeMath.clz32 (param $0 f64) (result f64)
+ (func $~lib/math/NativeMath.clz32<f64> (param $0 f64) (result i32)
+  i32.const 0
+  drop
+  i32.const 1
+  drop
   local.get $0
   local.get $0
   f64.sub
@@ -15792,15 +15883,15 @@
   f64.eq
   i32.eqz
   if
-   f64.const 32
+   i32.const 32
    return
   end
   local.get $0
-  call $~lib/math/dtoi32
+  call $~lib/util/math/dtoi32
   i32.clz
-  f64.convert_i32_s
+  return
  )
- (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64)
+ (func $~lib/util/math/ipow64 (param $0 i64) (param $1 i64) (result i64)
   (local $2 i64)
   (local $3 i32)
   (local $4 i32)
@@ -16063,7 +16154,7 @@
   end
   local.get $2
  )
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -16232,2934 +16323,1194 @@
         end
         local.get $1
         i32.const 1
-        i32.shr_u
-        local.set $1
-        local.get $0
-        local.get $0
-        i32.mul
-        local.set $0
-       end
-       local.get $1
-       i32.const 1
-       i32.and
-       if
-        local.get $2
-        local.get $0
-        i32.mul
-        local.set $2
-       end
-      end
-      local.get $2
-      return
-     end
-    end
-   end
-  end
-  loop $while-continue|1
-   local.get $1
-   local.set $3
-   local.get $3
-   if
-    local.get $1
-    i32.const 1
-    i32.and
-    if
-     local.get $2
-     local.get $0
-     i32.mul
-     local.set $2
-    end
-    local.get $1
-    i32.const 1
-    i32.shr_u
-    local.set $1
-    local.get $0
-    local.get $0
-    i32.mul
-    local.set $0
-    br $while-continue|1
-   end
-  end
-  local.get $2
- )
- (func $start:std/math
-  (local $0 f64)
-  (local $1 i32)
-  (local $2 i32)
-  (local $3 i64)
-  (local $4 f32)
-  (local $5 f64)
-  global.get $~lib/math/NativeMath.E
-  global.get $~lib/math/NativeMath.E
-  f64.eq
-  drop
-  global.get $~lib/math/NativeMathf.E
-  global.get $~lib/math/NativeMathf.E
-  f32.eq
-  drop
-  global.get $~lib/math/NativeMath.E
-  global.get $~lib/bindings/dom/Math.E
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 111
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.LN2
-  global.get $~lib/bindings/dom/Math.LN2
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 112
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.LN10
-  global.get $~lib/bindings/dom/Math.LN10
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 113
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.LOG2E
-  global.get $~lib/bindings/dom/Math.LOG2E
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 114
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.PI
-  global.get $~lib/bindings/dom/Math.PI
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 115
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.SQRT1_2
-  global.get $~lib/bindings/dom/Math.SQRT1_2
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 116
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMath.SQRT2
-  global.get $~lib/bindings/dom/Math.SQRT2
-  f64.const 0
-  i32.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 117
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.E
-  global.get $~lib/bindings/dom/Math.E
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 119
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.LN2
-  global.get $~lib/bindings/dom/Math.LN2
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 120
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.LN10
-  global.get $~lib/bindings/dom/Math.LN10
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 121
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.LOG2E
-  global.get $~lib/bindings/dom/Math.LOG2E
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 122
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.PI
-  global.get $~lib/bindings/dom/Math.PI
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 123
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.SQRT1_2
-  global.get $~lib/bindings/dom/Math.SQRT1_2
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 124
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  global.get $~lib/math/NativeMathf.SQRT2
-  global.get $~lib/bindings/dom/Math.SQRT2
-  f32.demote_f64
-  f32.const 0
-  i32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 125
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 136
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 137
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 138
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 139
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 140
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 141
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 142
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 143
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 144
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 145
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 148
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 149
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 150
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 151
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 152
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 153
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 154
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 155
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 156
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  i32.const 2147483647
-  f64.const inf
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/OVERFLOW
-  i32.or
-  call $std/math/test_scalbn
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 157
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 158
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 159
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 160
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 161
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 162
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 163
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.000244140625
-  i32.const -1074
-  f64.const 5e-324
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbn
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 164
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.7499999999999999
-  i32.const -1073
-  f64.const 5e-324
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbn
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 165
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.5000000000000012
-  i32.const -1024
-  f64.const 2.781342323134007e-309
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbn
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 166
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 175
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 176
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 177
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 178
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 179
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 180
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 181
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 182
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 183
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 184
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 187
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 188
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 189
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 190
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 191
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 192
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 193
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 194
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 195
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  i32.const 2147483647
-  f32.const inf
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/OVERFLOW
-  i32.or
-  call $std/math/test_scalbnf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 196
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 197
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 198
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 199
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 200
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 201
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 202
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1.000244140625
-  i32.const -149
-  f32.const 1.401298464324817e-45
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbnf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 203
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.7499999403953552
-  i32.const -148
-  f32.const 1.401298464324817e-45
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbnf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 204
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5000006556510925
-  i32.const -128
-  f32.const 1.4693693398263237e-39
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_scalbnf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 205
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 217
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 218
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 219
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 220
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 221
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 222
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 223
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 224
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 225
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 226
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 229
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 230
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 231
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 232
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 233
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 234
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 235
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 244
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 245
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 246
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 247
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 248
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 249
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 250
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 251
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 252
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 253
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 256
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 257
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 258
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 259
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 260
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 261
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 262
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 274
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 4.345239849338305
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 275
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 276
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 277
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 9.267056966972586
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 278
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.6619858980995045
-  f64.const 0.8473310828433507
-  f64.const -0.41553276777267456
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 279
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.4066039223853553
-  f64.const 1.989530071088669
-  f64.const 0.4973946213722229
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 280
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.5617597462207241
-  f64.const 0.9742849645674904
-  f64.const -0.4428897500038147
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 281
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.7741522965913037
-  f64.const 0.6854215158636222
-  f64.const -0.12589527666568756
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 282
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+        i32.shr_u
+        local.set $1
+        local.get $0
+        local.get $0
+        i32.mul
+        local.set $0
+       end
+       local.get $1
+       i32.const 1
+       i32.and
+       if
+        local.get $2
+        local.get $0
+        i32.mul
+        local.set $2
+       end
+      end
+      local.get $2
+      return
+     end
+    end
+   end
   end
-  f64.const -0.6787637026394024
-  f64.const 2.316874138205964
-  f64.const -0.17284949123859406
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 283
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+  loop $while-continue|1
+   local.get $1
+   local.set $3
+   local.get $3
+   if
+    local.get $1
+    i32.const 1
+    i32.and
+    if
+     local.get $2
+     local.get $0
+     i32.mul
+     local.set $2
+    end
+    local.get $1
+    i32.const 1
+    i32.shr_u
+    local.set $1
+    local.get $0
+    local.get $0
+    i32.mul
+    local.set $0
+    br $while-continue|1
+   end
   end
+  local.get $2
+ )
+ (func $start:std/math
+  (local $0 f64)
+  (local $1 f64)
+  (local $2 i32)
+  (local $3 i32)
+  (local $4 f32)
+  global.get $~lib/math/NativeMath.E
+  global.get $~lib/math/NativeMath.E
+  f64.eq
+  drop
+  global.get $~lib/math/NativeMath.E
+  global.get $~lib/bindings/dom/Math.E
   f64.const 0
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 286
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const 3.141592653589793
-  f64.const -0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
+  i32.const 0
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 287
+   i32.const 116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
+  global.get $~lib/math/NativeMath.LN2
+  global.get $~lib/bindings/dom/Math.LN2
   f64.const 0
   i32.const 0
-  call $std/math/test_acos
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 288
+   i32.const 117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000000000000002
-  f64.const nan:0x8000000000000
+  global.get $~lib/math/NativeMath.LN10
+  global.get $~lib/bindings/dom/Math.LN10
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
+  i32.const 0
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 289
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000000000000002
-  f64.const nan:0x8000000000000
+  global.get $~lib/math/NativeMath.LOG2E
+  global.get $~lib/bindings/dom/Math.LOG2E
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
+  i32.const 0
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 290
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
+  global.get $~lib/math/NativeMath.PI
+  global.get $~lib/bindings/dom/Math.PI
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
+  i32.const 0
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 291
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  global.get $~lib/math/NativeMath.SQRT1_2
+  global.get $~lib/bindings/dom/Math.SQRT1_2
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acos
+  i32.const 0
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 292
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  global.get $~lib/math/NativeMath.SQRT2
+  global.get $~lib/bindings/dom/Math.SQRT2
   f64.const 0
   i32.const 0
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 293
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.5309227209592985
-  f64.const 2.1304853799705463
-  f64.const 0.1391008496284485
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 294
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.4939556746399746
-  f64.const 1.0541629875851946
-  f64.const 0.22054767608642578
-  global.get $std/math/INEXACT
-  call $std/math/test_acos
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 295
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.066848754882812
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  call $std/math/check<f64>
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 304
+   i32.const 122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 305
+   i32.const 133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 306
+   i32.const 134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 307
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 308
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.8473311066627502
-  f32.const -0.13588131964206696
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 309
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const 1.989530086517334
-  f32.const 0.03764917701482773
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 310
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.9742849469184875
-  f32.const 0.18443739414215088
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 311
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0.6854215264320374
-  f32.const -0.29158344864845276
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 312
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const 2.3168740272521973
-  f32.const -0.3795364499092102
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 313
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1.5707963705062866
-  f32.const 0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 316
+   i32.const 142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 3.1415927410125732
-  f32.const 0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 317
+   i32.const 145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const 0
+  i32.const -2147483647
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_acosf
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 318
+   i32.const 146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000001192092896
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 319
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000001192092896
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 320
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 321
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosf
+  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 32
-   i32.const 322
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 1
   i32.const 0
-  call $std/math/test_acosf
+  f64.const 1
+  f64.const 0
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 323
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.49965065717697144
-  f32.const 1.0476008653640747
-  f32.const -0.21161814033985138
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 324
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5051405429840088
-  f32.const 2.1003410816192627
-  f32.const -0.20852705836296082
-  global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  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 32
-   i32.const 325
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5189794898033142
-  f32.const 2.116452932357788
-  f32.const -0.14600826799869537
+  f64.const 1
+  i32.const 2147483647
+  f64.const inf
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_acosf
+  global.get $std/math/OVERFLOW
+  i32.or
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 326
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
+  i32.const 1
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 338
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 4.345239849338305
-  f64.const 2.1487163980597503
-  f64.const -0.291634738445282
-  global.get $std/math/INEXACT
-  call $std/math/test_acosh
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 339
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
+  f64.const inf
+  i32.const 2147483647
+  f64.const inf
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 340
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
+  f64.const inf
+  i32.const -2147483647
+  f64.const inf
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 341
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 2.91668914109908
-  f64.const -0.24191908538341522
-  global.get $std/math/INEXACT
-  call $std/math/test_acosh
+  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 32
-   i32.const 342
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const nan:0x8000000000000
+  f64.const 8988465674311579538646525e283
+  i32.const -2097
+  f64.const 5e-324
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 343
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const nan:0x8000000000000
+  f64.const 5e-324
+  i32.const 2097
+  f64.const 8988465674311579538646525e283
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  i32.const 0
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 344
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const nan:0x8000000000000
+  f64.const 1.000244140625
+  i32.const -1074
+  f64.const 5e-324
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 345
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const nan:0x8000000000000
+  f64.const 0.7499999999999999
+  i32.const -1073
+  f64.const 5e-324
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 346
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const nan:0x8000000000000
+  f64.const 0.5000000000000012
+  i32.const -1024
+  f64.const 2.781342323134007e-309
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbn
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 347
+   i32.const 163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -8.066848754882812
+  i32.const -2
+  f32.const -2.016712188720703
+  f32.const 0
   i32.const 0
-  call $std/math/test_acosh
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 350
+   i32.const 172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
+  f32.const 4.345239639282227
+  i32.const -1
+  f32.const 2.1726198196411133
+  f32.const 0
   i32.const 0
-  call $std/math/test_acosh
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 351
+   i32.const 173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const 0
+  f32.const -8.381433486938477
   i32.const 0
-  call $std/math/test_acosh
+  f32.const -8.381433486938477
+  f32.const 0
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 352
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  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 32
-   i32.const 353
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -9784.820766473835
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  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 32
-   i32.const 354
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  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 32
-   i32.const 355
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  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 32
-   i32.const 356
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acosh
+  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 32
-   i32.const 357
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1060831199926429
-  f64.const 0.4566373404384803
-  f64.const -0.29381608963012695
-  global.get $std/math/INEXACT
-  call $std/math/test_acosh
+  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 32
-   i32.const 373
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1089809557628658
-  f64.const 0.4627246859959428
-  f64.const -0.3990095555782318
-  global.get $std/math/INEXACT
-  call $std/math/test_acosh
+  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 32
-   i32.const 375
+   i32.const 181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1169429159875521
-  f64.const 0.47902433134075284
-  f64.const -0.321674108505249
-  global.get $std/math/INEXACT
-  call $std/math/test_acosh
+  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 32
-   i32.const 376
+   i32.const 184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  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 32
-   i32.const 385
+   i32.const 185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 2.148716449737549
-  f32.const 0.4251045286655426
-  global.get $std/math/INEXACT
-  call $std/math/test_acoshf
+  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 32
-   i32.const 386
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
+  f32.const nan:0x400000
+  i32.const 0
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 387
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const nan:0x400000
+  f32.const inf
+  i32.const 0
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 388
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 2.916689157485962
-  f32.const -0.1369788944721222
-  global.get $std/math/INEXACT
-  call $std/math/test_acoshf
+  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 32
-   i32.const 389
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const nan:0x400000
+  f32.const 1
+  i32.const 0
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 390
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const nan:0x400000
+  f32.const 1
+  i32.const 1
+  f32.const 2
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 391
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const nan:0x400000
+  f32.const 1
+  i32.const -1
+  f32.const 0.5
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 392
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const nan:0x400000
+  f32.const 1
+  i32.const 2147483647
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  global.get $std/math/INEXACT
+  global.get $std/math/OVERFLOW
+  i32.or
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 393
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
+  f32.const nan:0x400000
+  i32.const 1
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 394
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const inf
+  i32.const 2147483647
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_acoshf
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 397
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
+  i32.const -2147483647
   f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_acoshf
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 398
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
+  f32.const inf
+  f32.neg
+  i32.const 2147483647
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_acoshf
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 399
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
-  f32.const nan:0x400000
+  f32.const 1701411834604692317316873e14
+  i32.const -276
+  f32.const 1.401298464324817e-45
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 400
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 1.401298464324817e-45
+  i32.const 276
+  f32.const 1701411834604692317316873e14
   f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  i32.const 0
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 401
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const nan:0x400000
+  f32.const 1.000244140625
+  i32.const -149
+  f32.const 1.401298464324817e-45
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 402
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
+  f32.const 0.7499999403953552
+  i32.const -148
+  f32.const 1.401298464324817e-45
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 403
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1125899906842624
-  f32.const nan:0x400000
+  f32.const 0.5000006556510925
+  i32.const -128
+  f32.const 1.4693693398263237e-39
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_acoshf
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_scalbnf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 404
+   i32.const 202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
+  f64.const 8.06684839057968
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 416
+   i32.const 214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  f64.const nan:0x8000000000000
+  f64.const 4.345239849338305
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 417
+   i32.const 215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
+  f64.const 8.38143342755525
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 418
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
+  f64.const 6.531673581913484
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 419
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  f64.const nan:0x8000000000000
+  f64.const 9.267056966972586
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 420
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  f64.const 0.7234652439515459
-  f64.const -0.13599912822246552
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  f64.const 0.6619858980995045
+  f64.const 0
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 421
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  f64.const -0.41873374429377225
-  f64.const -0.09264230728149414
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  f64.const 0.4066039223853553
+  f64.const 0
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 422
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  f64.const 0.5965113622274062
-  f64.const -0.10864213854074478
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  f64.const 0.5617597462207241
+  f64.const 0
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 423
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  f64.const 0.8853748109312743
-  f64.const -0.4256366193294525
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  f64.const 0.7741522965913037
+  f64.const 0
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 424
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  f64.const -0.7460778114110673
-  f64.const 0.13986606895923615
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 425
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 428
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -1.5707963267948966
-  f64.const 0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  f64.const 0.6787637026394024
+  f64.const 0
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 429
+   i32.const 223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19168,279 +17519,237 @@
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_asin
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 430
+   i32.const 226
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 431
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.0000000000000002
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 432
+   i32.const 227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000000000000002
-  f64.const nan:0x8000000000000
+  f64.const 1
+  f64.const 1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 433
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
+  f64.const -1
+  f64.const 1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 434
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  f64.const inf
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asin
+  i32.const 0
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 435
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_asin
+  call $std/math/test_abs
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 436
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5073043929119148
-  f64.const 0.5320538997772349
-  f64.const -0.16157317161560059
-  global.get $std/math/INEXACT
-  call $std/math/test_asin
+  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 32
-   i32.const 437
+   i32.const 232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  f32.const nan:0x400000
+  f32.const 8.066848754882812
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 446
+   i32.const 241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  f32.const nan:0x400000
+  f32.const 4.345239639282227
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 447
+   i32.const 242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  f32.const nan:0x400000
+  f32.const 8.381433486938477
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 448
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  f32.const nan:0x400000
+  f32.const 6.531673431396484
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 449
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  f32.const nan:0x400000
+  f32.const 9.267057418823242
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 450
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  f32.const 0.7234652042388916
-  f32.const -0.1307632476091385
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  f32.const 0.6619858741760254
+  f32.const 0
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 451
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  f32.const -0.41873374581336975
-  f32.const 0.3161141574382782
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  f32.const 0.40660393238067627
+  f32.const 0
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 452
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  f32.const 0.5965113639831543
-  f32.const -0.4510819613933563
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  f32.const 0.5617597699165344
+  f32.const 0
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 453
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  f32.const 0.8853747844696045
-  f32.const 0.02493886835873127
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  f32.const 0.7741522789001465
+  f32.const 0
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 454
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  f32.const -0.7460777759552002
-  f32.const 0.2515012323856354
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 455
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1.5707963705062866
-  f32.const 0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 458
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1.5707963705062866
-  f32.const -0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  f32.const 0.6787636876106262
+  f32.const 0
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 459
+   i32.const 250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19449,83 +17758,83 @@
   f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_asinf
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 460
+   i32.const 253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  f32.const -0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_asinf
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 461
+   i32.const 254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000001192092896
-  f32.const nan:0x400000
+  f32.const 1
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 462
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000001192092896
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 463
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  f32.const nan:0x400000
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 464
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.neg
-  f32.const nan:0x400000
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_asinf
+  i32.const 0
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 465
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19534,3246 +17843,3096 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_asinf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 466
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5004770159721375
-  f32.const 0.5241496562957764
-  f32.const -0.29427099227905273
-  global.get $std/math/INEXACT
-  call $std/math/test_asinf
+  call $std/math/test_absf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 467
+   i32.const 259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  f64.const -2.784729878387861
-  f64.const -0.4762189984321594
-  global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 479
+   i32.const 271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  f64.const 2.175213389013164
-  f64.const -0.02728751301765442
-  global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 480
+   i32.const 272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  f64.const -2.822706083697696
-  f64.const 0.20985257625579834
-  global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 481
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  f64.const -2.575619446591922
-  f64.const 0.3113134205341339
-  global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 482
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  f64.const 2.9225114951048674
-  f64.const 0.4991756081581116
-  global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 483
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  f64.const 0.6212462762707166
-  f64.const -0.4697347581386566
+  f64.const 0.8473310828433507
+  f64.const -0.41553276777267456
   global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 484
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  f64.const -0.39615990393192035
-  f64.const -0.40814438462257385
+  f64.const 1.989530071088669
+  f64.const 0.4973946213722229
   global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 485
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  f64.const 0.5357588870255474
-  f64.const 0.3520713150501251
+  f64.const 0.9742849645674904
+  f64.const -0.4428897500038147
   global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 486
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  f64.const 0.7123571263197349
-  f64.const 0.13371451199054718
+  f64.const 0.6854215158636222
+  f64.const -0.12589527666568756
   global.get $std/math/INEXACT
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 487
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  f64.const -0.635182348903198
-  f64.const 0.04749670997262001
+  f64.const 2.316874138205964
+  f64.const -0.17284949123859406
   global.get $std/math/INEXACT
-  call $std/math/test_asinh
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 488
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 491
+   i32.const 280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
   f64.const 0
-  i32.const 0
-  call $std/math/test_asinh
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 492
+   i32.const 283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const 0
-  i32.const 0
-  call $std/math/test_asinh
+  f64.const -1
+  f64.const 3.141592653589793
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 493
+   i32.const 284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
+  f64.const 1
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_asinh
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 494
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
+  f64.const 1.0000000000000002
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_asinh
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 495
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.066848754882812
-  f32.const -2.7847299575805664
-  f32.const -0.14418013393878937
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 524
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 4.345239639282227
-  f32.const 2.17521333694458
-  f32.const -0.020796965807676315
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 525
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -2.8227059841156006
-  f32.const 0.44718533754348755
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  f64.const -1.0000000000000002
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 526
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const -2.5756194591522217
-  f32.const -0.14822272956371307
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 527
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 2.922511577606201
-  f32.const 0.14270681142807007
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 528
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.6212462782859802
-  f32.const 0.3684912919998169
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  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 32
-   i32.const 529
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0.39615991711616516
-  f32.const -0.13170306384563446
+  f64.const -0.5309227209592985
+  f64.const 2.1304853799705463
+  f64.const 0.1391008496284485
   global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 530
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.535758912563324
-  f32.const 0.08184859901666641
+  f64.const 0.4939556746399746
+  f64.const 1.0541629875851946
+  f64.const 0.22054767608642578
   global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  call $std/math/test_acos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 531
+   i32.const 292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0.7123571038246155
-  f32.const -0.14270737767219543
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  f32.const -8.066848754882812
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 532
+   i32.const 301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -0.6351823210716248
-  f32.const 0.2583143711090088
-  global.get $std/math/INEXACT
-  call $std/math/test_asinhf
+  f32.const 4.345239639282227
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 533
+   i32.const 302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
+  f32.const -8.381433486938477
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_asinhf
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 536
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
+  f32.const -6.531673431396484
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_asinhf
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 537
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
+  f32.const 9.267057418823242
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_asinhf
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 538
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_asinhf
+  f32.const 0.6619858741760254
+  f32.const 0.8473311066627502
+  f32.const -0.13588131964206696
+  global.get $std/math/INEXACT
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 539
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_asinhf
+  f32.const -0.40660393238067627
+  f32.const 1.989530086517334
+  f32.const 0.03764917701482773
+  global.get $std/math/INEXACT
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 540
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -1.4474613762633468
-  f64.const 0.14857111871242523
+  f32.const 0.5617597699165344
+  f32.const 0.9742849469184875
+  f32.const 0.18443739414215088
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 552
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 1.344597927114538
-  f64.const -0.08170335739850998
+  f32.const 0.7741522789001465
+  f32.const 0.6854215264320374
+  f32.const -0.29158344864845276
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 553
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -1.4520463463295539
-  f64.const -0.07505480200052261
+  f32.const -0.6787636876106262
+  f32.const 2.3168740272521973
+  f32.const -0.3795364499092102
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 554
+   i32.const 310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -1.4188758658752532
-  f64.const -0.057633496820926666
+  f32.const 0
+  f32.const 1.5707963705062866
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 555
+   i32.const 313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 1.463303145448706
-  f64.const 0.1606956422328949
+  f32.const -1
+  f32.const 3.1415927410125732
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 556
+   i32.const 314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.5847550670238325
-  f64.const 0.4582556486129761
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  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 32
-   i32.const 557
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0.3861864177552131
-  f64.const -0.2574281692504883
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  f32.const 1.0000001192092896
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 558
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.5118269531628881
-  f64.const -0.11444277316331863
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  f32.const -1.0000001192092896
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 559
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 0.6587802431653822
-  f64.const -0.11286488175392151
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  f32.const inf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 560
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -0.5963307826973472
-  f64.const -0.2182842344045639
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 561
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 564
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan
+  f32.const 0.49965065717697144
+  f32.const 1.0476008653640747
+  f32.const -0.21161814033985138
+  global.get $std/math/INEXACT
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 565
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0.7853981633974483
-  f64.const -0.27576595544815063
+  f32.const -0.5051405429840088
+  f32.const 2.1003410816192627
+  f32.const -0.20852705836296082
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 566
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -0.7853981633974483
-  f64.const 0.27576595544815063
+  f32.const -0.5189794898033142
+  f32.const 2.116452932357788
+  f32.const -0.14600826799869537
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 567
+   i32.const 323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_atan
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 568
+   i32.const 335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1.5707963267948966
-  f64.const 0.27576595544815063
+  f64.const 4.345239849338305
+  f64.const 2.1487163980597503
+  f64.const -0.291634738445282
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 569
+   i32.const 336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -8.38143342755525
   f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 337
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const -6.531673581913484
   f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_atan
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 570
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6929821535674624
-  f64.const 0.6060004555152562
-  f64.const -0.17075790464878082
+  f64.const 9.267056966972586
+  f64.const 2.91668914109908
+  f64.const -0.24191908538341522
   global.get $std/math/INEXACT
-  call $std/math/test_atan
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 571
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const -1.4474613666534424
-  f32.const 0.12686480581760406
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const 0.6619858980995045
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 580
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 1.3445979356765747
-  f32.const 0.16045434772968292
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const -0.4066039223853553
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 581
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -1.4520463943481445
-  f32.const -0.39581751823425293
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const 0.5617597462207241
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 582
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const -1.418875813484192
-  f32.const 0.410570353269577
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const 0.7741522965913037
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 583
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 1.4633032083511353
-  f32.const 0.48403501510620117
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const -0.6787637026394024
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 584
+   i32.const 344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.5847550630569458
-  f32.const 0.2125193476676941
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  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 32
-   i32.const 585
+   i32.const 347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0.386186420917511
-  f32.const 0.18169628083705902
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  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 32
-   i32.const 586
+   i32.const 348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.5118269920349121
-  f32.const 0.3499770760536194
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  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 32
-   i32.const 587
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0.6587802171707153
-  f32.const -0.2505330741405487
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const 0.9999923706054688
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 588
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -0.5963307619094849
-  f32.const 0.17614826560020447
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const -9784.820766473835
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 589
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atanf
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 592
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atanf
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 593
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0.7853981852531433
-  f32.const 0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 594
+   i32.const 354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0.7853981852531433
-  f32.const -0.3666777014732361
+  f64.const 1.1060831199926429
+  f64.const 0.4566373404384803
+  f64.const -0.29381608963012695
   global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 595
+   i32.const 370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1.5707963705062866
-  f32.const 0.3666777014732361
+  f64.const 1.1089809557628658
+  f64.const 0.4627246859959428
+  f64.const -0.3990095555782318
   global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 596
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1.5707963705062866
-  f32.const -0.3666777014732361
+  f64.const 1.1169429159875521
+  f64.const 0.47902433134075284
+  f64.const -0.321674108505249
   global.get $std/math/INEXACT
-  call $std/math/test_atanf
+  call $std/math/test_acosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 597
+   i32.const 373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
+  f32.const -8.066848754882812
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_atanf
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 598
+   i32.const 382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanh
+  f32.const 4.345239639282227
+  f32.const 2.148716449737549
+  f32.const 0.4251045286655426
+  global.get $std/math/INEXACT
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 610
+   i32.const 383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -8.381433486938477
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 611
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -6.531673431396484
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 612
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 9.267057418823242
+  f32.const 2.916689157485962
+  f32.const -0.1369788944721222
+  global.get $std/math/INEXACT
+  call $std/math/test_acoshf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 386
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 0.6619858741760254
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 613
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -0.40660393238067627
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 614
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.7963404371347943
-  f64.const 0.21338365972042084
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  f32.const 0.5617597699165344
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 615
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0.43153570730602897
-  f64.const -0.4325666129589081
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  f32.const 0.7741522789001465
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 616
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.6354006111644578
-  f64.const -0.06527865678071976
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  f32.const -0.6787636876106262
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 617
+   i32.const 391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 1.0306085575277995
-  f64.const 0.14632052183151245
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  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 32
-   i32.const 618
+   i32.const 394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -0.8268179645205255
-  f64.const 0.1397128701210022
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  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 32
-   i32.const 619
+   i32.const 395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 622
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 0.9999923706054688
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 623
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 624
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atanh
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 625
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atanh
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 626
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_atanh
+  f32.const -1125899906842624
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_acoshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 627
+   i32.const 401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.neg
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_atanh
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 628
+   i32.const 413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
+  f64.const 4.345239849338305
   f64.const nan:0x8000000000000
   f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 629
+   i32.const 414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000152587890625
+  f64.const -8.38143342755525
   f64.const nan:0x8000000000000
   f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanh
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 630
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.3552527156068805e-20
-  f64.const 1.3552527156068805e-20
+  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 631
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.332636185032189e-302
-  f64.const 9.332636185032189e-302
+  f64.const 9.267056966972586
+  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_atanh
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 632
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5.562684646268003e-309
-  f64.const 5.562684646268003e-309
-  f64.const 0
+  f64.const 0.6619858980995045
+  f64.const 0.7234652439515459
+  f64.const -0.13599912822246552
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atanh
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 633
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -5.562684646268003e-309
-  f64.const -5.562684646268003e-309
-  f64.const 0
+  f64.const -0.4066039223853553
+  f64.const -0.41873374429377225
+  f64.const -0.09264230728149414
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atanh
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 634
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8988465674311579538646525e283
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanh
+  f64.const 0.5617597462207241
+  f64.const 0.5965113622274062
+  f64.const -0.10864213854074478
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 635
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f64.const 0.7741522965913037
+  f64.const 0.8853748109312743
+  f64.const -0.4256366193294525
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 644
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f64.const -0.6787637026394024
+  f64.const -0.7460778114110673
+  f64.const 0.13986606895923615
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 645
+   i32.const 422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f64.const 1
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 646
+   i32.const 425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f64.const -1
+  f64.const -1.5707963267948966
+  f64.const 0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 647
+   i32.const 426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  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 32
-   i32.const 648
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.7963404059410095
-  f32.const 0.19112196564674377
-  global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  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 32
-   i32.const 649
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0.4315357208251953
-  f32.const -0.05180925130844116
-  global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  f64.const 1.0000000000000002
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 650
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.635400652885437
-  f32.const 0.11911056190729141
-  global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  f64.const -1.0000000000000002
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 651
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 1.0306085348129272
-  f32.const 0.1798270344734192
-  global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 652
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -0.8268179297447205
-  f32.const 0.11588983237743378
-  global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 653
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_atanhf
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 656
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f64.const 0.5073043929119148
+  f64.const 0.5320538997772349
+  f64.const -0.16157317161560059
+  global.get $std/math/INEXACT
+  call $std/math/test_asin
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 657
+   i32.const 434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
+  f32.const -8.066848754882812
   f32.const nan:0x400000
   f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 658
+   i32.const 443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 4.345239639282227
+  f32.const nan:0x400000
   f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atanhf
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 659
+   i32.const 444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
+  f32.const -8.381433486938477
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_atanhf
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 660
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
+  f32.const -6.531673431396484
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_atanhf
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 661
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.neg
+  f32.const 9.267057418823242
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_atanhf
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 662
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f32.const 0.6619858741760254
+  f32.const 0.7234652042388916
+  f32.const -0.1307632476091385
+  global.get $std/math/INEXACT
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 663
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f32.const -0.40660393238067627
+  f32.const -0.41873374581336975
+  f32.const 0.3161141574382782
+  global.get $std/math/INEXACT
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 664
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.3552527156068805e-20
-  f32.const 1.3552527156068805e-20
-  f32.const 0
+  f32.const 0.5617597699165344
+  f32.const 0.5965113639831543
+  f32.const -0.4510819613933563
   global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 665
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
-  f32.const 7.888609052210118e-31
-  f32.const 0
+  f32.const 0.7741522789001465
+  f32.const 0.8853747844696045
+  f32.const 0.02493886835873127
   global.get $std/math/INEXACT
-  call $std/math/test_atanhf
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 666
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.938735877055719e-39
-  f32.const 2.938735877055719e-39
-  f32.const 0
+  f32.const -0.6787636876106262
+  f32.const -0.7460777759552002
+  f32.const 0.2515012323856354
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atanhf
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 667
+   i32.const 452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.938735877055719e-39
-  f32.const -2.938735877055719e-39
-  f32.const 0
+  f32.const 1
+  f32.const 1.5707963705062866
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atanhf
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 668
+   i32.const 455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1701411834604692317316873e14
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_atanhf
+  f32.const -1
+  f32.const -1.5707963705062866
+  f32.const -0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 669
+   i32.const 456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const 4.535662560676869
-  f64.const -1.0585895402489023
-  f64.const 0.09766263514757156
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 681
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  f64.const 2.6868734126013067
-  f64.const 0.35833948850631714
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 682
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -2.763607337379588
-  f64.const -1.889300091849528
-  f64.const -0.46235957741737366
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  f32.const 1.0000001192092896
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 683
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 4.567535276842744
-  f64.const -0.9605469021111489
-  f64.const -0.21524477005004883
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  f32.const -1.0000001192092896
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 684
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  f64.const 1.0919123946142109
-  f64.const 0.3894443213939667
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  f32.const inf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 685
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.450045556060236
-  f64.const 0.6620717923376739
-  f64.const -1.468508500616424
-  f64.const -0.448591411113739
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 686
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  f64.const 1.5641600512601268
-  f64.const 0.3784842789173126
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 687
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  f64.const -0.10281658910678508
-  f64.const -0.13993260264396667
+  f32.const 0.5004770159721375
+  f32.const 0.5241496562957764
+  f32.const -0.29427099227905273
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 688
+   i32.const 464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  f64.const 0.29697974004493516
-  f64.const 0.44753071665763855
+  f64.const -8.06684839057968
+  f64.const -2.784729878387861
+  f64.const -0.4762189984321594
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 689
+   i32.const 476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
-  f64.const -1.5131612053303916
-  f64.const 0.39708876609802246
+  f64.const 4.345239849338305
+  f64.const 2.175213389013164
+  f64.const -0.02728751301765442
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 690
+   i32.const 477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f64.const -8.38143342755525
+  f64.const -2.822706083697696
+  f64.const 0.20985257625579834
+  global.get $std/math/INEXACT
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 693
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -0
-  f64.const 3.141592653589793
-  f64.const -0.27576595544815063
+  f64.const -6.531673581913484
+  f64.const -2.575619446591922
+  f64.const 0.3113134205341339
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 694
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -1
-  f64.const 3.141592653589793
-  f64.const -0.27576595544815063
+  f64.const 9.267056966972586
+  f64.const 2.9225114951048674
+  f64.const 0.4991756081581116
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 695
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const 3.141592653589793
-  f64.const -0.27576595544815063
+  f64.const 0.6619858980995045
+  f64.const 0.6212462762707166
+  f64.const -0.4697347581386566
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 696
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f64.const -0.4066039223853553
+  f64.const -0.39615990393192035
+  f64.const -0.40814438462257385
+  global.get $std/math/INEXACT
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 697
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f64.const 0.5617597462207241
+  f64.const 0.5357588870255474
+  f64.const 0.3520713150501251
+  global.get $std/math/INEXACT
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 698
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f64.const 0.7741522965913037
+  f64.const 0.7123571263197349
+  f64.const 0.13371451199054718
+  global.get $std/math/INEXACT
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 699
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const -3.141592653589793
-  f64.const 0.27576595544815063
+  f64.const -0.6787637026394024
+  f64.const -0.635182348903198
+  f64.const 0.04749670997262001
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 700
+   i32.const 485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -1
-  f64.const -3.141592653589793
-  f64.const 0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 701
+   i32.const 488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
   f64.const inf
-  f64.neg
-  f64.const -3.141592653589793
-  f64.const 0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  f64.const inf
+  f64.const 0
+  i32.const 0
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 702
+   i32.const 489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const -0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 703
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.const -0
+  f64.const 0
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_atan2
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 704
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
+  f64.const -0
+  f64.const -0
   f64.const 0
-  f64.const -1.5707963267948966
-  f64.const 0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  i32.const 0
+  call $std/math/test_asinh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 705
+   i32.const 492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -0
-  f64.const -1.5707963267948966
-  f64.const 0.27576595544815063
+  f32.const -8.066848754882812
+  f32.const -2.7847299575805664
+  f32.const -0.14418013393878937
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 706
+   i32.const 521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
+  f32.const 4.345239639282227
+  f32.const 2.17521333694458
+  f32.const -0.020796965807676315
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 707
+   i32.const 522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -0
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
+  f32.const -8.381433486938477
+  f32.const -2.8227059841156006
+  f32.const 0.44718533754348755
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 708
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f32.const -6.531673431396484
+  f32.const -2.5756194591522217
+  f32.const -0.14822272956371307
+  global.get $std/math/INEXACT
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 709
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_atan2
+  f32.const 9.267057418823242
+  f32.const 2.922511577606201
+  f32.const 0.14270681142807007
+  global.get $std/math/INEXACT
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 710
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.neg
-  f64.const -3.141592653589793
-  f64.const 0.27576595544815063
+  f32.const 0.6619858741760254
+  f32.const 0.6212462782859802
+  f32.const 0.3684912919998169
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 711
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.neg
-  f64.const 3.141592653589793
-  f64.const -0.27576595544815063
+  f32.const -0.40660393238067627
+  f32.const -0.39615991711616516
+  f32.const -0.13170306384563446
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 712
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0
-  f64.const 1.5707963267948966
-  f64.const -0.27576595544815063
+  f32.const 0.5617597699165344
+  f32.const 0.535758912563324
+  f32.const 0.08184859901666641
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 713
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const -1.5707963267948966
-  f64.const 0.27576595544815063
+  f32.const 0.7741522789001465
+  f32.const 0.7123571038246155
+  f32.const -0.14270737767219543
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 714
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0.7853981633974483
-  f64.const -0.27576595544815063
+  f32.const -0.6787636876106262
+  f32.const -0.6351823210716248
+  f32.const 0.2583143711090088
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_asinhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 715
+   i32.const 530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.neg
-  f64.const 2.356194490192345
-  f64.const -0.20682445168495178
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 716
+   i32.const 533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.const -0.7853981633974483
-  f64.const 0.27576595544815063
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 717
+   i32.const 534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const -2.356194490192345
-  f64.const 0.20682445168495178
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  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 32
-   i32.const 718
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1125369292536007e-308
-  f64.const 1
-  f64.const 1.1125369292536007e-308
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atan2
+  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 32
-   i32.const 719
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 8988465674311579538646525e283
-  f64.const 1.1125369292536007e-308
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atan2
+  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 32
-   i32.const 720
+   i32.const 537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const 8988465674311579538646525e283
-  f64.const 1.668805393880401e-308
-  f64.const 0
+  f64.const -8.06684839057968
+  f64.const -1.4474613762633468
+  f64.const 0.14857111871242523
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atan2
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 721
+   i32.const 549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const -8988465674311579538646525e283
-  f64.const 3.141592653589793
-  f64.const 0
+  f64.const 4.345239849338305
+  f64.const 1.344597927114538
+  f64.const -0.08170335739850998
   global.get $std/math/INEXACT
-  call $std/math/test_atan2
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 722
+   i32.const 550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 4.535662651062012
-  f32.const -1.0585895776748657
-  f32.const -0.22352588176727295
+  f64.const -8.38143342755525
+  f64.const -1.4520463463295539
+  f64.const -0.07505480200052261
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 731
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const -8.887990951538086
-  f32.const 2.686873435974121
-  f32.const 0.09464472532272339
+  f64.const -6.531673581913484
+  f64.const -1.4188758658752532
+  f64.const -0.057633496820926666
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 732
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -2.7636072635650635
-  f32.const -1.8893001079559326
-  f32.const -0.21941901743412018
+  f64.const 9.267056966972586
+  f64.const 1.463303145448706
+  f64.const 0.1606956422328949
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 733
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 4.567535400390625
-  f32.const -0.9605468511581421
-  f32.const 0.46015575528144836
+  f64.const 0.6619858980995045
+  f64.const 0.5847550670238325
+  f64.const 0.4582556486129761
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 734
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 4.811392307281494
-  f32.const 1.0919123888015747
-  f32.const -0.05708503723144531
+  f64.const -0.4066039223853553
+  f64.const -0.3861864177552131
+  f64.const -0.2574281692504883
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 735
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.450045585632324
-  f32.const 0.6620717644691467
-  f32.const -1.4685084819793701
-  f32.const 0.19611206650733948
+  f64.const 0.5617597462207241
+  f64.const 0.5118269531628881
+  f64.const -0.11444277316331863
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 736
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.858890056610107
-  f32.const 0.052154526114463806
-  f32.const 1.5641601085662842
-  f32.const 0.48143187165260315
+  f64.const 0.7741522965913037
+  f64.const 0.6587802431653822
+  f64.const -0.11286488175392151
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 737
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
-  f32.const -0.10281659662723541
-  f32.const -0.4216274917125702
+  f64.const -0.6787637026394024
+  f64.const -0.5963307826973472
+  f64.const -0.2182842344045639
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 738
+   i32.const 558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  f32.const 0.29697975516319275
-  f32.const 0.2322007566690445
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  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 32
-   i32.const 739
+   i32.const 561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  f32.const -1.5131611824035645
-  f32.const 0.16620726883411407
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  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 32
-   i32.const 740
+   i32.const 562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atan2f
+  f64.const 1
+  f64.const 0.7853981633974483
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 743
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -0
-  f32.const 3.1415927410125732
-  f32.const 0.3666777014732361
+  f64.const -1
+  f64.const -0.7853981633974483
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 744
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -1
-  f32.const 3.1415927410125732
-  f32.const 0.3666777014732361
+  f64.const inf
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 745
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  f32.neg
-  f32.const 3.1415927410125732
-  f32.const 0.3666777014732361
+  f64.const inf
+  f64.neg
+  f64.const -1.5707963267948966
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 746
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_atan2f
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 747
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atan2f
+  f64.const 0.6929821535674624
+  f64.const 0.6060004555152562
+  f64.const -0.17075790464878082
+  global.get $std/math/INEXACT
+  call $std/math/test_atan
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 748
+   i32.const 568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atan2f
+  f32.const -8.066848754882812
+  f32.const -1.4474613666534424
+  f32.const 0.12686480581760406
+  global.get $std/math/INEXACT
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 749
+   i32.const 577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const -3.1415927410125732
-  f32.const -0.3666777014732361
+  f32.const 4.345239639282227
+  f32.const 1.3445979356765747
+  f32.const 0.16045434772968292
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 750
+   i32.const 578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
-  f32.const -3.1415927410125732
-  f32.const -0.3666777014732361
+  f32.const -8.381433486938477
+  f32.const -1.4520463943481445
+  f32.const -0.39581751823425293
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 751
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.neg
-  f32.const -3.1415927410125732
-  f32.const -0.3666777014732361
+  f32.const -6.531673431396484
+  f32.const -1.418875813484192
+  f32.const 0.410570353269577
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 752
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atan2f
+  f32.const 9.267057418823242
+  f32.const 1.4633032083511353
+  f32.const 0.48403501510620117
+  global.get $std/math/INEXACT
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 753
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_atan2f
+  f32.const 0.6619858741760254
+  f32.const 0.5847550630569458
+  f32.const 0.2125193476676941
+  global.get $std/math/INEXACT
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 754
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  f32.const -1.5707963705062866
-  f32.const -0.3666777014732361
+  f32.const -0.40660393238067627
+  f32.const -0.386186420917511
+  f32.const 0.18169628083705902
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 755
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  f32.const -1.5707963705062866
-  f32.const -0.3666777014732361
+  f32.const 0.5617597699165344
+  f32.const 0.5118269920349121
+  f32.const 0.3499770760536194
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 756
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 1.5707963705062866
-  f32.const 0.3666777014732361
+  f32.const 0.7741522789001465
+  f32.const 0.6587802171707153
+  f32.const -0.2505330741405487
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 757
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -0
-  f32.const 1.5707963705062866
-  f32.const 0.3666777014732361
+  f32.const -0.6787636876106262
+  f32.const -0.5963307619094849
+  f32.const 0.17614826560020447
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 758
+   i32.const 586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.const -0
+  f32.const 0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 759
+   i32.const 589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.const 0
+  f32.const -0
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 760
+   i32.const 590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.neg
-  f32.const -3.1415927410125732
-  f32.const -0.3666777014732361
+  f32.const 1
+  f32.const 0.7853981852531433
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 761
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const 3.1415927410125732
-  f32.const 0.3666777014732361
+  f32.const -1
+  f32.const -0.7853981852531433
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 762
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  f32.const 0
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 763
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.neg
-  f32.const 0
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_atan2f
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 764
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const inf
-  f32.const inf
-  f32.const 0.7853981852531433
-  f32.const 0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  call $std/math/test_atanf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 765
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.neg
-  f32.const 2.356194496154785
-  f32.const 0.02500828728079796
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  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 32
-   i32.const 766
+   i32.const 595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const -0.7853981852531433
-  f32.const -0.3666777014732361
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 767
+   i32.const 607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const -2.356194496154785
-  f32.const -0.02500828728079796
-  global.get $std/math/INEXACT
-  call $std/math/test_atan2f
+  f64.const 4.345239849338305
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 768
+   i32.const 608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 5.877471754111438e-39
-  f32.const 1
-  f32.const 5.877471754111438e-39
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atan2f
+  f64.const -8.38143342755525
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 769
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1701411834604692317316873e14
-  f32.const 5.877471754111438e-39
-  f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_atan2f
+  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 770
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -2.0055552545020245
-  f64.const 0.46667951345443726
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  f64.const 9.267056966972586
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 782
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 1.6318162410515635
-  f64.const -0.08160271495580673
+  f64.const 0.6619858980995045
+  f64.const 0.7963404371347943
+  f64.const 0.21338365972042084
   global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 783
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -2.031293910673361
-  f64.const -0.048101816326379776
+  f64.const -0.4066039223853553
+  f64.const -0.43153570730602897
+  f64.const -0.4325666129589081
   global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 784
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -1.8692820012204925
-  f64.const 0.08624018728733063
+  f64.const 0.5617597462207241
+  f64.const 0.6354006111644578
+  f64.const -0.06527865678071976
   global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 785
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 2.100457720859702
-  f64.const -0.2722989022731781
+  f64.const 0.7741522965913037
+  f64.const 1.0306085575277995
+  f64.const 0.14632052183151245
   global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 786
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.8715311470455973
-  f64.const 0.4414918124675751
+  f64.const -0.6787637026394024
+  f64.const -0.8268179645205255
+  f64.const 0.1397128701210022
   global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 787
+   i32.const 616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0.740839030300223
-  f64.const 0.016453813761472702
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  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 32
-   i32.const 788
+   i32.const 619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.8251195400559286
-  f64.const 0.30680638551712036
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 789
+   i32.const 620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 0.9182102478959914
-  f64.const 0.06543998420238495
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 790
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -0.8788326906580094
-  f64.const -0.2016713172197342
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrt
+  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 32
-   i32.const 791
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const -0
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_cbrt
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 794
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
+  f64.const 1
   f64.const inf
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 795
+   i32.const 624
    i32.const 1
    call $~lib/builtins/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_cbrt
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 796
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 1.0000152587890625
+  f64.const nan:0x8000000000000
   f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 797
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
+  f64.const -1.0000152587890625
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 798
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.313225746154785e-10
-  f64.const 0.0009765625
+  f64.const 1.3552527156068805e-20
+  f64.const 1.3552527156068805e-20
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INEXACT
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 799
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -9.313225746154785e-10
-  f64.const -0.0009765625
+  f64.const 9.332636185032189e-302
+  f64.const 9.332636185032189e-302
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INEXACT
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 800
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
+  f64.const 5.562684646268003e-309
+  f64.const 5.562684646268003e-309
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 801
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
+  f64.const -5.562684646268003e-309
+  f64.const -5.562684646268003e-309
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 802
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8
-  f64.const 2
+  f64.const 8988465674311579538646525e283
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_cbrt
+  global.get $std/math/INVALID
+  call $std/math/test_atanh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 803
+   i32.const 632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  f32.const -2.0055553913116455
-  f32.const -0.44719240069389343
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 812
+   i32.const 641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  f32.const 1.6318162679672241
-  f32.const 0.44636252522468567
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 813
+   i32.const 642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  f32.const -2.0312938690185547
-  f32.const 0.19483426213264465
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 814
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  f32.const -1.8692820072174072
-  f32.const -0.17075514793395996
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 815
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  f32.const 2.1004576683044434
-  f32.const -0.36362043023109436
-  global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 816
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  f32.const 0.8715311288833618
-  f32.const -0.12857209146022797
+  f32.const 0.7963404059410095
+  f32.const 0.19112196564674377
   global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 817
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  f32.const -0.7408390641212463
-  f32.const -0.4655757546424866
+  f32.const -0.4315357208251953
+  f32.const -0.05180925130844116
   global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 818
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  f32.const 0.8251195549964905
-  f32.const 0.05601907894015312
+  f32.const 0.635400652885437
+  f32.const 0.11911056190729141
   global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 819
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  f32.const 0.9182102680206299
-  f32.const 0.45498204231262207
+  f32.const 1.0306085348129272
+  f32.const 0.1798270344734192
   global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 820
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  f32.const -0.8788326978683472
-  f32.const -0.22978967428207397
+  f32.const -0.8268179297447205
+  f32.const 0.11588983237743378
   global.get $std/math/INEXACT
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 821
+   i32.const 650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22782,42 +20941,41 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 824
+   i32.const 653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  f32.const inf
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 825
+   i32.const 654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.neg
-  f32.const inf
-  f32.neg
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 826
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22826,12 +20984,12 @@
   f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 827
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22840,6824 +20998,6957 @@
   f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_cbrtf
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 828
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.313225746154785e-10
-  f32.const 0.0009765625
+  f32.const 1
+  f32.const inf
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 829
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -9.313225746154785e-10
-  f32.const -0.0009765625
+  f32.const -1
+  f32.const inf
+  f32.neg
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 830
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
+  f32.const 1.0000152587890625
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 831
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
+  f32.const -1.0000152587890625
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 832
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 8
-  f32.const 2
+  f32.const 1.3552527156068805e-20
+  f32.const 1.3552527156068805e-20
   f32.const 0
-  i32.const 0
-  call $std/math/test_cbrtf
+  global.get $std/math/INEXACT
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 833
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -8
-  f64.const 0
+  f32.const 7.888609052210118e-31
+  f32.const 7.888609052210118e-31
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 845
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 5
-  f64.const 0
+  f32.const 2.938735877055719e-39
+  f32.const 2.938735877055719e-39
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 846
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -8
-  f64.const 0
+  f32.const -2.938735877055719e-39
+  f32.const -2.938735877055719e-39
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 847
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -6
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  f32.const 1701411834604692317316873e14
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_atanhf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 848
+   i32.const 666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 10
-  f64.const 0
+  f64.const -8.06684839057968
+  f64.const 4.535662560676869
+  f64.const -1.0585895402489023
+  f64.const 0.09766263514757156
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 849
+   i32.const 678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 1
-  f64.const 0
+  f64.const 4.345239849338305
+  f64.const -8.88799136300345
+  f64.const 2.6868734126013067
+  f64.const 0.35833948850631714
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 850
+   i32.const 679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0
-  f64.const 0
+  f64.const -8.38143342755525
+  f64.const -2.763607337379588
+  f64.const -1.889300091849528
+  f64.const -0.46235957741737366
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 851
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 1
-  f64.const 0
+  f64.const -6.531673581913484
+  f64.const 4.567535276842744
+  f64.const -0.9605469021111489
+  f64.const -0.21524477005004883
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 852
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 1
-  f64.const 0
+  f64.const 9.267056966972586
+  f64.const 4.811392084359796
+  f64.const 1.0919123946142109
+  f64.const 0.3894443213939667
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 853
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -0
-  f64.const 0
+  f64.const -6.450045556060236
+  f64.const 0.6620717923376739
+  f64.const -1.468508500616424
+  f64.const -0.448591411113739
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 854
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const 7.858890253041697
+  f64.const 0.05215452675006225
+  f64.const 1.5641600512601268
+  f64.const 0.3784842789173126
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 857
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const -0.792054511984896
+  f64.const 7.67640268511754
+  f64.const -0.10281658910678508
+  f64.const -0.13993260264396667
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 858
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const 0.615702673197924
+  f64.const 2.0119025790324803
+  f64.const 0.29697974004493516
+  f64.const 0.44753071665763855
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 859
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const -0.5587586823609152
+  f64.const 0.03223983060263804
+  f64.const -1.5131612053303916
+  f64.const 0.39708876609802246
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 860
+   i32.const 687
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 861
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 862
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -1
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 863
+   i32.const 690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 1
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 864
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.5
   f64.const -0
-  f64.const 0
+  f64.const 3.141592653589793
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 865
+   i32.const 691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
-  f64.const 2
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 866
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.0000152587890625
   f64.const -1
-  f64.const 0
+  f64.const 3.141592653589793
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 867
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
-  f64.const 1
   f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const 3.141592653589793
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 868
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.9999923706054688
-  f64.const -0
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 869
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 7.888609052210118e-31
   f64.const 1
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 870
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -7.888609052210118e-31
-  f64.const -0
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 871
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 872
+   i32.const 694
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 873
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 874
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 875
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
+  f64.const 0
   f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 876
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const -0
+  f64.const -0
+  f64.const -3.141592653589793
+  f64.const 0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 877
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -0
   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 32
-   i32.const 878
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.5
-  f64.const 1
-  f64.const 0
+  f64.const -3.141592653589793
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 879
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
   f64.const -0
-  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const -3.141592653589793
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 880
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
-  f64.const 2
+  f64.const -0
+  f64.const 1
+  f64.const -0
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  i32.const 0
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 881
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000152587890625
-  f64.const -1
+  f64.const -0
+  f64.const inf
+  f64.const -0
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  i32.const 0
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 882
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
-  f64.const 1
+  f64.const -1
   f64.const 0
+  f64.const -1.5707963267948966
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 883
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.9999923706054688
+  f64.const -1
   f64.const -0
-  f64.const 0
+  f64.const -1.5707963267948966
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 884
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.888609052210118e-31
   f64.const 1
   f64.const 0
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 885
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
+  f64.const 1
   f64.const -0
-  f64.const 0
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 886
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const -1
+  f64.const inf
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 887
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 1
   f64.const inf
-  f64.const inf
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 888
+   i32.const 707
    i32.const 1
    call $~lib/builtins/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_ceil
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 889
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const -3.141592653589793
+  f64.const 0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 890
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const 3.141592653589793
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 891
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
+  f64.const inf
   f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const 1.5707963267948966
+  f64.const -0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 892
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
+  f64.const inf
+  f64.neg
   f64.const 0
-  i32.const 0
-  call $std/math/test_ceil
+  f64.const -1.5707963267948966
+  f64.const 0.27576595544815063
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 893
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 1
-  f64.const 0
+  f64.const inf
+  f64.const inf
+  f64.const 0.7853981633974483
+  f64.const -0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 894
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const -0
-  f64.const 0
+  f64.const inf
+  f64.const inf
+  f64.neg
+  f64.const 2.356194490192345
+  f64.const -0.20682445168495178
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 895
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
-  f64.const 2
-  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const -0.7853981633974483
+  f64.const 0.27576595544815063
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 896
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000152587890625
-  f64.const -1
-  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.neg
+  f64.const -2.356194490192345
+  f64.const 0.20682445168495178
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 897
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
+  f64.const 1.1125369292536007e-308
   f64.const 1
+  f64.const 1.1125369292536007e-308
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 898
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.9999923706054688
-  f64.const -0
+  f64.const 1
+  f64.const 8988465674311579538646525e283
+  f64.const 1.1125369292536007e-308
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 899
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.888609052210118e-31
-  f64.const 1
+  f64.const 1.5
+  f64.const 8988465674311579538646525e283
+  f64.const 1.668805393880401e-308
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 900
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const -0
+  f64.const 1.5
+  f64.const -8988465674311579538646525e283
+  f64.const 3.141592653589793
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceil
+  call $std/math/test_atan2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 901
+   i32.const 719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  f32.const -8
-  f32.const 0
+  f32.const 4.535662651062012
+  f32.const -1.0585895776748657
+  f32.const -0.22352588176727295
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 910
+   i32.const 728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  f32.const 5
-  f32.const 0
+  f32.const -8.887990951538086
+  f32.const 2.686873435974121
+  f32.const 0.09464472532272339
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 911
+   i32.const 729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  f32.const -8
-  f32.const 0
+  f32.const -2.7636072635650635
+  f32.const -1.8893001079559326
+  f32.const -0.21941901743412018
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 912
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  f32.const -6
-  f32.const 0
+  f32.const 4.567535400390625
+  f32.const -0.9605468511581421
+  f32.const 0.46015575528144836
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 913
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  f32.const 10
-  f32.const 0
+  f32.const 4.811392307281494
+  f32.const 1.0919123888015747
+  f32.const -0.05708503723144531
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 914
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 1
-  f32.const 0
+  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
+  f32.const -1.4685084819793701
+  f32.const 0.19611206650733948
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 915
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0
-  f32.const 0
+  f32.const 7.858890056610107
+  f32.const 0.052154526114463806
+  f32.const 1.5641601085662842
+  f32.const 0.48143187165260315
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 916
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 1
-  f32.const 0
+  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
+  f32.const -0.10281659662723541
+  f32.const -0.4216274917125702
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 917
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 1
-  f32.const 0
+  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
+  f32.const 0.29697975516319275
+  f32.const 0.2322007566690445
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 918
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -0
-  f32.const 0
+  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
+  f32.const -1.5131611824035645
+  f32.const 0.16620726883411407
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 919
+   i32.const 737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const 0
+  f32.const 0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 922
+   i32.const 740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
   f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const -0
+  f32.const 3.1415927410125732
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 923
+   i32.const 741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
   f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const -1
+  f32.const 3.1415927410125732
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 924
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const inf
+  f32.neg
+  f32.const 3.1415927410125732
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 925
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
+  f32.const 0
+  f32.const 1
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 926
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
+  f32.const 0
+  f32.const inf
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 927
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
+  f32.const -0
+  f32.const 0
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 928
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 0
+  f32.const -0
+  f32.const -0
+  f32.const -3.1415927410125732
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 929
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
   f32.const -0
-  f32.const 0
+  f32.const -1
+  f32.const -3.1415927410125732
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 930
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
-  f32.const 2
-  f32.const 0
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const -3.1415927410125732
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 931
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const -1
+  f32.const -0
+  f32.const 1
+  f32.const -0
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  i32.const 0
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 932
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
-  f32.const 1
+  f32.const -0
+  f32.const inf
+  f32.const -0
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  i32.const 0
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 933
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.9999923706054688
-  f32.const -0
+  f32.const -1
   f32.const 0
+  f32.const -1.5707963705062866
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 934
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
-  f32.const 1
-  f32.const 0
+  f32.const -1
+  f32.const -0
+  f32.const -1.5707963705062866
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 935
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -0
+  f32.const 1
   f32.const 0
+  f32.const 1.5707963705062866
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 936
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const 1
+  f32.const -0
+  f32.const 1.5707963705062866
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 937
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const -1
   f32.const inf
-  f32.const inf
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 938
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 1
   f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 939
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const -1
+  f32.const inf
+  f32.neg
+  f32.const -3.1415927410125732
+  f32.const -0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 940
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const 1
+  f32.const inf
+  f32.neg
+  f32.const 3.1415927410125732
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 941
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
-  end
-  f32.const 1
-  f32.const 1
+  end
+  f32.const inf
   f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const 1.5707963705062866
+  f32.const 0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 942
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
+  f32.const inf
+  f32.neg
   f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f32.const -1.5707963705062866
+  f32.const -0.3666777014732361
+  global.get $std/math/INEXACT
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 943
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0.7853981852531433
+  f32.const 0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 944
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -0
-  f32.const 0
+  f32.const inf
+  f32.const inf
+  f32.neg
+  f32.const 2.356194496154785
+  f32.const 0.02500828728079796
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 945
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
-  f32.const 2
-  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.const -0.7853981852531433
+  f32.const -0.3666777014732361
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 946
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const -1
-  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
+  f32.const -2.356194496154785
+  f32.const -0.02500828728079796
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 947
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
+  f32.const 5.877471754111438e-39
   f32.const 1
+  f32.const 5.877471754111438e-39
   f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 948
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.9999923706054688
-  f32.const -0
+  f32.const 1
+  f32.const 1701411834604692317316873e14
+  f32.const 5.877471754111438e-39
   f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 949
+   i32.const 767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
-  f32.const 1
-  f32.const 0
+  f64.const -8.06684839057968
+  f64.const -2.0055552545020245
+  f64.const 0.46667951345443726
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 950
+   i32.const 779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -0
-  f32.const 0
+  f64.const 4.345239849338305
+  f64.const 1.6318162410515635
+  f64.const -0.08160271495580673
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 951
+   i32.const 780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const -8.38143342755525
+  f64.const -2.031293910673361
+  f64.const -0.048101816326379776
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 952
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const -6.531673581913484
+  f64.const -1.8692820012204925
+  f64.const 0.08624018728733063
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 953
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const 9.267056966972586
+  f64.const 2.100457720859702
+  f64.const -0.2722989022731781
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 954
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const 0.6619858980995045
+  f64.const 0.8715311470455973
+  f64.const 0.4414918124675751
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 955
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const -0.4066039223853553
+  f64.const -0.740839030300223
+  f64.const 0.016453813761472702
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 956
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const 0.5617597462207241
+  f64.const 0.8251195400559286
+  f64.const 0.30680638551712036
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 957
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_ceilf
+  f64.const 0.7741522965913037
+  f64.const 0.9182102478959914
+  f64.const 0.06543998420238495
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 958
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 0
+  f64.const -0.6787637026394024
+  f64.const -0.8788326906580094
+  f64.const -0.2016713172197342
   global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  call $std/math/test_cbrt
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 959
+   i32.const 788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -0
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 960
+   i32.const 791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
-  f32.const 2
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 961
+   i32.const 792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const -1
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 962
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
-  f32.const 1
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 963
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.9999923706054688
-  f32.const -0
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 964
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
-  f32.const 1
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 965
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -0
-  f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_ceilf
+  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 32
-   i32.const 966
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -0.21126281599887137
-  f64.const -0.10962469130754471
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 977
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -0.35895602297578955
-  f64.const -0.10759828239679337
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 978
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -0.503333091765516
-  f64.const -0.021430473774671555
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 979
+   i32.const 800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 0.9692853212503283
-  f64.const -0.4787876307964325
+  f32.const -8.066848754882812
+  f32.const -2.0055553913116455
+  f32.const -0.44719240069389343
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 980
+   i32.const 809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const -0.9875878064788627
-  f64.const 0.4880668818950653
+  f32.const 4.345239639282227
+  f32.const 1.6318162679672241
+  f32.const 0.44636252522468567
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 981
+   i32.const 810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.7887730869248576
-  f64.const 0.12708666920661926
+  f32.const -8.381433486938477
+  f32.const -2.0312938690185547
+  f32.const 0.19483426213264465
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 982
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const 0.9184692397007294
-  f64.const -0.26120713353157043
+  f32.const -6.531673431396484
+  f32.const -1.8692820072174072
+  f32.const -0.17075514793395996
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 983
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.8463190467415896
-  f64.const -0.302586168050766
+  f32.const 9.267057418823242
+  f32.const 2.1004576683044434
+  f32.const -0.36362043023109436
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 984
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 0.7150139289952383
-  f64.const -0.08537746220827103
+  f32.const 0.6619858741760254
+  f32.const 0.8715311288833618
+  f32.const -0.12857209146022797
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 985
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const 0.7783494994757447
-  f64.const 0.30890750885009766
+  f32.const -0.40660393238067627
+  f32.const -0.7408390641212463
+  f32.const -0.4655757546424866
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 986
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_cos
+  f32.const 0.5617597699165344
+  f32.const 0.8251195549964905
+  f32.const 0.05601907894015312
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 989
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_cos
+  f32.const 0.7741522789001465
+  f32.const 0.9182102680206299
+  f32.const 0.45498204231262207
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 990
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_cos
+  f32.const -0.6787636876106262
+  f32.const -0.8788326978683472
+  f32.const -0.22978967428207397
+  global.get $std/math/INEXACT
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 991
+   i32.const 818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_cos
+  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 32
-   i32.const 992
+   i32.const 821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_cos
+  call $std/math/test_cbrtf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 993
+   i32.const 822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0.5403023058681398
-  f64.const 0.4288286566734314
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 994
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  f64.const -0.4161468365471424
-  f64.const -0.35859397053718567
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 995
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3
-  f64.const -0.9899924966004454
-  f64.const 0.3788451552391052
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 996
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4
-  f64.const -0.6536436208636119
-  f64.const -0.23280560970306396
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 997
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5
-  f64.const 0.28366218546322625
-  f64.const -0.3277357816696167
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 998
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.1
-  f64.const 0.9950041652780258
-  f64.const 0.49558526277542114
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 999
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.2
-  f64.const 0.9800665778412416
-  f64.const -0.02407640963792801
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1000
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.3
-  f64.const 0.955336489125606
-  f64.const -0.37772229313850403
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1001
+   i32.const 830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.4
-  f64.const 0.9210609940028851
-  f64.const 0.25818485021591187
+  f64.const -8.06684839057968
+  f64.const -8
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1002
+   i32.const 842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 0.8775825618903728
-  f64.const 0.3839152157306671
+  f64.const 4.345239849338305
+  f64.const 5
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1003
+   i32.const 843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3641409746639015e-308
-  f64.const 1
+  f64.const -8.38143342755525
+  f64.const -8
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1004
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1820704873319507e-308
-  f64.const 1
+  f64.const -6.531673581913484
+  f64.const -6
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1005
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5e-324
-  f64.const 1
+  f64.const 9.267056966972586
+  f64.const 10
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1006
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -5e-324
+  f64.const 0.6619858980995045
   f64.const 1
   f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1007
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -3.14
-  f64.const -0.9999987317275395
-  f64.const 0.3855516016483307
+  f64.const -0.4066039223853553
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1008
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8988465674311579538646525e283
-  f64.const -0.826369834614148
-  f64.const -0.3695965111255646
+  f64.const 0.5617597462207241
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1009
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1797693134862315708145274e284
-  f64.const -0.9999876894265599
-  f64.const 0.23448343575000763
+  f64.const 0.7741522965913037
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1010
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8988465674311579538646525e283
-  f64.const -0.826369834614148
-  f64.const -0.3695965111255646
+  f64.const -0.6787637026394024
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1011
+   i32.const 851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.14
-  f64.const -0.9999987317275395
-  f64.const 0.3855516016483307
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1012
+   i32.const 854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.1415
-  f64.const -0.9999999957076562
-  f64.const -0.30608975887298584
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1013
+   i32.const 855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.141592
-  f64.const -0.9999999999997864
-  f64.const 0.15403328835964203
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1014
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.14159265
-  f64.const -1
-  f64.const -0.02901807427406311
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1015
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.1415926535
-  f64.const -1
-  f64.const -1.8155848010792397e-05
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1016
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.141592653589
-  f64.const -1
-  f64.const -1.4169914130945926e-09
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1017
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.14159265358979
   f64.const -1
-  f64.const -2.350864897985184e-14
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  f64.const -1
+  f64.const 0
+  i32.const 0
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1018
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.141592653589793
-  f64.const -1
-  f64.const -3.377158741883318e-17
+  f64.const 0.5
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1019
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.57
-  f64.const 7.963267107332633e-04
-  f64.const 0.2968159317970276
+  f64.const -0.5
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1020
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.570796
-  f64.const 3.2679489653813835e-07
-  f64.const -0.32570895552635193
+  f64.const 1.0000152587890625
+  f64.const 2
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1021
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5707963267
-  f64.const 9.489659630678013e-11
-  f64.const -0.27245646715164185
+  f64.const -1.0000152587890625
+  f64.const -1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1022
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.57079632679489
-  f64.const 6.722570487708307e-15
-  f64.const -0.10747683793306351
+  f64.const 0.9999923706054688
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1023
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5707963267948966
-  f64.const 6.123233995736766e-17
-  f64.const 0.12148229777812958
+  f64.const -0.9999923706054688
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1024
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6700635199486106
-  f64.const 0.7837822193016158
-  f64.const -0.07278502732515335
+  f64.const 7.888609052210118e-31
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1025
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5343890189437553
-  f64.const 0.8605799719039517
-  f64.const -0.48434028029441833
+  f64.const -7.888609052210118e-31
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1026
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.43999702754890085
-  f64.const 0.9047529293001976
-  f64.const 0.029777472838759422
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1027
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9902840844687313
-  f64.const 0.5484523364480768
-  f64.const 0.19765280187129974
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1028
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.45381447534338915
-  f64.const 0.8987813902263783
-  f64.const -0.017724866047501564
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1029
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.4609888813583589
-  f64.const 0.8956130474713057
-  f64.const 0.36449819803237915
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1030
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9285434097956422
-  f64.const 0.5990009794292984
-  f64.const -0.2899416387081146
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1031
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9109092124488352
-  f64.const 0.6130276692774378
-  f64.const -0.49353134632110596
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1032
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.8328600650359556
-  f64.const 0.6727624710046357
-  f64.const -0.36606088280677795
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1033
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9536201252203433
-  f64.const 0.5787346183487084
-  f64.const -0.17089833319187164
+  f64.const 0.5
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1034
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.8726590065457699
-  f64.const 0.6427919144259047
-  f64.const -0.2744986116886139
+  f64.const -0.5
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1035
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.18100447535968447
-  f64.const 0.9836633656884893
-  f64.const 3.0195272993296385e-03
+  f64.const 1.0000152587890625
+  f64.const 2
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1036
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.356194490349839
-  f64.const -0.7071067812979126
-  f64.const -0.48278746008872986
+  f64.const -1.0000152587890625
+  f64.const -1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1037
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.356194490372272
-  f64.const -0.7071067813137752
-  f64.const -0.4866050183773041
+  f64.const 0.9999923706054688
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1038
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3561944902251115
-  f64.const -0.707106781209717
-  f64.const -0.3533952236175537
+  f64.const -0.9999923706054688
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1039
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3561944903149996
-  f64.const -0.7071067812732775
-  f64.const -0.41911986470222473
+  f64.const 7.888609052210118e-31
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1040
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3561944903603527
-  f64.const -0.707106781305347
-  f64.const -0.4706200063228607
+  f64.const -7.888609052210118e-31
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1041
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3561944903826197
-  f64.const -0.7071067813210922
-  f64.const -0.30618351697921753
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1042
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.356194490371803
-  f64.const -0.7071067813134436
-  f64.const -0.30564820766448975
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1043
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.356194490399931
-  f64.const -0.7071067813333329
-  f64.const -0.38845571875572205
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1044
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.356194490260191
-  f64.const -0.707106781234522
-  f64.const -0.23796851933002472
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1045
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3561944904043153
-  f64.const -0.7071067813364332
-  f64.const -0.3274589478969574
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1046
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 2.0943951024759446
-  f64.const -0.5000000000716629
-  f64.const -0.41711342334747314
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+   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 32
-   i32.const 1047
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.09439510243324
-  f64.const -0.5000000000346797
-  f64.const -0.3566164970397949
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1048
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.0943951025133885
-  f64.const -0.5000000001040902
-  f64.const -0.2253485918045044
+  f64.const 0.5
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1049
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.0943951025466707
-  f64.const -0.5000000001329135
-  f64.const -0.12982259690761566
+  f64.const -0.5
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1050
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.094395102413896
-  f64.const -0.5000000000179272
-  f64.const -0.15886764228343964
+  f64.const 1.0000152587890625
+  f64.const 2
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1051
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.0943951024223404
-  f64.const -0.5000000000252403
-  f64.const -0.266656756401062
+  f64.const -1.0000152587890625
+  f64.const -1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1052
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.0943951024960477
-  f64.const -0.5000000000890726
-  f64.const -0.4652077853679657
+  f64.const 0.9999923706054688
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1053
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.0943951025173315
-  f64.const -0.500000000107505
-  f64.const -0.46710994839668274
+  f64.const -0.9999923706054688
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1054
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.094395102405924
-  f64.const -0.5000000000110234
-  f64.const -0.2469603717327118
+  f64.const 7.888609052210118e-31
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1055
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.094395102428558
-  f64.const -0.500000000030625
-  f64.const -0.3799441158771515
+  f64.const -7.888609052210118e-31
+  f64.const -0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceil
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1056
+   i32.const 898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8.513210770864056
-  f64.const -0.6125076939987759
-  f64.const 0.4989966154098511
+  f32.const -8.066848754882812
+  f32.const -8
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1057
+   i32.const 907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 6.802886129801017
-  f64.const 0.8679677961345452
-  f64.const 0.4972165524959564
+  f32.const 4.345239639282227
+  f32.const 5
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1058
+   i32.const 908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.171925393086408
-  f64.const -0.9682027440424544
-  f64.const -0.49827584624290466
+  f32.const -8.381433486938477
+  f32.const -8
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1059
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8.854690112888573
-  f64.const -0.8418535663818527
-  f64.const 0.4974979758262634
+  f32.const -6.531673431396484
+  f32.const -6
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1060
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.213510813859608
-  f64.const -0.9777659802838506
-  f64.const -0.4995604455471039
+  f32.const 9.267057418823242
+  f32.const 10
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1061
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.782449081542151
-  f64.const 0.07147156381293339
-  f64.const 0.49858126044273376
+  f32.const 0.6619858741760254
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1062
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.500261332273616
-  f64.const 0.34639017633458113
-  f64.const -0.4996210038661957
+  f32.const -0.40660393238067627
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1063
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.121739418731588
-  f64.const -0.9544341297541811
-  f64.const 0.4982815086841583
+  f32.const 0.5617597699165344
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1064
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 6.784954020476316
-  f64.const 0.8767332233166646
-  f64.const -0.4988083839416504
+  f32.const 0.7741522789001465
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1065
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8.770846542666664
-  f64.const -0.7936984117400705
-  f64.const 0.4999682903289795
+  f32.const -0.6787636876106262
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1066
+   i32.const 916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.313225746154785e-10
-  f64.const 1
-  f64.const 0.001953125
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1069
+   i32.const 919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -9.313225746154785e-10
-  f64.const 1
-  f64.const 0.001953125
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1070
+   i32.const 920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.2250738585072014e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1071
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.2250738585072014e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1072
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5e-324
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1073
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -5e-324
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1074
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 0
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1075
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_cos
+  f32.const 0.5
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1076
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1e-323
-  f64.const 1
-  f64.const 0
+  f32.const -0.5
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1077
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.4e-323
-  f64.const 1
-  f64.const 0
+  f32.const 1.0000152587890625
+  f32.const 2
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1078
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5.562684646268003e-309
-  f64.const 1
-  f64.const 0
+  f32.const -1.0000152587890625
+  f32.const -1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1079
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.1125369292536007e-308
-  f64.const 1
-  f64.const 0
+  f32.const 0.9999923706054688
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1080
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.2250738585072004e-308
-  f64.const 1
-  f64.const 0
+  f32.const -0.9999923706054688
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1081
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.225073858507201e-308
-  f64.const 1
-  f64.const 0
+  f32.const 7.888609052210118e-31
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1082
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.225073858507202e-308
-  f64.const 1
-  f64.const 0
+  f32.const -7.888609052210118e-31
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1083
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.2250738585072024e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1084
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.4501477170144003e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1085
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.450147717014403e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1086
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.450147717014406e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1087
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8.900295434028806e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1088
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.450580596923828e-09
-  f64.const 1
-  f64.const 0.125
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1089
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.4901161193847656e-08
-  f64.const 0.9999999999999999
-  f64.const -1.850372590034581e-17
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1090
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.470348358154297e-08
-  f64.const 0.999999999999999
-  f64.const -1.4988010832439613e-15
+  f32.const 0.5
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1091
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1e-323
-  f64.const 1
-  f64.const 0
+  f32.const -0.5
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1092
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -4.4e-323
-  f64.const 1
-  f64.const 0
+  f32.const 1.0000152587890625
+  f32.const 2
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1093
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -5.562684646268003e-309
-  f64.const 1
-  f64.const 0
+  f32.const -1.0000152587890625
+  f32.const -1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1094
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.1125369292536007e-308
-  f64.const 1
-  f64.const 0
+  f32.const 0.9999923706054688
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1095
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.2250738585072004e-308
-  f64.const 1
-  f64.const 0
+  f32.const -0.9999923706054688
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1096
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.225073858507201e-308
-  f64.const 1
-  f64.const 0
+  f32.const 7.888609052210118e-31
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1097
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.225073858507202e-308
-  f64.const 1
-  f64.const 0
+  f32.const -7.888609052210118e-31
+  f32.const -0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1098
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.2250738585072024e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1099
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -4.4501477170144003e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1100
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -4.450147717014403e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1101
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -4.450147717014406e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1102
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.900295434028806e-308
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1103
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.450580596923828e-09
-  f64.const 1
-  f64.const 0.125
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1104
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.4901161193847656e-08
-  f64.const 0.9999999999999999
-  f64.const -1.850372590034581e-17
-  global.get $std/math/INEXACT
-  call $std/math/test_cos
+  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 32
-   i32.const 1105
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -4.470348358154297e-08
-  f64.const 0.999999999999999
-  f64.const -1.4988010832439613e-15
+  f32.const 0.5
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cos
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1106
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $std/math/kPI
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.cos
-  global.get $std/math/kPI
-  f64.const 2
-  f64.div
-  call $~lib/bindings/dom/Math.cos
-  f64.eq
+  f32.const -0.5
+  f32.const -0
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1108
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  global.get $std/math/kPI
-  f64.mul
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.cos
-  f64.const 2
-  global.get $std/math/kPI
-  f64.mul
-  f64.const 2
-  f64.div
-  call $~lib/bindings/dom/Math.cos
-  f64.eq
+  f32.const 1.0000152587890625
+  f32.const 2
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1109
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.e+90
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.const 1.e+90
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/bindings/dom/Math.cos
-  f64.eq
+  f32.const -1.0000152587890625
+  f32.const -1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1110
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.cos
-  f64.const 1
-  f64.eq
+  f32.const 0.9999923706054688
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1114
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.cos
-  f64.const 1
-  f64.eq
+  f32.const -0.9999923706054688
+  f32.const -0
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1115
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.15707963267948966
-  call $~lib/math/NativeMath.cos
-  f64.const 0.9876883405951378
-  f64.eq
+  f32.const 7.888609052210118e-31
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1118
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7812504768371582
-  call $~lib/math/NativeMath.cos
-  f64.const 0.7100335477927638
-  f64.eq
+  f32.const -7.888609052210118e-31
+  f32.const -0
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_ceilf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1120
+   i32.const 963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.78125
-  call $~lib/math/NativeMath.cos
-  f64.const 0.7100338835660797
-  f64.eq
+  f64.const -8.06684839057968
+  f64.const -0.21126281599887137
+  f64.const -0.10962469130754471
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1121
+   i32.const 974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9238795325112867
-  f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 4.345239849338305
+  f64.const -0.35895602297578955
+  f64.const -0.10759828239679337
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1124
+   i32.const 975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9238795325112867
-  f64.const -0.39269908169872414
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const -8.38143342755525
+  f64.const -0.503333091765516
+  f64.const -0.021430473774671555
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1126
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.725290298461914e-09
-  call $~lib/math/NativeMath.cos
-  f64.const 1
-  f64.eq
+  f64.const -6.531673581913484
+  f64.const 0.9692853212503283
+  f64.const -0.4787876307964325
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1129
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9689124217106447
-  f64.const 0.25
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 9.267056966972586
+  f64.const -0.9875878064788627
+  f64.const 0.4880668818950653
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1131
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.8775825618903728
-  f64.const 0.5
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 0.6619858980995045
+  f64.const 0.7887730869248576
+  f64.const 0.12708666920661926
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1132
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7073882691671998
-  f64.const 0.785
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const -0.4066039223853553
+  f64.const 0.9184692397007294
+  f64.const -0.26120713353157043
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1133
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 6.123233995736766e-17
-  f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 0.5617597462207241
+  f64.const 0.8463190467415896
+  f64.const -0.302586168050766
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1135
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7071067811865474
-  f64.const 7
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 0.7741522965913037
+  f64.const 0.7150139289952383
+  f64.const -0.08537746220827103
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1137
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7071067811865477
-  f64.const 9
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const -0.6787637026394024
+  f64.const 0.7783494994757447
+  f64.const 0.30890750885009766
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1138
+   i32.const 983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.7071067811865467
-  f64.const 11
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const 0
+  f64.const 1
+  f64.const 0
+  i32.const 0
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1139
+   i32.const 986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.7071067811865471
-  f64.const 13
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const -0
+  f64.const 1
+  f64.const 0
+  i32.const 0
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1140
+   i32.const 987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9367521275331447
-  f64.const 1e6
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1141
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -3.435757038074824e-12
-  f64.const 1048575
-  f64.const 2
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.cos
-  f64.eq
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1142
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const -0.21126316487789154
-  f32.const 0.48328569531440735
-  global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
+  i32.const 0
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1151
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const -0.3589562177658081
-  f32.const 0.042505208402872086
+  f64.const 1
+  f64.const 0.5403023058681398
+  f64.const 0.4288286566734314
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1152
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -0.5033331513404846
-  f32.const -0.1386195719242096
+  f64.const 2
+  f64.const -0.4161468365471424
+  f64.const -0.35859397053718567
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1153
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 0.9692853689193726
-  f32.const 0.1786951720714569
+  f64.const 3
+  f64.const -0.9899924966004454
+  f64.const 0.3788451552391052
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1154
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const -0.9875878691673279
-  f32.const 0.1389600932598114
+  f64.const 4
+  f64.const -0.6536436208636119
+  f64.const -0.23280560970306396
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1155
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.7887731194496155
-  f32.const 0.2989593744277954
+  f64.const 5
+  f64.const 0.28366218546322625
+  f64.const -0.3277357816696167
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1156
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const 0.918469250202179
-  f32.const 0.24250665307044983
+  f64.const 0.1
+  f64.const 0.9950041652780258
+  f64.const 0.49558526277542114
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1157
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.8463190197944641
-  f32.const -0.24033240973949432
+  f64.const 0.2
+  f64.const 0.9800665778412416
+  f64.const -0.02407640963792801
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1158
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0.7150139212608337
-  f32.const -0.3372635245323181
+  f64.const 0.3
+  f64.const 0.955336489125606
+  f64.const -0.37772229313850403
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1159
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const 0.7783495187759399
-  f32.const 0.16550153493881226
+  f64.const 0.4
+  f64.const 0.9210609940028851
+  f64.const 0.25818485021591187
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1160
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_cosf
+  f64.const 0.5
+  f64.const 0.8775825618903728
+  f64.const 0.3839152157306671
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1163
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_cosf
+  f64.const 2.3641409746639015e-308
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1164
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_cosf
+  f64.const 1.1820704873319507e-308
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1165
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_cosf
+  f64.const 5e-324
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1166
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_cosf
+  f64.const -5e-324
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1167
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.862645149230957e-09
-  f32.const 1
-  f32.const 1.4551915228366852e-11
+  f64.const -3.14
+  f64.const -0.9999987317275395
+  f64.const 0.3855516016483307
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1170
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.862645149230957e-09
-  f32.const 1
-  f32.const 1.4551915228366852e-11
+  f64.const 8988465674311579538646525e283
+  f64.const -0.826369834614148
+  f64.const -0.3695965111255646
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1171
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.1754943508222875e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1797693134862315708145274e284
+  f64.const -0.9999876894265599
+  f64.const 0.23448343575000763
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1172
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.1754943508222875e-38
-  f32.const 1
-  f32.const 0
+  f64.const -8988465674311579538646525e283
+  f64.const -0.826369834614148
+  f64.const -0.3695965111255646
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1173
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.401298464324817e-45
-  f32.const 1
-  f32.const 0
+  f64.const 3.14
+  f64.const -0.9999987317275395
+  f64.const 0.3855516016483307
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1174
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.401298464324817e-45
-  f32.const 1
-  f32.const 0
+  f64.const 3.1415
+  f64.const -0.9999999957076562
+  f64.const -0.30608975887298584
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1175
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.802596928649634e-45
-  f32.const 1
-  f32.const 0
+  f64.const 3.141592
+  f64.const -0.9999999999997864
+  f64.const 0.15403328835964203
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1176
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.2611686178923354e-44
-  f32.const 1
-  f32.const 0
+  f64.const 3.14159265
+  f64.const -1
+  f64.const -0.02901807427406311
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1177
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.938735877055719e-39
-  f32.const 1
-  f32.const 0
+  f64.const 3.1415926535
+  f64.const -1
+  f64.const -1.8155848010792397e-05
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1178
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 5.877471754111438e-39
-  f32.const 1
-  f32.const 0
+  f64.const 3.141592653589
+  f64.const -1
+  f64.const -1.4169914130945926e-09
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1179
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.1754940705625946e-38
-  f32.const 1
-  f32.const 0
+  f64.const 3.14159265358979
+  f64.const -1
+  f64.const -2.350864897985184e-14
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1180
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.1754942106924411e-38
-  f32.const 1
-  f32.const 0
+  f64.const 3.141592653589793
+  f64.const -1
+  f64.const -3.377158741883318e-17
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1181
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.175494490952134e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1.57
+  f64.const 7.963267107332633e-04
+  f64.const 0.2968159317970276
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1182
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.1754946310819804e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1.570796
+  f64.const 3.2679489653813835e-07
+  f64.const -0.32570895552635193
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1183
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.3509880009953429e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1.5707963267
+  f64.const 9.489659630678013e-11
+  f64.const -0.27245646715164185
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1184
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.350988701644575e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1.57079632679489
+  f64.const 6.722570487708307e-15
+  f64.const -0.10747683793306351
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1185
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2.3509895424236536e-38
-  f32.const 1
-  f32.const 0
+  f64.const 1.5707963267948966
+  f64.const 6.123233995736766e-17
+  f64.const 0.12148229777812958
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1186
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.70197740328915e-38
-  f32.const 1
-  f32.const 0
+  f64.const 0.6700635199486106
+  f64.const 0.7837822193016158
+  f64.const -0.07278502732515335
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1187
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.450580596923828e-09
-  f32.const 1
-  f32.const 2.3283064365386963e-10
+  f64.const 0.5343890189437553
+  f64.const 0.8605799719039517
+  f64.const -0.48434028029441833
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1188
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.000244140625
-  f32.const 1
-  f32.const 0.25
+  f64.const 0.43999702754890085
+  f64.const 0.9047529293001976
+  f64.const 0.029777472838759422
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1189
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.00048828125
-  f32.const 0.9999998807907104
-  f32.const -3.973643103449831e-08
+  f64.const 0.9902840844687313
+  f64.const 0.5484523364480768
+  f64.const 0.19765280187129974
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1190
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.0009765625
-  f32.const 0.9999995231628418
-  f32.const -6.357828397085541e-07
+  f64.const 0.45381447534338915
+  f64.const 0.8987813902263783
+  f64.const -0.017724866047501564
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1191
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.802596928649634e-45
-  f32.const 1
-  f32.const 0
+  f64.const 0.4609888813583589
+  f64.const 0.8956130474713057
+  f64.const 0.36449819803237915
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1192
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.2611686178923354e-44
-  f32.const 1
-  f32.const 0
+  f64.const 0.9285434097956422
+  f64.const 0.5990009794292984
+  f64.const -0.2899416387081146
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1193
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.938735877055719e-39
-  f32.const 1
-  f32.const 0
+  f64.const 0.9109092124488352
+  f64.const 0.6130276692774378
+  f64.const -0.49353134632110596
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1194
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -5.877471754111438e-39
-  f32.const 1
-  f32.const 0
+  f64.const 0.8328600650359556
+  f64.const 0.6727624710046357
+  f64.const -0.36606088280677795
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1195
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.1754940705625946e-38
-  f32.const 1
-  f32.const 0
+  f64.const 0.9536201252203433
+  f64.const 0.5787346183487084
+  f64.const -0.17089833319187164
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1196
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.1754942106924411e-38
-  f32.const 1
-  f32.const 0
+  f64.const 0.8726590065457699
+  f64.const 0.6427919144259047
+  f64.const -0.2744986116886139
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1197
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.175494490952134e-38
-  f32.const 1
-  f32.const 0
+  f64.const 0.18100447535968447
+  f64.const 0.9836633656884893
+  f64.const 3.0195272993296385e-03
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1198
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.1754946310819804e-38
-  f32.const 1
-  f32.const 0
+  f64.const 2.356194490349839
+  f64.const -0.7071067812979126
+  f64.const -0.48278746008872986
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1199
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.3509880009953429e-38
-  f32.const 1
-  f32.const 0
+  f64.const 2.356194490372272
+  f64.const -0.7071067813137752
+  f64.const -0.4866050183773041
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1200
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.350988701644575e-38
-  f32.const 1
-  f32.const 0
+  f64.const 2.3561944902251115
+  f64.const -0.707106781209717
+  f64.const -0.3533952236175537
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1201
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2.3509895424236536e-38
-  f32.const 1
-  f32.const 0
+  f64.const 2.3561944903149996
+  f64.const -0.7071067812732775
+  f64.const -0.41911986470222473
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1202
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -4.70197740328915e-38
-  f32.const 1
-  f32.const 0
+  f64.const 2.3561944903603527
+  f64.const -0.707106781305347
+  f64.const -0.4706200063228607
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1203
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.450580596923828e-09
-  f32.const 1
-  f32.const 2.3283064365386963e-10
+  f64.const 2.3561944903826197
+  f64.const -0.7071067813210922
+  f64.const -0.30618351697921753
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1204
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.000244140625
-  f32.const 1
-  f32.const 0.25
+  f64.const 2.356194490371803
+  f64.const -0.7071067813134436
+  f64.const -0.30564820766448975
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1205
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.00048828125
-  f32.const 0.9999998807907104
-  f32.const -3.973643103449831e-08
+  f64.const 2.356194490399931
+  f64.const -0.7071067813333329
+  f64.const -0.38845571875572205
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1206
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.0009765625
-  f32.const 0.9999995231628418
-  f32.const -6.357828397085541e-07
+  f64.const 2.356194490260191
+  f64.const -0.707106781234522
+  f64.const -0.23796851933002472
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1207
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 255.99993896484375
-  f32.const -0.03985174745321274
-  f32.const 0
+  f64.const 2.3561944904043153
+  f64.const -0.7071067813364332
+  f64.const -0.3274589478969574
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1210
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 5033165
-  f32.const 0.8471871614456177
-  f32.const 0
+  f64.const 2.0943951024759446
+  f64.const -0.5000000000716629
+  f64.const -0.41711342334747314
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1211
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 421657440
-  f32.const 0.6728929281234741
-  f32.const 0
+  f64.const 2.09439510243324
+  f64.const -0.5000000000346797
+  f64.const -0.3566164970397949
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1212
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2147483392
-  f32.const 0.9610780477523804
-  f32.const 0
+  f64.const 2.0943951025133885
+  f64.const -0.5000000001040902
+  f64.const -0.2253485918045044
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1213
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 68719476736
-  f32.const 0.1694190502166748
-  f32.const 0
+  f64.const 2.0943951025466707
+  f64.const -0.5000000001329135
+  f64.const -0.12982259690761566
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1214
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 549755813888
-  f32.const 0.20735950767993927
-  f32.const 0
+  f64.const 2.094395102413896
+  f64.const -0.5000000000179272
+  f64.const -0.15886764228343964
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1215
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $~lib/builtins/f32.MAX_VALUE
-  f32.const 0.8530210256576538
-  f32.const 0
+  f64.const 2.0943951024223404
+  f64.const -0.5000000000252403
+  f64.const -0.266656756401062
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1216
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -255.99993896484375
-  f32.const -0.03985174745321274
-  f32.const 0
+  f64.const 2.0943951024960477
+  f64.const -0.5000000000890726
+  f64.const -0.4652077853679657
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1217
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -5033165
-  f32.const 0.8471871614456177
-  f32.const 0
+  f64.const 2.0943951025173315
+  f64.const -0.500000000107505
+  f64.const -0.46710994839668274
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1218
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -421657440
-  f32.const 0.6728929281234741
-  f32.const 0
+  f64.const 2.094395102405924
+  f64.const -0.5000000000110234
+  f64.const -0.2469603717327118
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1219
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2147483392
-  f32.const 0.9610780477523804
-  f32.const 0
+  f64.const 2.094395102428558
+  f64.const -0.500000000030625
+  f64.const -0.3799441158771515
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1220
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -68719476736
-  f32.const 0.1694190502166748
-  f32.const 0
+  f64.const 8.513210770864056
+  f64.const -0.6125076939987759
+  f64.const 0.4989966154098511
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1221
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -549755813888
-  f32.const 0.20735950767993927
-  f32.const 0
+  f64.const 6.802886129801017
+  f64.const 0.8679677961345452
+  f64.const 0.4972165524959564
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1222
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $~lib/builtins/f32.MAX_VALUE
-  f32.neg
-  f32.const 0.8530210256576538
-  f32.const 0
+  f64.const 9.171925393086408
+  f64.const -0.9682027440424544
+  f64.const -0.49827584624290466
   global.get $std/math/INEXACT
-  call $std/math/test_cosf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1223
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const 1593.5209938862329
-  f64.const -0.38098856806755066
+  f64.const 8.854690112888573
+  f64.const -0.8418535663818527
+  f64.const 0.4974979758262634
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1234
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 38.56174928426729
-  f64.const -0.2712278366088867
+  f64.const 9.213510813859608
+  f64.const -0.9777659802838506
+  f64.const -0.4995604455471039
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1235
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const 2182.630979595893
-  f64.const 0.0817827582359314
+  f64.const 7.782449081542151
+  f64.const 0.07147156381293339
+  f64.const 0.49858126044273376
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1236
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 343.273849250879
-  f64.const -0.429940402507782
+  f64.const 7.500261332273616
+  f64.const 0.34639017633458113
+  f64.const -0.4996210038661957
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1237
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 5291.779170005587
-  f64.const -0.1592995822429657
+  f64.const 9.121739418731588
+  f64.const -0.9544341297541811
+  f64.const 0.4982815086841583
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1238
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 1.2272321957342842
-  f64.const 0.23280741274356842
+  f64.const 6.784954020476316
+  f64.const 0.8767332233166646
+  f64.const -0.4988083839416504
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1239
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const 1.083808541871197
-  f64.const -0.3960916996002197
+  f64.const 8.770846542666664
+  f64.const -0.7936984117400705
+  f64.const 0.4999682903289795
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1240
+   i32.const 1063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 1.1619803583175077
-  f64.const 0.37748390436172485
+  f64.const 9.313225746154785e-10
+  f64.const 1
+  f64.const 0.001953125
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1241
+   i32.const 1066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 1.3149236876276706
-  f64.const 0.43587008118629456
+  f64.const -9.313225746154785e-10
+  f64.const 1
+  f64.const 0.001953125
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1242
+   i32.const 1067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const 1.2393413245934533
-  f64.const 0.10201606154441833
+  f64.const 2.2250738585072014e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1243
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
+  f64.const -2.2250738585072014e-308
   f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_cosh
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1246
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
+  f64.const 5e-324
   f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_cosh
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1247
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
+  f64.const -5e-324
+  f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_cosh
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1248
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
+  f64.const 0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1249
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const -0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_cosh
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1250
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 1593.5216064453125
-  f32.const 0.26242581009864807
+  f64.const 1e-323
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1259
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 38.56174087524414
-  f32.const -0.08168885856866837
+  f64.const 4.4e-323
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1260
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const 2182.631103515625
-  f32.const -0.02331414446234703
+  f64.const 5.562684646268003e-309
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1261
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 343.2738037109375
-  f32.const 0.20081493258476257
+  f64.const 1.1125369292536007e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1262
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 5291.78173828125
-  f32.const 0.36286723613739014
+  f64.const 2.2250738585072004e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1263
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 1.2272322177886963
-  f32.const 0.32777416706085205
+  f64.const 2.225073858507201e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1264
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const 1.0838085412979126
-  f32.const -0.039848703891038895
+  f64.const 2.225073858507202e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1265
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 1.161980390548706
-  f32.const 0.15274477005004883
+  f64.const 2.2250738585072024e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1266
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 1.314923644065857
-  f32.const -0.2387111485004425
+  f64.const 4.4501477170144003e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1267
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const 1.2393412590026855
-  f32.const -0.45791932940483093
+  f64.const 4.450147717014403e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_coshf
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1268
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_coshf
+  f64.const 4.450147717014406e-308
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1271
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_coshf
+  f64.const 8.900295434028806e-308
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1272
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_coshf
+  f64.const 7.450580596923828e-09
+  f64.const 1
+  f64.const 0.125
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1273
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_coshf
+  f64.const 1.4901161193847656e-08
+  f64.const 0.9999999999999999
+  f64.const -1.850372590034581e-17
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1274
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_coshf
+  f64.const 4.470348358154297e-08
+  f64.const 0.999999999999999
+  f64.const -1.4988010832439613e-15
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1275
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const 3.137706068161745e-04
-  f64.const -0.2599197328090668
+  f64.const -1e-323
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1287
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 77.11053017112141
-  f64.const -0.02792675793170929
+  f64.const -4.4e-323
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1288
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const 2.290813384916323e-04
-  f64.const -0.24974334239959717
+  f64.const -5.562684646268003e-309
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1289
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 1.4565661260931588e-03
-  f64.const -0.4816822409629822
+  f64.const -1.1125369292536007e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1290
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 10583.558245524993
-  f64.const 0.17696762084960938
+  f64.const -2.2250738585072004e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1291
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 1.9386384525571998
-  f64.const -0.4964246451854706
+  f64.const -2.225073858507201e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1292
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const 0.6659078892838025
-  f64.const -0.10608318448066711
+  f64.const -2.225073858507202e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1293
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 1.7537559518626311
-  f64.const -0.39162111282348633
+  f64.const -2.2250738585072024e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1294
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 2.1687528885129246
-  f64.const -0.2996125817298889
+  f64.const -4.4501477170144003e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1295
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const 0.5072437089402843
-  f64.const 0.47261738777160645
+  f64.const -4.450147717014403e-308
+  f64.const 1
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1296
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
+  f64.const -4.450147717014406e-308
   f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_exp
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1299
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
+  f64.const -8.900295434028806e-308
   f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_exp
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1300
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -7.450580596923828e-09
   f64.const 1
-  f64.const 2.718281828459045
-  f64.const -0.3255307376384735
+  f64.const 0.125
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1301
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0.36787944117144233
-  f64.const 0.22389651834964752
+  f64.const -1.4901161193847656e-08
+  f64.const 0.9999999999999999
+  f64.const -1.850372590034581e-17
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1302
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp
+  f64.const -4.470348358154297e-08
+  f64.const 0.999999999999999
+  f64.const -1.4988010832439613e-15
+  global.get $std/math/INEXACT
+  call $std/math/test_cos
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1303
+   i32.const 1103
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 1304
+  block $~lib/math/NativeMath.cos<f64>|inlined.1 (result f64)
+   global.get $std/math/kPI
+   f64.const 2
+   f64.div
+   local.set $0
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.1
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp
+  global.get $std/math/kPI
+  f64.const 2
+  f64.div
+  call $~lib/bindings/dom/Math.cos
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1305
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0397214889526365
-  f64.const 2.828429155876411
-  f64.const 0.18803080916404724
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1306
+  block $~lib/math/NativeMath.cos<f64>|inlined.2 (result f64)
+   f64.const 2
+   global.get $std/math/kPI
+   f64.mul
+   f64.const 2
+   f64.div
+   local.set $0
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.2
   end
-  f64.const -1.0397214889526365
-  f64.const 0.35355313670217847
-  f64.const 0.2527272403240204
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  f64.const 2
+  global.get $std/math/kPI
+  f64.mul
+  f64.const 2
+  f64.div
+  call $~lib/bindings/dom/Math.cos
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1307
+   i32.const 1106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0397210121154785
-  f64.const 2.8284278071766122
-  f64.const -0.4184139370918274
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.3 (result f64)
+   f64.const 1.e+90
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.3
+  end
+  f64.const 1.e+90
+  global.get $std/math/kPI
+  f64.mul
+  call $~lib/bindings/dom/Math.cos
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1308
+   i32.const 1107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0397214889526367
-  f64.const 2.8284291558764116
-  f64.const -0.22618377208709717
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.4 (result f64)
+   f64.const 2.3283064365386963e-10
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.4
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1309
+   i32.const 1111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $~lib/builtins/f64.MIN_VALUE
+  block $~lib/math/NativeMath.cos<f64>|inlined.5 (result f64)
+   f64.const -2.3283064365386963e-10
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.5
+  end
   f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1312
+   i32.const 1112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $~lib/builtins/f64.MIN_VALUE
-  f64.neg
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.6 (result f64)
+   f64.const 0.15707963267948966
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.6
+  end
+  f64.const 0.9876883405951378
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1313
+   i32.const 1115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4649454530587146735
-  f64.reinterpret_i64
-  i64.const 9218868437227405098
-  f64.reinterpret_i64
-  i64.const -4631092234375135232
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.7 (result f64)
+   f64.const 0.7812504768371582
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.7
+  end
+  f64.const 0.7100335477927638
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1315
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4649454530587146736
-  f64.reinterpret_i64
-  f64.const inf
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/OVERFLOW
-  i32.or
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.8 (result f64)
+   f64.const 0.78125
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.8
+  end
+  f64.const 0.7100338835660797
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1322
+   i32.const 1118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4573606559926636463
-  f64.reinterpret_i64
-  global.get $~lib/builtins/f64.MIN_VALUE
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.9 (result f64)
+   f64.const 0.39269908169872414
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.9
+  end
+  f64.const 0.9238795325112867
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1323
+   i32.const 1121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4573606559926636462
-  f64.reinterpret_i64
-  f64.const 0
-  i64.const -4620693217682128896
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.10 (result f64)
+   f64.const -0.39269908169872414
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.10
+  end
+  f64.const 0.9238795325112867
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1330
+   i32.const 1123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4573929700241785646
-  f64.reinterpret_i64
-  i64.const 4503599627370620
-  f64.reinterpret_i64
-  i64.const 4598386411140284416
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.11 (result f64)
+   f64.const 3.725290298461914e-09
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.11
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1337
+   i32.const 1126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4573929700241785645
-  f64.reinterpret_i64
-  i64.const 4503599627370108
-  f64.reinterpret_i64
-  i64.const 4503599627370108
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.12 (result f64)
+   f64.const 0.25
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.12
+  end
+  f64.const 0.9689124217106447
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1344
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4602685064124656555
-  f64.reinterpret_i64
-  i64.const 4610109149550689567
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.13 (result f64)
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.13
+  end
+  f64.const 0.8775825618903728
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1351
+   i32.const 1129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4603836184166978885
-  f64.reinterpret_i64
-  i64.const 4611122094629841017
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.14 (result f64)
+   f64.const 0.785
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.14
+  end
+  f64.const 0.7073882691671998
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1358
+   i32.const 1130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4605718951180848880
-  f64.reinterpret_i64
-  i64.const 4612385506662149744
-  f64.reinterpret_i64
-  i64.const -4620693217682128896
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.15 (result f64)
+   f64.const 1.5707963267948966
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.15
+  end
+  f64.const 6.123233995736766e-17
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1365
+   i32.const 1132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4605835761386121865
-  f64.reinterpret_i64
-  i64.const 4612453422537445296
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.16 (result f64)
+   f64.const 7
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.16
+  end
+  f64.const 0.7071067811865474
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1371
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4610006203169397430
-  f64.reinterpret_i64
-  i64.const 4617415291835269761
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.17 (result f64)
+   f64.const 9
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.17
+  end
+  f64.const 0.7071067811865477
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1377
+   i32.const 1135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4610219797808568955
-  f64.reinterpret_i64
-  i64.const 4617693563882825047
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.18 (result f64)
+   f64.const 11
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.18
+  end
+  f64.const -0.7071067811865467
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1383
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4619182163989041060
-  f64.reinterpret_i64
-  i64.const 4650062712266849886
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.19 (result f64)
+   f64.const 13
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.19
+  end
+  f64.const -0.7071067811865471
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1390
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4622394943780502425
-  f64.reinterpret_i64
-  i64.const 4678652243157503230
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.20 (result f64)
+   f64.const 1e6
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.20
+  end
+  f64.const 0.9367521275331447
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1397
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4622613550143616215
-  f64.reinterpret_i64
-  i64.const 4680943662238555301
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  call $std/math/test_exp
+  block $~lib/math/NativeMath.cos<f64>|inlined.21 (result f64)
+   f64.const 1048575
+   f64.const 2
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/cos64
+   br $~lib/math/NativeMath.cos<f64>|inlined.21
+  end
+  f64.const -3.435757038074824e-12
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1404
+   i32.const 1139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4622829325869063755
-  f64.reinterpret_i64
-  i64.const 4683793372338329074
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
+  f32.const -8.066848754882812
+  f32.const -0.21126316487789154
+  f32.const 0.48328569531440735
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1411
+   i32.const 1148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4645970351893354075
-  f64.reinterpret_i64
-  i64.const 7289148599681560140
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
+  f32.const 4.345239639282227
+  f32.const -0.3589562177658081
+  f32.const 0.042505208402872086
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1418
+   i32.const 1149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4647695036380671130
-  f64.reinterpret_i64
-  i64.const 7926454981994343700
-  f64.reinterpret_i64
-  i64.const -4620693217682128896
-  f64.reinterpret_i64
+  f32.const -8.381433486938477
+  f32.const -0.5033331513404846
+  f32.const -0.1386195719242096
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1425
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4819432143425896336
-  f64.reinterpret_i64
-  i64.const 4607182418800017169
-  f64.reinterpret_i64
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
+  f32.const -6.531673431396484
+  f32.const 0.9692853689193726
+  f32.const 0.1786951720714569
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1432
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4819256221565452171
-  f64.reinterpret_i64
-  i64.const 4607182418800017163
-  f64.reinterpret_i64
-  i64.const -4620693217682128896
-  f64.reinterpret_i64
+  f32.const 9.267057418823242
+  f32.const -0.9875878691673279
+  f32.const 0.1389600932598114
   global.get $std/math/INEXACT
-  call $std/math/test_exp
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1439
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 3.1377049162983894e-04
-  f32.const -0.030193336308002472
+  f32.const 0.6619858741760254
+  f32.const 0.7887731194496155
+  f32.const 0.2989593744277954
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1453
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 77.11051177978516
-  f32.const -0.2875460684299469
+  f32.const -0.40660393238067627
+  f32.const 0.918469250202179
+  f32.const 0.24250665307044983
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1454
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const 2.2908132814336568e-04
-  f32.const 0.2237040400505066
+  f32.const 0.5617597699165344
+  f32.const 0.8463190197944641
+  f32.const -0.24033240973949432
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1455
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 1.4565663877874613e-03
-  f32.const 0.36469703912734985
+  f32.const 0.7741522789001465
+  f32.const 0.7150139212608337
+  f32.const -0.3372635245323181
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1456
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 10583.5634765625
-  f32.const 0.45962104201316833
+  f32.const -0.6787636876106262
+  f32.const 0.7783495187759399
+  f32.const 0.16550153493881226
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1457
+   i32.const 1157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 1.93863844871521
-  f32.const 0.3568260967731476
-  global.get $std/math/INEXACT
-  call $std/math/test_expf
+  f32.const 0
+  f32.const 1
+  f32.const 0
+  i32.const 0
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1458
+   i32.const 1160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const 0.6659078598022461
-  f32.const -0.38294991850852966
-  global.get $std/math/INEXACT
-  call $std/math/test_expf
+  f32.const -0
+  f32.const 1
+  f32.const 0
+  i32.const 0
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1459
+   i32.const 1161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 1.753756046295166
-  f32.const 0.44355490803718567
-  global.get $std/math/INEXACT
-  call $std/math/test_expf
+  f32.const inf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1460
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 2.168752908706665
-  f32.const 0.24562469124794006
-  global.get $std/math/INEXACT
-  call $std/math/test_expf
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1461
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const 0.5072436928749084
-  f32.const -0.3974292278289795
-  global.get $std/math/INEXACT
-  call $std/math/test_expf
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
+  i32.const 0
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1462
+   i32.const 1164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
+  f32.const 1.862645149230957e-09
   f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_expf
+  f32.const 1.4551915228366852e-11
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1465
+   i32.const 1167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
+  f32.const -1.862645149230957e-09
   f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_expf
+  f32.const 1.4551915228366852e-11
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1466
+   i32.const 1168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 1.1754943508222875e-38
   f32.const 1
-  f32.const 2.7182817459106445
-  f32.const -0.3462330996990204
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1467
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0.3678794503211975
-  f32.const 0.3070148527622223
+  f32.const -1.1754943508222875e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1468
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
+  f32.const 1.401298464324817e-45
+  f32.const 1
   f32.const 0
-  i32.const 0
-  call $std/math/test_expf
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1469
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f32.const -1.401298464324817e-45
+  f32.const 1
   f32.const 0
-  i32.const 0
-  call $std/math/test_expf
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1470
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const 2.802596928649634e-45
+  f32.const 1
   f32.const 0
-  i32.const 0
-  call $std/math/test_expf
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1471
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 88.72283172607422
-  f32.const 340279851902147610656242e15
-  f32.const -0.09067153930664062
+  f32.const 1.2611686178923354e-44
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1472
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 88.72283935546875
-  f32.const inf
+  f32.const 2.938735877055719e-39
+  f32.const 1
   f32.const 0
   global.get $std/math/INEXACT
-  global.get $std/math/OVERFLOW
-  i32.or
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1473
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -103.97207641601562
-  f32.const 1.401298464324817e-45
-  f32.const 0.49999967217445374
+  f32.const 5.877471754111438e-39
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1474
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -103.97208404541016
+  f32.const 1.1754940705625946e-38
+  f32.const 1
   f32.const 0
-  f32.const -0.49999651312828064
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1475
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.3465735614299774
-  f32.const 1.4142135381698608
-  f32.const 0.13922421634197235
+  f32.const 1.1754942106924411e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1476
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.3465735912322998
-  f32.const 1.4142135381698608
-  f32.const -0.21432916820049286
+  f32.const 1.175494490952134e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1477
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.3465736210346222
-  f32.const 1.4142136573791504
-  f32.const 0.43211743235588074
+  f32.const 1.1754946310819804e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expf
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1478
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -0.9996862293931839
-  f64.const -0.2760058343410492
+  f32.const 2.3509880009953429e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1490
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 76.11053017112141
-  f64.const -0.02792675793170929
+  f32.const 2.350988701644575e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1491
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -0.9997709186615084
-  f64.const 0.10052496194839478
+  f32.const 2.3509895424236536e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1492
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -0.9985434338739069
-  f64.const -0.27437829971313477
+  f32.const 4.70197740328915e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1493
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 10582.558245524993
-  f64.const 0.17696762084960938
+  f32.const 7.450580596923828e-09
+  f32.const 1
+  f32.const 2.3283064365386963e-10
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1494
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.9386384525571999
-  f64.const 0.007150684483349323
+  f32.const 0.000244140625
+  f32.const 1
+  f32.const 0.25
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1495
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0.3340921107161975
-  f64.const -0.21216636896133423
+  f32.const 0.00048828125
+  f32.const 0.9999998807907104
+  f32.const -3.973643103449831e-08
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1496
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.7537559518626312
-  f64.const 0.21675777435302734
+  f32.const 0.0009765625
+  f32.const 0.9999995231628418
+  f32.const -6.357828397085541e-07
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1497
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 1.1687528885129248
-  f64.const 0.4007748067378998
+  f32.const -2.802596928649634e-45
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1498
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -0.4927562910597158
-  f64.const -0.05476519837975502
+  f32.const -1.2611686178923354e-44
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1499
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_expm1
+  f32.const -2.938735877055719e-39
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1502
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_expm1
+  f32.const -5.877471754111438e-39
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1503
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1.7182818284590453
-  f64.const 0.348938524723053
+  f32.const -1.1754940705625946e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1504
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -0.6321205588285577
-  f64.const 0.11194825917482376
+  f32.const -1.1754942106924411e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1505
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_expm1
+  f32.const -1.175494490952134e-38
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1506
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_expm1
+  f32.const -1.1754946310819804e-38
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1507
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_expm1
+  f32.const -2.3509880009953429e-38
+  f32.const 1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1508
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2.225073858507201e-308
-  f64.const 2.225073858507201e-308
-  f64.const 0
+  f32.const -2.350988701644575e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1509
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.225073858507201e-308
-  f64.const -2.225073858507201e-308
-  f64.const 0
+  f32.const -2.3509895424236536e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_expm1
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1510
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const -0.9996862411499023
-  f32.const -0.19532723724842072
+  f32.const -4.70197740328915e-38
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1519
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 76.11051177978516
-  f32.const -0.2875460684299469
+  f32.const -7.450580596923828e-09
+  f32.const 1
+  f32.const 2.3283064365386963e-10
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1520
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -0.9997709393501282
-  f32.const -0.34686920046806335
+  f32.const -0.000244140625
+  f32.const 1
+  f32.const 0.25
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1521
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const -0.9985434412956238
-  f32.const -0.1281939446926117
+  f32.const -0.00048828125
+  f32.const 0.9999998807907104
+  f32.const -3.973643103449831e-08
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1522
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 10582.5634765625
-  f32.const 0.45962104201316833
+  f32.const -0.0009765625
+  f32.const 0.9999995231628418
+  f32.const -6.357828397085541e-07
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1523
+   i32.const 1204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.9386383891105652
-  f32.const -0.28634780645370483
+  f32.const 255.99993896484375
+  f32.const -0.03985174745321274
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1524
+   i32.const 1207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0.3340921103954315
-  f32.const 0.23410017788410187
+  f32.const 5033165
+  f32.const 0.8471871614456177
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1525
+   i32.const 1208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.7537559866905212
-  f32.const -0.11289017647504807
+  f32.const 421657440
+  f32.const 0.6728929281234741
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1526
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 1.168752908706665
-  f32.const 0.4912493824958801
+  f32.const 2147483392
+  f32.const 0.9610780477523804
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1527
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -0.49275627732276917
-  f32.const 0.20514154434204102
+  f32.const 68719476736
+  f32.const 0.1694190502166748
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1528
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 549755813888
+  f32.const 0.20735950767993927
   f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_expm1f
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1531
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
+  global.get $~lib/builtins/f32.MAX_VALUE
+  f32.const 0.8530210256576538
   f32.const 0
-  i32.const 0
-  call $std/math/test_expm1f
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1532
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1.718281865119934
-  f32.const 0.3075338304042816
+  f32.const -255.99993896484375
+  f32.const -0.03985174745321274
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1533
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0.6321205496788025
-  f32.const 0.15350742638111115
+  f32.const -5033165
+  f32.const 0.8471871614456177
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_expm1f
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1534
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
-  end
-  f32.const inf
-  f32.const inf
+  end
+  f32.const -421657440
+  f32.const 0.6728929281234741
   f32.const 0
-  i32.const 0
-  call $std/math/test_expm1f
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1535
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1
+  f32.const -2147483392
+  f32.const 0.9610780477523804
   f32.const 0
-  i32.const 0
-  call $std/math/test_expm1f
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1536
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const -68719476736
+  f32.const 0.1694190502166748
   f32.const 0
-  i32.const 0
-  call $std/math/test_expm1f
+  global.get $std/math/INEXACT
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1537
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4602641186874283791
-  f64.reinterpret_i64
-  i64.const 4570745787852977234
-  f64.reinterpret_i64
-  i64.const 4593785391990964224
-  f64.reinterpret_i64
+  f32.const -549755813888
+  f32.const 0.20735950767993927
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1549
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4616578323568966759
-  f64.reinterpret_i64
-  i64.const 4626414420249767698
-  f64.reinterpret_i64
-  i64.const 4584516730696499200
-  f64.reinterpret_i64
+  global.get $~lib/builtins/f32.MAX_VALUE
+  f32.neg
+  f32.const 0.8530210256576538
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1550
+   i32.const 1220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4602464091242371353
-  f64.reinterpret_i64
-  i64.const 4569061019426535842
-  f64.reinterpret_i64
-  i64.const -4624115860477313024
-  f64.reinterpret_i64
+  f64.const -8.06684839057968
+  f64.const 1593.5209938862329
+  f64.const -0.38098856806755066
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1551
+   i32.const 1231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4604332007749985084
-  f64.reinterpret_i64
-  i64.const 4577384368165340865
-  f64.reinterpret_i64
-  i64.const -4624546881383432192
-  f64.reinterpret_i64
+  f64.const 4.345239849338305
+  f64.const 38.56174928426729
+  f64.const -0.2712278366088867
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1552
+   i32.const 1232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4621406507342668262
-  f64.reinterpret_i64
-  i64.const 4648630624867737726
-  f64.reinterpret_i64
-  i64.const -4632306693286395904
-  f64.reinterpret_i64
+  f64.const -8.38143342755525
+  f64.const 2182.630979595893
+  f64.const 0.0817827582359314
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1553
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4604137858433287319
-  f64.reinterpret_i64
-  i64.const 4609804680828834897
-  f64.reinterpret_i64
-  i64.const -4629668059727003648
-  f64.reinterpret_i64
+  f64.const -6.531673581913484
+  f64.const 343.273849250879
+  f64.const -0.429940402507782
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1554
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4622375691843501615
-  f64.reinterpret_i64
-  i64.const 4604970224741804156
-  f64.reinterpret_i64
-  i64.const -4625474567475822592
-  f64.reinterpret_i64
+  f64.const 9.267056966972586
+  f64.const 5291.779170005587
+  f64.const -0.1592995822429657
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1555
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4603235101512779211
-  f64.reinterpret_i64
-  i64.const 4609326441051132446
-  f64.reinterpret_i64
-  i64.const 4598566683265728512
-  f64.reinterpret_i64
+  f64.const 0.6619858980995045
+  f64.const 1.2272321957342842
+  f64.const 0.23280741274356842
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1556
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4605148163534189634
-  f64.reinterpret_i64
-  i64.const 4610380807161541490
-  f64.reinterpret_i64
-  i64.const -4641791869250961408
-  f64.reinterpret_i64
+  f64.const -0.4066039223853553
+  f64.const 1.083808541871197
+  f64.const -0.3960916996002197
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1557
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4619083057392940530
-  f64.reinterpret_i64
-  i64.const 4603802020283029177
-  f64.reinterpret_i64
-  i64.const -4624080701338157056
-  f64.reinterpret_i64
+  f64.const 0.5617597462207241
+  f64.const 1.1619803583175077
+  f64.const 0.37748390436172485
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1558
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  i64.const 4607182418800017408
-  f64.reinterpret_i64
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp2
+  f64.const 0.7741522965913037
+  f64.const 1.3149236876276706
+  f64.const 0.43587008118629456
+  global.get $std/math/INEXACT
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1561
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  i64.const 4607182418800017408
-  f64.reinterpret_i64
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp2
+  f64.const -0.6787637026394024
+  f64.const 1.2393413245934533
+  f64.const 0.10201606154441833
+  global.get $std/math/INEXACT
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1562
+   i32.const 1240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 0
   f64.const 1
-  i64.const 4611686018427387904
-  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1563
+   i32.const 1243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  i64.const 4602678819172646912
-  f64.reinterpret_i64
+  f64.const -0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1564
+   i32.const 1244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29666,27 +27957,27 @@
   f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1565
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.neg
-  f64.const 0
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1566
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29695,6444 +27986,6377 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_cosh
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1567
+   i32.const 1247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4611677222334365696
-  f64.reinterpret_i64
-  i64.const 4616177432330998198
-  f64.reinterpret_i64
-  i64.const 4594487510695936000
-  f64.reinterpret_i64
+  f32.const -8.066848754882812
+  f32.const 1593.5216064453125
+  f32.const 0.26242581009864807
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1568
+   i32.const 1256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571172093576400077
-  f64.reinterpret_i64
-  i64.const 4826838566504112
-  f64.reinterpret_i64
-  i64.const -4626215863798726656
-  f64.reinterpret_i64
+  f32.const 4.345239639282227
+  f32.const 38.56174087524414
+  f32.const -0.08168885856866837
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1569
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4571171213967097856
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1570
+   i32.const 1257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571170334357795635
-  f64.reinterpret_i64
-  i64.const 4202007033009479
-  f64.reinterpret_i64
-  i64.const 4596318005893267456
-  f64.reinterpret_i64
+  f32.const -8.381433486938477
+  f32.const 2182.631103515625
+  f32.const -0.02331414446234703
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1571
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4571162417874075648
-  f64.reinterpret_i64
-  i64.const 2251799813685248
-  f64.reinterpret_i64
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1572
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4652217535464420147
-  f64.reinterpret_i64
-  i64.const 9218265252038683278
-  f64.reinterpret_i64
-  i64.const 4600821605520637952
-  f64.reinterpret_i64
+  f32.const -6.531673431396484
+  f32.const 343.2738037109375
+  f32.const 0.20081493258476257
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1573
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4652218415073722368
-  f64.reinterpret_i64
-  f64.const inf
-  f64.const 0
+  f32.const 9.267057418823242
+  f32.const 5291.78173828125
+  f32.const 0.36286723613739014
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1574
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4652218854878373478
-  f64.reinterpret_i64
-  f64.const inf
-  f64.const 0
+  f32.const 0.6619858741760254
+  f32.const 1.2272322177886963
+  f32.const 0.32777416706085205
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1575
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4614253070214989087
-  f64.reinterpret_i64
-  i64.const 4621152157524017948
-  f64.reinterpret_i64
-  i64.const 4600753005229244416
-  f64.reinterpret_i64
+  f32.const -0.40660393238067627
+  f32.const 1.0838085412979126
+  f32.const -0.039848703891038895
   global.get $std/math/INEXACT
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1576
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571166815920586752
-  f64.reinterpret_i64
-  i64.const 3184525836262886
-  f64.reinterpret_i64
-  i64.const -4624614737571741696
-  f64.reinterpret_i64
+  f32.const 0.5617597699165344
+  f32.const 1.161980390548706
+  f32.const 0.15274477005004883
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1577
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571162417874075648
-  f64.reinterpret_i64
-  i64.const 2251799813685248
-  f64.reinterpret_i64
-  f64.const 0
-  i32.const 0
-  call $std/math/test_exp2
+  f32.const 0.7741522789001465
+  f32.const 1.314923644065857
+  f32.const -0.2387111485004425
+  global.get $std/math/INEXACT
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1578
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571158019827564544
-  f64.reinterpret_i64
-  i64.const 1592262918131443
-  f64.reinterpret_i64
-  i64.const -4629118337199112192
-  f64.reinterpret_i64
+  f32.const -0.6787636876106262
+  f32.const 1.2393412590026855
+  f32.const -0.45791932940483093
   global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1579
+   i32.const 1265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571153621781053440
-  f64.reinterpret_i64
-  i64.const 1125899906842624
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1580
+   i32.const 1268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4571149223734542336
-  f64.reinterpret_i64
-  i64.const 562949953421312
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1581
+   i32.const 1269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4570933719455498240
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_exp2
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1582
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4570931520432242688
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  i64.const 4598947915300339712
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  call $std/math/test_coshf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1583
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4570929321408987136
-  f64.reinterpret_i64
-  f64.const 0
-  i64.const -4620693217682128896
-  f64.reinterpret_i64
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  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 32
-   i32.const 1584
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4566650022153682944
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_exp2
+  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 32
-   i32.const 1585
+   i32.const 1272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4602641186669199360
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4570745785645268992
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4633844389825740800
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const -8.06684839057968
+  f64.const 3.137706068161745e-04
+  f64.const -0.2599197328090668
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1596
+   i32.const 1284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4616578323332464640
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4626414419599949824
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4599818385449025536
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const 4.345239849338305
+  f64.const 77.11053017112141
+  f64.const -0.02792675793170929
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1597
+   i32.const 1285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4602464091208941568
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4569061019225161728
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4594754148171251712
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const -8.38143342755525
+  f64.const 2.290813384916323e-04
+  f64.const -0.24974334239959717
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1598
+   i32.const 1286
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4604332007919452160
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4577384368955195392
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4598362462939512832
-  f64.reinterpret_i64
-  f32.demote_f64
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const -6.531673581913484
+  f64.const 1.4565661260931588e-03
+  f64.const -0.4816822409629822
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1599
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4621406507597037568
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4648630626491039744
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4629234484925956096
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const 9.267056966972586
+  f64.const 10583.558245524993
+  f64.const 0.17696762084960938
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1600
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4604137858217803776
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4609804680480948224
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4621992221413998592
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const 0.6619858980995045
+  f64.const 1.9386384525571998
+  f64.const -0.4964246451854706
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1601
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4622375691663441920
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4604970224490381312
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4622843720155267072
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const -0.4066039223853553
+  f64.const 0.6659078892838025
+  f64.const -0.10608318448066711
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1602
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4603235101726212096
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4609326441241247744
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4594599154612699136
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const 0.5617597462207241
+  f64.const 1.7537559518626311
+  f64.const -0.39162111282348633
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1603
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4605148163374841856
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4610380806857162752
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4622656250201505792
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const 0.7741522965913037
+  f64.const 2.1687528885129246
+  f64.const -0.2996125817298889
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1604
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4619083057528307712
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const 4603802020229414912
-  f64.reinterpret_i64
-  f32.demote_f64
-  i64.const -4626672421506646016
-  f64.reinterpret_i64
-  f32.demote_f64
+  f64.const -0.6787637026394024
+  f64.const 0.5072437089402843
+  f64.const 0.47261738777160645
   global.get $std/math/INEXACT
-  call $std/math/test_exp2f
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1605
+   i32.const 1293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const -9
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floor
+  f64.const 1
+  f64.const 0
+  i32.const 0
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1617
+   i32.const 1296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 4
+  f64.const -0
+  f64.const 1
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floor
+  i32.const 0
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1618
+   i32.const 1297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -9
-  f64.const 0
+  f64.const 1
+  f64.const 2.718281828459045
+  f64.const -0.3255307376384735
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1619
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -7
-  f64.const 0
+  f64.const -1
+  f64.const 0.36787944117144233
+  f64.const 0.22389651834964752
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1620
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 9
+  f64.const inf
+  f64.const inf
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floor
+  i32.const 0
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1621
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
+  f64.const inf
+  f64.neg
   f64.const 0
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floor
+  i32.const 0
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1622
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -1
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floor
+  i32.const 0
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1623
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0
-  f64.const 0
+  f64.const 1.0397214889526365
+  f64.const 2.828429155876411
+  f64.const 0.18803080916404724
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1624
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 0
-  f64.const 0
+  f64.const -1.0397214889526365
+  f64.const 0.35355313670217847
+  f64.const 0.2527272403240204
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1625
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -1
-  f64.const 0
+  f64.const 1.0397210121154785
+  f64.const 2.8284278071766122
+  f64.const -0.4184139370918274
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1626
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  f64.const 1.0397214889526367
+  f64.const 2.8284291558764116
+  f64.const -0.22618377208709717
+  global.get $std/math/INEXACT
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1629
+   i32.const 1306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
+  global.get $~lib/builtins/f64.MIN_VALUE
+  f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  global.get $std/math/INEXACT
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1630
+   i32.const 1309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
+  global.get $~lib/builtins/f64.MIN_VALUE
   f64.neg
+  f64.const 1
   f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  global.get $std/math/INEXACT
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1631
+   i32.const 1310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  i64.const 4649454530587146735
+  f64.reinterpret_i64
+  i64.const 9218868437227405098
+  f64.reinterpret_i64
+  i64.const -4631092234375135232
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1632
+   i32.const 1312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
+  i64.const 4649454530587146736
+  f64.reinterpret_i64
+  f64.const inf
   f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  global.get $std/math/INEXACT
+  global.get $std/math/OVERFLOW
+  i32.or
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1633
+   i32.const 1319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  i64.const -4573606559926636463
+  f64.reinterpret_i64
+  global.get $~lib/builtins/f64.MIN_VALUE
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1634
+   i32.const 1320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
+  i64.const -4573606559926636462
+  f64.reinterpret_i64
   f64.const 0
-  i32.const 0
-  call $std/math/test_floor
+  i64.const -4620693217682128896
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1635
+   i32.const 1327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 0
-  f64.const 0
+  i64.const -4573929700241785646
+  f64.reinterpret_i64
+  i64.const 4503599627370620
+  f64.reinterpret_i64
+  i64.const 4598386411140284416
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1636
+   i32.const 1334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const -1
-  f64.const 0
+  i64.const -4573929700241785645
+  f64.reinterpret_i64
+  i64.const 4503599627370108
+  f64.reinterpret_i64
+  i64.const 4503599627370108
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1637
+   i32.const 1341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
-  f64.const 1
-  f64.const 0
+  i64.const 4602685064124656555
+  f64.reinterpret_i64
+  i64.const 4610109149550689567
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1638
+   i32.const 1348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000152587890625
-  f64.const -2
-  f64.const 0
+  i64.const 4603836184166978885
+  f64.reinterpret_i64
+  i64.const 4611122094629841017
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1639
+   i32.const 1355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
-  f64.const 0
-  f64.const 0
+  i64.const 4605718951180848880
+  f64.reinterpret_i64
+  i64.const 4612385506662149744
+  f64.reinterpret_i64
+  i64.const -4620693217682128896
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1640
+   i32.const 1362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.9999923706054688
-  f64.const -1
-  f64.const 0
+  i64.const 4605835761386121865
+  f64.reinterpret_i64
+  i64.const 4612453422537445296
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1641
+   i32.const 1368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.888609052210118e-31
-  f64.const 0
-  f64.const 0
+  i64.const 4610006203169397430
+  f64.reinterpret_i64
+  i64.const 4617415291835269761
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1642
+   i32.const 1374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const -1
-  f64.const 0
+  i64.const 4610219797808568955
+  f64.reinterpret_i64
+  i64.const 4617693563882825047
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floor
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1643
+   i32.const 1380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const -9
-  f32.const 0
+  i64.const 4619182163989041060
+  f64.reinterpret_i64
+  i64.const 4650062712266849886
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1652
+   i32.const 1387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 4
-  f32.const 0
+  i64.const 4622394943780502425
+  f64.reinterpret_i64
+  i64.const 4678652243157503230
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1653
+   i32.const 1394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -9
-  f32.const 0
+  i64.const 4622613550143616215
+  f64.reinterpret_i64
+  i64.const 4680943662238555301
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1654
+   i32.const 1401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const -7
-  f32.const 0
+  i64.const 4622829325869063755
+  f64.reinterpret_i64
+  i64.const 4683793372338329074
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1655
+   i32.const 1408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 9
-  f32.const 0
+  i64.const 4645970351893354075
+  f64.reinterpret_i64
+  i64.const 7289148599681560140
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1656
+   i32.const 1415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0
-  f32.const 0
+  i64.const 4647695036380671130
+  f64.reinterpret_i64
+  i64.const 7926454981994343700
+  f64.reinterpret_i64
+  i64.const -4620693217682128896
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1657
+   i32.const 1422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -1
-  f32.const 0
+  i64.const -4819432143425896336
+  f64.reinterpret_i64
+  i64.const 4607182418800017169
+  f64.reinterpret_i64
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1658
+   i32.const 1429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0
-  f32.const 0
+  i64.const -4819256221565452171
+  f64.reinterpret_i64
+  i64.const 4607182418800017163
+  f64.reinterpret_i64
+  i64.const -4620693217682128896
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_exp
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1659
+   i32.const 1436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0
-  f32.const 0
+  f32.const -8.066848754882812
+  f32.const 3.1377049162983894e-04
+  f32.const -0.030193336308002472
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1660
+   i32.const 1450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -1
-  f32.const 0
+  f32.const 4.345239639282227
+  f32.const 77.11051177978516
+  f32.const -0.2875460684299469
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1661
+   i32.const 1451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const -8.381433486938477
+  f32.const 2.2908132814336568e-04
+  f32.const 0.2237040400505066
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1664
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const -6.531673431396484
+  f32.const 1.4565663877874613e-03
+  f32.const 0.36469703912734985
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1665
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const 9.267057418823242
+  f32.const 10583.5634765625
+  f32.const 0.45962104201316833
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1666
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const 0.6619858741760254
+  f32.const 1.93863844871521
+  f32.const 0.3568260967731476
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1667
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const -0.40660393238067627
+  f32.const 0.6659078598022461
+  f32.const -0.38294991850852966
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1668
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const 0.5617597699165344
+  f32.const 1.753756046295166
+  f32.const 0.44355490803718567
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1669
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_floorf
+  f32.const 0.7741522789001465
+  f32.const 2.168752908706665
+  f32.const 0.24562469124794006
+  global.get $std/math/INEXACT
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1670
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 0
-  f32.const 0
+  f32.const -0.6787636876106262
+  f32.const 0.5072436928749084
+  f32.const -0.3974292278289795
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1671
+   i32.const 1459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -1
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  f32.const 1
+  f32.const 0
+  i32.const 0
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1672
+   i32.const 1462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
+  f32.const -0
   f32.const 1
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  i32.const 0
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1673
+   i32.const 1463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const -2
-  f32.const 0
+  f32.const 1
+  f32.const 2.7182817459106445
+  f32.const -0.3462330996990204
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1674
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
-  f32.const 0
-  f32.const 0
+  f32.const -1
+  f32.const 0.3678794503211975
+  f32.const 0.3070148527622223
   global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1675
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.9999923706054688
-  f32.const -1
+  f32.const inf
+  f32.const inf
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  i32.const 0
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1676
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
+  f32.const inf
+  f32.neg
   f32.const 0
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  i32.const 0
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1677
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_floorf
+  i32.const 0
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1678
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const 4.535662560676869
-  f64.const 9.25452742288464
-  f64.const -0.31188681721687317
+  f32.const 88.72283172607422
+  f32.const 340279851902147610656242e15
+  f32.const -0.09067153930664062
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1692
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  f64.const 9.893305808328252
-  f64.const 0.4593673348426819
+  f32.const 88.72283935546875
+  f32.const inf
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  global.get $std/math/OVERFLOW
+  i32.or
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1693
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -2.763607337379588
-  f64.const 8.825301797432132
-  f64.const -0.1701754331588745
+  f32.const -103.97207641601562
+  f32.const 1.401298464324817e-45
+  f32.const 0.49999967217445374
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1694
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 4.567535276842744
-  f64.const 7.970265885519092
-  f64.const -0.3176782727241516
+  f32.const -103.97208404541016
+  f32.const 0
+  f32.const -0.49999651312828064
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1695
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  f64.const 10.441639651824575
-  f64.const -0.2693633437156677
+  f32.const 0.3465735614299774
+  f32.const 1.4142135381698608
+  f32.const 0.13922421634197235
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1696
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.450045556060236
-  f64.const 0.6620717923376739
-  f64.const 6.483936052542593
-  f64.const 0.35618898272514343
+  f32.const 0.3465735912322998
+  f32.const 1.4142135381698608
+  f32.const -0.21432916820049286
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1697
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  f64.const 7.859063309581766
-  f64.const 0.08044655621051788
+  f32.const 0.3465736210346222
+  f32.const 1.4142136573791504
+  f32.const 0.43211743235588074
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1698
+   i32.const 1475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  f64.const 7.717156764899584
-  f64.const 0.05178084969520569
+  f64.const -8.06684839057968
+  f64.const -0.9996862293931839
+  f64.const -0.2760058343410492
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1699
+   i32.const 1487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  f64.const 2.104006123874314
-  f64.const -0.0918039008975029
+  f64.const 4.345239849338305
+  f64.const 76.11053017112141
+  f64.const -0.02792675793170929
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1700
+   i32.const 1488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
-  f64.const 0.5596880129062913
-  f64.const 0.1383407711982727
+  f64.const -8.38143342755525
+  f64.const -0.9997709186615084
+  f64.const 0.10052496194839478
   global.get $std/math/INEXACT
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1701
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3
-  f64.const 4
-  f64.const 5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const -6.531673581913484
+  f64.const -0.9985434338739069
+  f64.const -0.27437829971313477
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1704
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -3
-  f64.const 4
-  f64.const 5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const 9.267056966972586
+  f64.const 10582.558245524993
+  f64.const 0.17696762084960938
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1705
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4
-  f64.const 3
-  f64.const 5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const 0.6619858980995045
+  f64.const 0.9386384525571999
+  f64.const 0.007150684483349323
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1706
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4
-  f64.const -3
-  f64.const 5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const -0.4066039223853553
+  f64.const -0.3340921107161975
+  f64.const -0.21216636896133423
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1707
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -3
-  f64.const -4
-  f64.const 5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const 0.5617597462207241
+  f64.const 0.7537559518626312
+  f64.const 0.21675777435302734
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1708
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1797693134862315708145274e284
-  f64.const 0
-  f64.const 1797693134862315708145274e284
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const 0.7741522965913037
+  f64.const 1.1687528885129248
+  f64.const 0.4007748067378998
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1709
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1797693134862315708145274e284
-  f64.const -0
-  f64.const 1797693134862315708145274e284
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const -0.6787637026394024
+  f64.const -0.4927562910597158
+  f64.const -0.05476519837975502
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1710
+   i32.const 1496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5e-324
   f64.const 0
-  f64.const 5e-324
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1711
+   i32.const 1499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 5e-324
   f64.const -0
-  f64.const 5e-324
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1712
+   i32.const 1500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
   f64.const 1
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const 1.7182818284590453
+  f64.const 0.348938524723053
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1713
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f64.const -1
+  f64.const -0.6321205588285577
+  f64.const 0.11194825917482376
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1714
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  f64.const nan:0x8000000000000
   f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1715
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const inf
   f64.const inf
+  f64.neg
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1716
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 1
-  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_hypot
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1717
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.neg
-  f64.const inf
+  f64.const 2.225073858507201e-308
+  f64.const 2.225073858507201e-308
   f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1718
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const inf
+  f64.const -2.225073858507201e-308
+  f64.const -2.225073858507201e-308
   f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_expm1
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1719
+   i32.const 1507
    i32.const 1
    call $~lib/builtins/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
+  f32.const -8.066848754882812
+  f32.const -0.9996862411499023
+  f32.const -0.19532723724842072
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1720
+   i32.const 1516
    i32.const 1
    call $~lib/builtins/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
+  f32.const 4.345239639282227
+  f32.const 76.11051177978516
+  f32.const -0.2875460684299469
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1721
+   i32.const 1517
    i32.const 1
    call $~lib/builtins/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
+  f32.const -8.381433486938477
+  f32.const -0.9997709393501282
+  f32.const -0.34686920046806335
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1722
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f32.const -6.531673431396484
+  f32.const -0.9985434412956238
+  f32.const -0.1281939446926117
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1723
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_hypot
+  f32.const 9.267057418823242
+  f32.const 10582.5634765625
+  f32.const 0.45962104201316833
+  global.get $std/math/INEXACT
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1724
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 4.535662651062012
-  f32.const 9.254528045654297
-  f32.const 0.2735958993434906
+  f32.const 0.6619858741760254
+  f32.const 0.9386383891105652
+  f32.const -0.28634780645370483
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1733
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const -8.887990951538086
-  f32.const 9.893305778503418
-  f32.const 0.4530770778656006
+  f32.const -0.40660393238067627
+  f32.const -0.3340921103954315
+  f32.const 0.23410017788410187
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1734
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -2.7636072635650635
-  f32.const 8.825302124023438
-  f32.const 0.30755728483200073
+  f32.const 0.5617597699165344
+  f32.const 0.7537559866905212
+  f32.const -0.11289017647504807
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1735
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 4.567535400390625
-  f32.const 7.970265865325928
-  f32.const 0.06785223633050919
+  f32.const 0.7741522789001465
+  f32.const 1.168752908706665
+  f32.const 0.4912493824958801
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1736
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 4.811392307281494
-  f32.const 10.44163990020752
-  f32.const -0.26776307821273804
+  f32.const -0.6787636876106262
+  f32.const -0.49275627732276917
+  f32.const 0.20514154434204102
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1737
+   i32.const 1525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.450045585632324
-  f32.const 0.6620717644691467
-  f32.const 6.483936309814453
-  f32.const 0.48381292819976807
-  global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  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 32
-   i32.const 1738
+   i32.const 1528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.858890056610107
-  f32.const 0.052154526114463806
-  f32.const 7.859063148498535
-  f32.const 0.07413065433502197
-  global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  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 32
-   i32.const 1739
+   i32.const 1529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
-  f32.const 7.717156887054443
-  f32.const 0.4940592646598816
+  f32.const 1
+  f32.const 1.718281865119934
+  f32.const 0.3075338304042816
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1740
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  f32.const 2.104006052017212
-  f32.const -0.287089467048645
+  f32.const -1
+  f32.const -0.6321205496788025
+  f32.const 0.15350742638111115
   global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1741
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  f32.const 0.5596880316734314
-  f32.const 0.4191940724849701
-  global.get $std/math/INEXACT
-  call $std/math/test_hypotf
+  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 32
-   i32.const 1742
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 3
-  f32.const 4
-  f32.const 5
+  f32.const inf
+  f32.neg
+  f32.const -1
   f32.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1745
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -3
-  f32.const 4
-  f32.const 5
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_expm1f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1746
+   i32.const 1534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4
-  f32.const 3
-  f32.const 5
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const -4602641186874283791
+  f64.reinterpret_i64
+  i64.const 4570745787852977234
+  f64.reinterpret_i64
+  i64.const 4593785391990964224
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1747
+   i32.const 1546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4
-  f32.const -3
-  f32.const 5
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const 4616578323568966759
+  f64.reinterpret_i64
+  i64.const 4626414420249767698
+  f64.reinterpret_i64
+  i64.const 4584516730696499200
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1748
+   i32.const 1547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -3
-  f32.const -4
-  f32.const 5
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const -4602464091242371353
+  f64.reinterpret_i64
+  i64.const 4569061019426535842
+  f64.reinterpret_i64
+  i64.const -4624115860477313024
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1749
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 3402823466385288598117041e14
-  f32.const 0
-  f32.const 3402823466385288598117041e14
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const -4604332007749985084
+  f64.reinterpret_i64
+  i64.const 4577384368165340865
+  f64.reinterpret_i64
+  i64.const -4624546881383432192
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1750
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 3402823466385288598117041e14
-  f32.const -0
-  f32.const 3402823466385288598117041e14
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const 4621406507342668262
+  f64.reinterpret_i64
+  i64.const 4648630624867737726
+  f64.reinterpret_i64
+  i64.const -4632306693286395904
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1751
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/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
+  i64.const 4604137858433287319
+  f64.reinterpret_i64
+  i64.const 4609804680828834897
+  f64.reinterpret_i64
+  i64.const -4629668059727003648
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1752
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/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
+  i64.const -4622375691843501615
+  f64.reinterpret_i64
+  i64.const 4604970224741804156
+  f64.reinterpret_i64
+  i64.const -4625474567475822592
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1753
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const 4603235101512779211
+  f64.reinterpret_i64
+  i64.const 4609326441051132446
+  f64.reinterpret_i64
+  i64.const 4598566683265728512
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1754
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const 4605148163534189634
+  f64.reinterpret_i64
+  i64.const 4610380807161541490
+  f64.reinterpret_i64
+  i64.const -4641791869250961408
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1755
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_hypotf
+  i64.const -4619083057392940530
+  f64.reinterpret_i64
+  i64.const 4603802020283029177
+  f64.reinterpret_i64
+  i64.const -4624080701338157056
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1756
+   i32.const 1555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const inf
-  f32.const inf
-  f32.const 0
+  f64.const 0
+  i64.const 4607182418800017408
+  f64.reinterpret_i64
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1757
+   i32.const 1558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const inf
-  f32.const 0
+  f64.const 0
+  i64.const 4607182418800017408
+  f64.reinterpret_i64
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1758
+   i32.const 1559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  i64.const 4611686018427387904
+  f64.reinterpret_i64
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1759
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const inf
-  f32.const 0
+  f64.const -1
+  i64.const 4602678819172646912
+  f64.reinterpret_i64
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1760
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1761
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1762
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_hypotf
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1763
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i64.const 4611677222334365696
+  f64.reinterpret_i64
+  i64.const 4616177432330998198
+  f64.reinterpret_i64
+  i64.const 4594487510695936000
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1775
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 1.4690809584224322
-  f64.const -0.3412533402442932
+  i64.const -4571172093576400077
+  f64.reinterpret_i64
+  i64.const 4826838566504112
+  f64.reinterpret_i64
+  i64.const -4626215863798726656
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_log
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1776
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
+  i64.const -4571171213967097856
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i32.const 0
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1777
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
+  i64.const -4571170334357795635
+  f64.reinterpret_i64
+  i64.const 4202007033009479
+  f64.reinterpret_i64
+  i64.const 4596318005893267456
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 1568
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i64.const -4571162417874075648
+  f64.reinterpret_i64
+  i64.const 2251799813685248
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i32.const 0
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1778
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 2.2264658498795615
-  f64.const 0.3638114035129547
+  i64.const 4652217535464420147
+  f64.reinterpret_i64
+  i64.const 9218265252038683278
+  f64.reinterpret_i64
+  i64.const 4600821605520637952
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_log
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1779
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const -0.4125110252365137
-  f64.const -0.29108747839927673
+  i64.const 4652218415073722368
+  f64.reinterpret_i64
+  f64.const inf
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1780
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const nan:0x8000000000000
+  i64.const 4652218854878373478
+  f64.reinterpret_i64
+  f64.const inf
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1781
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const -0.5766810183195862
-  f64.const -0.10983199626207352
+  i64.const 4614253070214989087
+  f64.reinterpret_i64
+  i64.const 4621152157524017948
+  f64.reinterpret_i64
+  i64.const 4600753005229244416
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_log
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1782
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const -0.2559866591263865
-  f64.const -0.057990044355392456
+  i64.const -4571166815920586752
+  f64.reinterpret_i64
+  i64.const 3184525836262886
+  f64.reinterpret_i64
+  i64.const -4624614737571741696
+  f64.reinterpret_i64
   global.get $std/math/INEXACT
-  call $std/math/test_log
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1783
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const nan:0x8000000000000
+  i64.const -4571162417874075648
+  f64.reinterpret_i64
+  i64.const 2251799813685248
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i32.const 0
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1784
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log
+  i64.const -4571158019827564544
+  f64.reinterpret_i64
+  i64.const 1592262918131443
+  f64.reinterpret_i64
+  i64.const -4629118337199112192
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1787
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.neg
+  i64.const -4571153621781053440
+  f64.reinterpret_i64
+  i64.const 1125899906842624
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log
+  i32.const 0
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1788
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const nan:0x8000000000000
+  i64.const -4571149223734542336
+  f64.reinterpret_i64
+  i64.const 562949953421312
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i32.const 0
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1789
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
+  i64.const -4570933719455498240
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_log
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1790
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  i64.const -4570931520432242688
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
+  i64.const 4598947915300339712
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1791
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
+  i64.const -4570929321408987136
+  f64.reinterpret_i64
   f64.const 0
-  i32.const 0
-  call $std/math/test_log
+  i64.const -4620693217682128896
+  f64.reinterpret_i64
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1792
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  i64.const -4566650022153682944
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log
+  f64.const 0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_exp2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1793
+   i32.const 1582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
-  i32.const 0
-  call $std/math/test_log
+  i64.const -4602641186669199360
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4570745785645268992
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4633844389825740800
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1794
+   i32.const 1593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_logf
+  i64.const 4616578323332464640
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4626414419599949824
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4599818385449025536
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1803
+   i32.const 1594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_logf
+  i64.const -4602464091208941568
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4569061019225161728
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4594754148171251712
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1804
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  i64.const -4604332007919452160
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4577384368955195392
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4598362462939512832
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1805
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  i64.const 4621406507597037568
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4648630626491039744
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4629234484925956096
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1806
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  i64.const 4604137858217803776
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4609804680480948224
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4621992221413998592
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1807
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  i64.const -4622375691663441920
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4604970224490381312
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4622843720155267072
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1808
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  i64.const 4603235101726212096
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4609326441241247744
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4594599154612699136
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1809
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  i64.const 4605148163374841856
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4610380806857162752
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4622656250201505792
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1810
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_logf
+  i64.const -4619083057528307712
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const 4603802020229414912
+  f64.reinterpret_i64
+  f32.demote_f64
+  i64.const -4626672421506646016
+  f64.reinterpret_i64
+  f32.demote_f64
+  global.get $std/math/INEXACT
+  call $std/math/test_exp2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1813
+   i32.const 1602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_logf
+  f64.const -8.06684839057968
+  f64.const -9
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1814
+   i32.const 1614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  f64.const 4.345239849338305
+  f64.const 4
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1815
+   i32.const 1615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  f64.const -8.38143342755525
+  f64.const -9
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1816
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  f64.const -6.531673581913484
+  f64.const -7
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1817
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  f64.const 9.267056966972586
+  f64.const 9
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1818
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_logf
+  f64.const 0.6619858980995045
+  f64.const 0
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1819
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_logf
+  f64.const -0.4066039223853553
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1820
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
+  f64.const 0.5617597462207241
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1832
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 0.6380137537120029
-  f64.const -0.2088824063539505
+  f64.const 0.7741522965913037
+  f64.const 0
+  f64.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1833
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
+  f64.const -0.6787637026394024
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1834
+   i32.const 1623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  i32.const 0
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1835
+   i32.const 1626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 0.9669418327487274
-  f64.const -0.06120431795716286
-  global.get $std/math/INEXACT
-  call $std/math/test_log10
+  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 32
-   i32.const 1836
+   i32.const 1627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const -0.17915126198447093
-  f64.const 0.39090874791145325
-  global.get $std/math/INEXACT
-  call $std/math/test_log10
+  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 32
-   i32.const 1837
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  f64.const 0
+  f64.const 0
+  i32.const 0
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1838
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const -0.25044938407454437
-  f64.const -0.3046841621398926
-  global.get $std/math/INEXACT
-  call $std/math/test_log10
+  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 32
-   i32.const 1839
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const -0.11117359349943837
-  f64.const -0.31503361463546753
-  global.get $std/math/INEXACT
-  call $std/math/test_log10
+  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 32
-   i32.const 1840
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const nan:0x8000000000000
+  f64.const -1
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  i32.const 0
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1841
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 0.5
   f64.const 0
-  f64.const inf
-  f64.neg
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1844
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.neg
+  f64.const -0.5
+  f64.const -1
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1845
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const nan:0x8000000000000
+  f64.const 1.0000152587890625
+  f64.const 1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1846
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
+  f64.const -1.0000152587890625
+  f64.const -2
   f64.const 0
-  i32.const 0
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1847
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const nan:0x8000000000000
+  f64.const 0.9999923706054688
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1848
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
+  f64.const -0.9999923706054688
+  f64.const -1
   f64.const 0
-  i32.const 0
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1849
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  f64.const 7.888609052210118e-31
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1850
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const -7.888609052210118e-31
+  f64.const -1
   f64.const 0
-  i32.const 0
-  call $std/math/test_log10
+  global.get $std/math/INEXACT
+  call $std/math/test_floor
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1851
+   i32.const 1640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  f32.const nan:0x400000
+  f32.const -9
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1860
+   i32.const 1649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  f32.const 0.6380137205123901
-  f32.const -0.20476758480072021
+  f32.const 4
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1861
+   i32.const 1650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  f32.const nan:0x400000
+  f32.const -9
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1862
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  f32.const nan:0x400000
+  f32.const -7
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1863
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  f32.const 0.9669418334960938
-  f32.const -0.34273025393486023
+  f32.const 9
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1864
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  f32.const -0.1791512817144394
-  f32.const -0.27078554034233093
+  f32.const 0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1865
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  f32.const nan:0x400000
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1866
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  f32.const -0.25044935941696167
-  f32.const 0.2126826047897339
+  f32.const 0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1867
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  f32.const -0.1111735999584198
-  f32.const 0.46515095233917236
+  f32.const 0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1868
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  f32.const nan:0x400000
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1869
+   i32.const 1658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log10f
+  i32.const 0
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1872
+   i32.const 1661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
   f32.const inf
-  f32.neg
+  f32.const inf
   f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log10f
+  i32.const 0
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1873
+   i32.const 1662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const nan:0x400000
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  i32.const 0
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1874
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
+  f32.const 0
   f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1875
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
+  f32.const -0
+  f32.const -0
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  i32.const 0
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1876
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
+  f32.const 1
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_log10f
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1877
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log10f
+  i32.const 0
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1878
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const 0.5
   f32.const 0
-  i32.const 0
-  call $std/math/test_log10f
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1879
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1p
+  f32.const -0.5
+  f32.const -1
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1891
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 1.6762064170601734
-  f64.const 0.46188199520111084
+  f32.const 1.0000152587890625
+  f32.const 1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1892
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1p
+  f32.const -1.0000152587890625
+  f32.const -2
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1893
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1p
+  f32.const 0.9999923706054688
+  f32.const 0
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1894
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 2.3289404168523826
-  f64.const -0.411114901304245
+  f32.const -0.9999923706054688
+  f32.const -1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1895
+   i32.const 1673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 0.5080132114992477
-  f64.const -0.29306045174598694
+  f32.const 7.888609052210118e-31
+  f32.const 0
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1896
+   i32.const 1674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0.5218931811663979
-  f64.const -0.25825726985931396
+  f32.const -7.888609052210118e-31
+  f32.const -1
+  f32.const 0
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_floorf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1897
+   i32.const 1675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 0.4458132279488102
-  f64.const -0.13274887204170227
+  f64.const -8.06684839057968
+  f64.const 4.535662560676869
+  f64.const 9.25452742288464
+  f64.const -0.31188681721687317
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1898
+   i32.const 1689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 0.5733227294648414
-  f64.const 0.02716583013534546
+  f64.const 4.345239849338305
+  f64.const -8.88799136300345
+  f64.const 9.893305808328252
+  f64.const 0.4593673348426819
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1899
+   i32.const 1690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -1.1355782978128564
-  f64.const 0.2713092863559723
+  f64.const -8.38143342755525
+  f64.const -2.763607337379588
+  f64.const 8.825301797432132
+  f64.const -0.1701754331588745
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1900
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_log1p
+  f64.const -6.531673581913484
+  f64.const 4.567535276842744
+  f64.const 7.970265885519092
+  f64.const -0.3176782727241516
+  global.get $std/math/INEXACT
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1903
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_log1p
+  f64.const 9.267056966972586
+  f64.const 4.811392084359796
+  f64.const 10.441639651824575
+  f64.const -0.2693633437156677
+  global.get $std/math/INEXACT
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1904
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const -7.888609052210118e-31
-  f64.const 1.7763568394002505e-15
+  f64.const -6.450045556060236
+  f64.const 0.6620717923376739
+  f64.const 6.483936052542593
+  f64.const 0.35618898272514343
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1905
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0.6931471805599453
-  f64.const -0.2088811695575714
+  f64.const 7.858890253041697
+  f64.const 0.05215452675006225
+  f64.const 7.859063309581766
+  f64.const 0.08044655621051788
   global.get $std/math/INEXACT
-  call $std/math/test_log1p
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1906
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.neg
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log1p
+  f64.const -0.792054511984896
+  f64.const 7.67640268511754
+  f64.const 7.717156764899584
+  f64.const 0.05178084969520569
+  global.get $std/math/INEXACT
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1907
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_log1p
+  f64.const 0.615702673197924
+  f64.const 2.0119025790324803
+  f64.const 2.104006123874314
+  f64.const -0.0918039008975029
+  global.get $std/math/INEXACT
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1908
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1p
+  f64.const -0.5587586823609152
+  f64.const 0.03223983060263804
+  f64.const 0.5596880129062913
+  f64.const 0.1383407711982727
+  global.get $std/math/INEXACT
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1909
+   i32.const 1698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const 3
+  f64.const 4
+  f64.const 5
   f64.const 0
   i32.const 0
-  call $std/math/test_log1p
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1910
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.066848754882812
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1pf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 1919
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 4.345239639282227
-  f32.const 1.676206350326538
-  f32.const -0.23014859855175018
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1920
+   i32.const 1701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1921
+   i32.const 1702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1922
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 2.3289403915405273
-  f32.const -0.29075589776039124
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1923
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const 0.5080131888389587
-  f32.const -0.1386766880750656
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1924
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0.5218932032585144
-  f32.const -0.08804433047771454
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1925
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const 0.44581323862075806
-  f32.const -0.15101368725299835
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1926
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const 0.5733227133750916
-  f32.const -0.10264533013105392
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1927
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -1.1355782747268677
-  f32.const -0.19879481196403503
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1928
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.const 1
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_log1pf
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1931
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 0
+  f64.const 1
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_log1pf
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1932
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -7.888609052210118e-31
-  f32.const 3.308722450212111e-24
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1933
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0.6931471824645996
-  f32.const 0.031954795122146606
-  global.get $std/math/INEXACT
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1934
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.neg
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1935
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_log1pf
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1936
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1937
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_log1pf
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1938
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.1754942106924411e-38
-  f32.const -1.1754942106924411e-38
-  f32.const 4.930380657631324e-32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
-  call $std/math/test_log1pf
+  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 32
-   i32.const 1939
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
+  f64.const 1
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  i32.const 0
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1951
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 2.1194358133804485
-  f64.const -0.10164877772331238
-  global.get $std/math/INEXACT
-  call $std/math/test_log2
+  f64.const nan:0x8000000000000
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  i32.const 0
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1952
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
+  f64.const 0
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  i32.const 0
+  call $std/math/test_hypot
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1953
+   i32.const 1721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  f32.const -8.066848754882812
+  f32.const 4.535662651062012
+  f32.const 9.254528045654297
+  f32.const 0.2735958993434906
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1954
+   i32.const 1730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 3.2121112403298744
-  f64.const -0.15739446878433228
+  f32.const 4.345239639282227
+  f32.const -8.887990951538086
+  f32.const 9.893305778503418
+  f32.const 0.4530770778656006
   global.get $std/math/INEXACT
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1955
+   i32.const 1731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const -0.5951276104207402
-  f64.const 0.3321485221385956
+  f32.const -8.381433486938477
+  f32.const -2.7636072635650635
+  f32.const 8.825302124023438
+  f32.const 0.30755728483200073
   global.get $std/math/INEXACT
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1956
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  f32.const -6.531673431396484
+  f32.const 4.567535400390625
+  f32.const 7.970265865325928
+  f32.const 0.06785223633050919
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1957
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const -0.8319748453044644
-  f64.const 0.057555437088012695
+  f32.const 9.267057418823242
+  f32.const 4.811392307281494
+  f32.const 10.44163990020752
+  f32.const -0.26776307821273804
   global.get $std/math/INEXACT
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1958
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const -0.36931068365537134
-  f64.const -0.19838279485702515
+  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
+  f32.const 6.483936309814453
+  f32.const 0.48381292819976807
   global.get $std/math/INEXACT
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1959
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  f32.const 7.858890056610107
+  f32.const 0.052154526114463806
+  f32.const 7.859063148498535
+  f32.const 0.07413065433502197
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1960
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log2
+  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
+  f32.const 7.717156887054443
+  f32.const 0.4940592646598816
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1963
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.neg
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log2
+  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
+  f32.const 2.104006052017212
+  f32.const -0.287089467048645
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1964
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
+  f32.const 0.5596880316734314
+  f32.const 0.4191940724849701
+  global.get $std/math/INEXACT
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1965
+   i32.const 1739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const 0
+  f32.const 3
+  f32.const 4
+  f32.const 5
+  f32.const 0
   i32.const 0
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1966
+   i32.const 1742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  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 32
-   i32.const 1967
+   i32.const 1743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
+  f32.const 4
+  f32.const 3
+  f32.const 5
+  f32.const 0
   i32.const 0
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1968
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2
+  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 32
-   i32.const 1969
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -3
+  f32.const -4
+  f32.const 5
+  f32.const 0
   i32.const 0
-  call $std/math/test_log2
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1970
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const nan:0x400000
+  f32.const 3402823466385288598117041e14
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  f32.const 3402823466385288598117041e14
+  f32.const 0
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1979
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 2.1194357872009277
-  f32.const 0.18271538615226746
-  global.get $std/math/INEXACT
-  call $std/math/test_log2f
+  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 32
-   i32.const 1980
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const nan:0x400000
+  f32.const 1.401298464324817e-45
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  f32.const 1.401298464324817e-45
+  f32.const 0
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1981
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const nan:0x400000
+  f32.const 1.401298464324817e-45
+  f32.const -0
+  f32.const 1.401298464324817e-45
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1982
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 3.212111234664917
-  f32.const -0.3188050389289856
-  global.get $std/math/INEXACT
-  call $std/math/test_log2f
+  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 32
-   i32.const 1983
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
-  f32.const -0.5951276421546936
-  f32.const 0.34231460094451904
-  global.get $std/math/INEXACT
-  call $std/math/test_log2f
+  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 32
-   i32.const 1984
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
+  f32.const inf
   f32.const nan:0x400000
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1985
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
-  f32.const -0.8319748044013977
-  f32.const -0.33473604917526245
-  global.get $std/math/INEXACT
-  call $std/math/test_log2f
+  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 32
-   i32.const 1986
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
-  f32.const -0.3693107068538666
-  f32.const 0.3278401792049408
-  global.get $std/math/INEXACT
-  call $std/math/test_log2f
+  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 32
-   i32.const 1987
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const nan:0x400000
+  f32.const 1
+  f32.const inf
+  f32.neg
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1988
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const inf
   f32.neg
+  f32.const nan:0x400000
+  f32.const inf
   f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1991
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
+  f32.const nan:0x400000
   f32.const inf
   f32.neg
+  f32.const inf
   f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1992
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
+  f32.const nan:0x400000
+  f32.const 1
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_log2f
+  i32.const 0
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1993
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  f32.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_log2f
+  call $std/math/test_hypotf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1994
+   i32.const 1760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_log2f
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1995
+   i32.const 1772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_log2f
+  f64.const 4.345239849338305
+  f64.const 1.4690809584224322
+  f64.const -0.3412533402442932
+  global.get $std/math/INEXACT
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1996
+   i32.const 1773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -8.38143342755525
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_log2f
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1997
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_log2f
+  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 1998
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/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
+  f64.const 9.267056966972586
+  f64.const 2.2264658498795615
+  f64.const 0.3638114035129547
+  global.get $std/math/INEXACT
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2010
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  f64.const 4.345239849338305
+  f64.const 0.6619858980995045
+  f64.const -0.4125110252365137
+  f64.const -0.29108747839927673
+  global.get $std/math/INEXACT
+  call $std/math/test_log
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 1777
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const -0.4066039223853553
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2011
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5617597462207241
+  f64.const -0.5766810183195862
+  f64.const -0.10983199626207352
+  global.get $std/math/INEXACT
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2012
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.7741522965913037
+  f64.const -0.2559866591263865
+  f64.const -0.057990044355392456
+  global.get $std/math/INEXACT
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2013
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  f64.const 9.267056966972586
+  f64.const -0.6787637026394024
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2014
+   i32.const 1781
    i32.const 1
    call $~lib/builtins/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
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2015
+   i32.const 1784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  f64.const 7.858890253041697
+  f64.const -0
+  f64.const inf
+  f64.neg
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2016
+   i32.const 1785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  f64.const 7.67640268511754
+  f64.const -7.888609052210118e-31
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2017
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  f64.const 2.0119025790324803
+  f64.const 1
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2018
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
-  f64.const 0.03223983060263804
+  f64.const -1
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2019
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 1
+  f64.const inf
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2022
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2023
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 1
-  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2024
+   i32.const 1791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2025
+   i32.const 1800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2026
+   i32.const 1801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -7.888609052210118e-31
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2027
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1
-  f64.const inf
-  f64.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2028
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/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
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2029
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2030
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -1
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2031
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -1
-  f64.const -0
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2032
+   i32.const 1807
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2033
+   i32.const 1810
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2034
+   i32.const 1811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -1
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -7.888609052210118e-31
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2035
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  f64.const -1
-  f64.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2036
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -1
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2037
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  f64.const -1
-  f64.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2038
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/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
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2039
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_logf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2040
+   i32.const 1817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
   f64.const 0
-  f64.const -0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2041
+   i32.const 1829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f64.const 4.345239849338305
+  f64.const 0.6380137537120029
+  f64.const -0.2088824063539505
+  global.get $std/math/INEXACT
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2042
+   i32.const 1830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -8.38143342755525
+  f64.const nan:0x8000000000000
   f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2043
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const nan:0x8000000000000
+  f64.const -6.531673581913484
   f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2044
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f64.const 9.267056966972586
+  f64.const 0.9669418327487274
+  f64.const -0.06120431795716286
+  global.get $std/math/INEXACT
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2045
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f64.const 0.6619858980995045
+  f64.const -0.17915126198447093
+  f64.const 0.39090874791145325
+  global.get $std/math/INEXACT
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2046
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.const inf
+  f64.const -0.4066039223853553
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2047
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5617597462207241
+  f64.const -0.25044938407454437
+  f64.const -0.3046841621398926
+  global.get $std/math/INEXACT
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2048
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.7741522965913037
+  f64.const -0.11117359349943837
+  f64.const -0.31503361463546753
+  global.get $std/math/INEXACT
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2049
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const 1
+  f64.const -0.6787637026394024
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2050
+   i32.const 1838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0
   f64.const 0
+  f64.const inf
+  f64.neg
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2051
+   i32.const 1841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const -0
   f64.const inf
+  f64.neg
   f64.const 0
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2052
+   i32.const 1842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 0
+  f64.const -7.888609052210118e-31
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2053
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
+  f64.const 1
   f64.const 0
-  f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2054
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  f64.const -0
-  f64.const -0
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2055
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  f64.const -0
   f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2056
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.neg
-  f64.const -0
-  f64.const -0
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2057
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/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
+  call $std/math/test_log10
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2058
+   i32.const 1848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 2
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -8.066848754882812
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2059
+   i32.const 1857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -0.5
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const 4.345239639282227
+  f32.const 0.6380137205123901
+  f32.const -0.20476758480072021
+  global.get $std/math/INEXACT
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2060
+   i32.const 1858
    i32.const 1
    call $~lib/builtins/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
+  f32.const -8.381433486938477
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2061
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/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
+  f32.const -6.531673431396484
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2062
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/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
+  f32.const 9.267057418823242
+  f32.const 0.9669418334960938
+  f32.const -0.34273025393486023
+  global.get $std/math/INEXACT
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2063
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0.6619858741760254
+  f32.const -0.1791512817144394
+  f32.const -0.27078554034233093
+  global.get $std/math/INEXACT
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2064
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0.40660393238067627
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2065
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0.5617597699165344
+  f32.const -0.25044935941696167
+  f32.const 0.2126826047897339
+  global.get $std/math/INEXACT
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2066
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0.7741522789001465
+  f32.const -0.1111735999584198
+  f32.const 0.46515095233917236
+  global.get $std/math/INEXACT
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2067
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -0.6787636876106262
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2068
+   i32.const 1866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2069
+   i32.const 1869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const inf
-  f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2070
+   i32.const 1870
    i32.const 1
    call $~lib/builtins/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
+  f32.const -7.888609052210118e-31
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2071
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.neg
-  f64.const 1
-  f64.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2072
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/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
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2073
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.const 0
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2074
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/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
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2075
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.75
-  f64.const 0.5
-  f64.const 1.75
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_max
+  call $std/math/test_log10f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2076
+   i32.const 1876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.75
-  f64.const 0.5
-  f64.const 0.5
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2077
+   i32.const 1888
    i32.const 1
    call $~lib/builtins/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
+  f64.const 4.345239849338305
+  f64.const 1.6762064170601734
+  f64.const 0.46188199520111084
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2078
+   i32.const 1889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.75
-  f64.const -0.5
-  f64.const -0.5
+  f64.const -8.38143342755525
+  f64.const nan:0x8000000000000
   f64.const 0
-  i32.const 0
-  call $std/math/test_max
+  global.get $std/math/INVALID
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2079
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/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
+  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2088
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/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
+  f64.const 9.267056966972586
+  f64.const 2.3289404168523826
+  f64.const -0.411114901304245
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2089
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.6619858980995045
+  f64.const 0.5080132114992477
+  f64.const -0.29306045174598694
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2090
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.4066039223853553
+  f64.const -0.5218931811663979
+  f64.const -0.25825726985931396
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2091
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5617597462207241
+  f64.const 0.4458132279488102
+  f64.const -0.13274887204170227
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2092
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.7741522965913037
+  f64.const 0.5733227294648414
+  f64.const 0.02716583013534546
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2093
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.6787637026394024
+  f64.const -1.1355782978128564
+  f64.const 0.2713092863559723
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2094
+   i32.const 1897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
-  f32.const 7.676402568817139
-  f32.const 0
+  f64.const 0
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2095
+   i32.const 1900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  f32.const 2.0119025707244873
-  f32.const 0
+  f64.const -0
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2096
+   i32.const 1901
    i32.const 1
    call $~lib/builtins/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
+  f64.const -7.888609052210118e-31
+  f64.const -7.888609052210118e-31
+  f64.const 1.7763568394002505e-15
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2097
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const 1
+  f64.const 0.6931471805599453
+  f64.const -0.2088811695575714
+  global.get $std/math/INEXACT
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2100
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const -1
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2101
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 1
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2102
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2103
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 1
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1p
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2104
+   i32.const 1907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 1
-  f32.const 1
+  f32.const -8.066848754882812
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2105
+   i32.const 1916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 4.345239639282227
+  f32.const 1.676206350326538
+  f32.const -0.23014859855175018
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2106
+   i32.const 1917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const 1
+  f32.const -8.381433486938477
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2107
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 1
+  f32.const -6.531673431396484
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2108
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -1
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 9.267057418823242
+  f32.const 2.3289403915405273
+  f32.const -0.29075589776039124
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2109
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 0.6619858741760254
+  f32.const 0.5080131888389587
+  f32.const -0.1386766880750656
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2110
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0.40660393238067627
+  f32.const -0.5218932032585144
+  f32.const -0.08804433047771454
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2111
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0.5617597699165344
+  f32.const 0.44581323862075806
+  f32.const -0.15101368725299835
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2112
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -1
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 0.7741522789001465
+  f32.const 0.5733227133750916
+  f32.const -0.10264533013105392
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2113
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const -0.6787636876106262
+  f32.const -1.1355782747268677
+  f32.const -0.19879481196403503
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2114
+   i32.const 1925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -1
-  f32.const inf
+  f32.const 0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2115
+   i32.const 1928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1
-  f32.const -1
+  f32.const -0
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2116
+   i32.const 1929
    i32.const 1
    call $~lib/builtins/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
+  f32.const -7.888609052210118e-31
+  f32.const -7.888609052210118e-31
+  f32.const 3.308722450212111e-24
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2117
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 1
+  f32.const 0.6931471824645996
+  f32.const 0.031954795122146606
+  global.get $std/math/INEXACT
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2118
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const -1
+  f32.const inf
+  f32.neg
   f32.const 0
-  f32.const -0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2119
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const inf
   f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2120
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const inf
   f32.neg
+  f32.const nan:0x400000
   f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2121
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/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
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2122
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const -1.1754942106924411e-38
+  f32.const -1.1754942106924411e-38
+  f32.const 4.930380657631324e-32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_log1pf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2123
+   i32.const 1936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const -8.06684839057968
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2124
+   i32.const 1948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const 4.345239849338305
+  f64.const 2.1194358133804485
+  f64.const -0.10164877772331238
+  global.get $std/math/INEXACT
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2125
+   i32.const 1949
    i32.const 1
    call $~lib/builtins/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
+  f64.const -8.38143342755525
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2126
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/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
+  f64.const -6.531673581913484
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2127
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const 9.267056966972586
+  f64.const 3.2121112403298744
+  f64.const -0.15739446878433228
+  global.get $std/math/INEXACT
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2128
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const 0.6619858980995045
+  f64.const -0.5951276104207402
+  f64.const 0.3321485221385956
+  global.get $std/math/INEXACT
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2129
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const -0.4066039223853553
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2130
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5617597462207241
+  f64.const -0.8319748453044644
+  f64.const 0.057555437088012695
+  global.get $std/math/INEXACT
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2131
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.7741522965913037
+  f64.const -0.36931068365537134
+  f64.const -0.19838279485702515
+  global.get $std/math/INEXACT
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2132
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const -0.6787637026394024
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2133
+   i32.const 1957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2134
+   i32.const 1960
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2135
+   i32.const 1961
    i32.const 1
    call $~lib/builtins/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
+  f64.const -7.888609052210118e-31
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2136
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 2
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2137
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0.5
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f64.const -1
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2138
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2139
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/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
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2140
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0.5
-  f32.const -0.5
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2141
+   i32.const 1967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
+  f32.const -8.066848754882812
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2142
+   i32.const 1976
    i32.const 1
    call $~lib/builtins/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
+  f32.const 4.345239639282227
+  f32.const 2.1194357872009277
+  f32.const 0.18271538615226746
+  global.get $std/math/INEXACT
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2143
+   i32.const 1977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
+  f32.const -8.381433486938477
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2144
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
+  f32.const -6.531673431396484
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2145
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 9.267057418823242
+  f32.const 3.212111234664917
+  f32.const -0.3188050389289856
+  global.get $std/math/INEXACT
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2146
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  f32.const 0.6619858741760254
+  f32.const -0.5951276421546936
+  f32.const 0.34231460094451904
+  global.get $std/math/INEXACT
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2147
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const inf
+  f32.const -0.40660393238067627
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2148
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/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
+  f32.const 0.5617597699165344
+  f32.const -0.8319748044013977
+  f32.const -0.33473604917526245
+  global.get $std/math/INEXACT
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2149
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const 1
+  f32.const 0.7741522789001465
+  f32.const -0.3693107068538666
+  f32.const 0.3278401792049408
+  global.get $std/math/INEXACT
+  call $std/math/test_log2f
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 1984
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -0.6787636876106262
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2150
+   i32.const 1985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
+  f32.const 0
   f32.const inf
   f32.neg
-  f32.const -1
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2151
+   i32.const 1988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
+  f32.const -0
   f32.const inf
   f32.neg
-  f32.const inf
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2152
+   i32.const 1989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
+  f32.const -7.888609052210118e-31
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 1990
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2153
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.75
-  f32.const 0.5
-  f32.const 1.75
+  f32.const -1
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2154
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.75
-  f32.const 0.5
-  f32.const 0.5
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2155
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.75
-  f32.const -0.5
-  f32.const 1.75
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_maxf
+  global.get $std/math/INVALID
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2156
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.75
-  f32.const -0.5
-  f32.const -0.5
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_maxf
+  call $std/math/test_log2f
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2157
+   i32.const 1995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
   f64.const 4.535662560676869
-  f64.const -8.06684839057968
+  f64.const 4.535662560676869
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2169
+   i32.const 2007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
   f64.const -8.88799136300345
-  f64.const -8.88799136300345
+  f64.const 4.345239849338305
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2170
+   i32.const 2008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
   f64.const -2.763607337379588
-  f64.const -8.38143342755525
+  f64.const -2.763607337379588
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2171
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
   f64.const 4.567535276842744
-  f64.const -6.531673581913484
+  f64.const 4.567535276842744
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2172
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
   f64.const 4.811392084359796
-  f64.const 4.811392084359796
+  f64.const 9.267056966972586
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2173
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.450045556060236
   f64.const 0.6620717923376739
-  f64.const -6.450045556060236
+  f64.const 0.6620717923376739
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2174
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.858890253041697
   f64.const 0.05215452675006225
-  f64.const 0.05215452675006225
+  f64.const 7.858890253041697
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2175
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.792054511984896
   f64.const 7.67640268511754
-  f64.const -0.792054511984896
+  f64.const 7.67640268511754
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2176
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.615702673197924
   f64.const 2.0119025790324803
-  f64.const 0.615702673197924
+  f64.const 2.0119025790324803
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2177
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5587586823609152
   f64.const 0.03223983060263804
-  f64.const -0.5587586823609152
+  f64.const 0.03223983060263804
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2178
+   i32.const 2016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 1
-  f64.const 0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2181
+   i32.const 2019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 1
-  f64.const -0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2182
+   i32.const 2020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
   f64.const 1
-  f64.const 0.5
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2183
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5
   f64.const 1
-  f64.const -0.5
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2184
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36142,42 +34366,42 @@
   f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2185
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 1
-  f64.const -1
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2186
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 1
-  f64.const 1
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2187
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36185,16 +34409,15 @@
   f64.const inf
   f64.neg
   f64.const 1
-  f64.const inf
-  f64.neg
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2188
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36204,87 +34427,87 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2189
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -1
-  f64.const -1
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2190
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const -1
-  f64.const -1
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2191
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
   f64.const -1
-  f64.const -1
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2192
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5
   f64.const -1
-  f64.const -1
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2193
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const -1
-  f64.const -1
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2194
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36294,27 +34517,27 @@
   f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2195
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -1
-  f64.const -1
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2196
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36322,16 +34545,15 @@
   f64.const inf
   f64.neg
   f64.const -1
-  f64.const inf
-  f64.neg
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2197
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36341,12 +34563,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2198
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36356,42 +34578,42 @@
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2199
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -0
-  f64.const -0
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2200
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const inf
-  f64.const 0
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2201
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36399,16 +34621,15 @@
   f64.const 0
   f64.const inf
   f64.neg
-  f64.const inf
-  f64.neg
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2202
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36418,27 +34639,27 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2203
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 0
-  f64.const -0
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2204
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36448,27 +34669,27 @@
   f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2205
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const inf
-  f64.const -0
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2206
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36476,16 +34697,15 @@
   f64.const -0
   f64.const inf
   f64.neg
-  f64.const inf
-  f64.neg
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2207
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36495,57 +34715,57 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2208
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 0
-  f64.const 0
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2209
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 0
-  f64.const -1
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2210
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 0
-  f64.const 0
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2211
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36553,16 +34773,15 @@
   f64.const inf
   f64.neg
   f64.const 0
-  f64.const inf
-  f64.neg
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2212
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36572,42 +34791,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2213
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const -0
-  f64.const -1
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2214
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -0
-  f64.const -0
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2215
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36615,16 +34834,15 @@
   f64.const inf
   f64.neg
   f64.const -0
-  f64.const inf
-  f64.neg
+  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2216
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36634,42 +34852,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2217
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 2
-  f64.const 2
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2218
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -0.5
-  f64.const -0.5
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2219
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36679,12 +34897,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2220
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36692,16 +34910,15 @@
   f64.const inf
   f64.neg
   f64.const 2
-  f64.const inf
-  f64.neg
+  f64.const 2
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2221
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36709,16 +34926,15 @@
   f64.const inf
   f64.neg
   f64.const -0.5
-  f64.const inf
-  f64.neg
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2222
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36729,12 +34945,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2223
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36744,12 +34960,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2224
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36759,12 +34975,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2225
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36774,42 +34990,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2226
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const inf
-  f64.const 1
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2227
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const inf
-  f64.const -1
+  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2228
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36819,12 +35035,12 @@
   f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2229
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36833,15 +35049,14 @@
   f64.neg
   f64.const inf
   f64.const inf
-  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2230
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36849,16 +35064,15 @@
   f64.const 1
   f64.const inf
   f64.neg
-  f64.const inf
-  f64.neg
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2231
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36866,16 +35080,15 @@
   f64.const -1
   f64.const inf
   f64.neg
-  f64.const inf
-  f64.neg
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2232
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36884,15 +35097,14 @@
   f64.const inf
   f64.neg
   f64.const inf
-  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2233
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36905,282 +35117,282 @@
   f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2234
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.75
   f64.const 0.5
-  f64.const 0.5
+  f64.const 1.75
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2235
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.75
   f64.const 0.5
-  f64.const -1.75
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2236
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.75
   f64.const -0.5
-  f64.const -0.5
+  f64.const 1.75
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2237
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.75
   f64.const -0.5
-  f64.const -1.75
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_min
+  call $std/math/test_max
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2238
+   i32.const 2076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
   f32.const 4.535662651062012
-  f32.const -8.066848754882812
+  f32.const 4.535662651062012
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2247
+   i32.const 2085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
   f32.const -8.887990951538086
-  f32.const -8.887990951538086
+  f32.const 4.345239639282227
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2248
+   i32.const 2086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
   f32.const -2.7636072635650635
-  f32.const -8.381433486938477
+  f32.const -2.7636072635650635
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2249
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
   f32.const 4.567535400390625
-  f32.const -6.531673431396484
+  f32.const 4.567535400390625
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2250
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
   f32.const 4.811392307281494
-  f32.const 4.811392307281494
+  f32.const 9.267057418823242
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2251
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.450045585632324
   f32.const 0.6620717644691467
-  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2252
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.858890056610107
   f32.const 0.052154526114463806
-  f32.const 0.052154526114463806
+  f32.const 7.858890056610107
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2253
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.7920545339584351
   f32.const 7.676402568817139
-  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2254
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6157026886940002
   f32.const 2.0119025707244873
-  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2255
+   i32.const 2093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5587586760520935
   f32.const 0.03223983198404312
-  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2256
+   i32.const 2094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1
-  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2259
+   i32.const 2097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1
-  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2260
+   i32.const 2098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const 1
-  f32.const 0.5
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2261
+   i32.const 2099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 1
-  f32.const -0.5
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2262
+   i32.const 2100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37190,42 +35402,42 @@
   f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2263
+   i32.const 2101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 1
-  f32.const -1
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2264
+   i32.const 2102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 1
-  f32.const 1
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2265
+   i32.const 2103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37233,16 +35445,15 @@
   f32.const inf
   f32.neg
   f32.const 1
-  f32.const inf
-  f32.neg
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2266
+   i32.const 2104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37252,87 +35463,87 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2267
+   i32.const 2105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -1
-  f32.const -1
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2268
+   i32.const 2106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1
-  f32.const -1
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2269
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const -1
-  f32.const -1
+  f32.const 0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2270
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const -1
-  f32.const -1
+  f32.const -0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2271
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -1
-  f32.const -1
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2272
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37342,27 +35553,27 @@
   f32.const -1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2273
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -1
-  f32.const -1
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2274
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37370,16 +35581,15 @@
   f32.const inf
   f32.neg
   f32.const -1
-  f32.const inf
-  f32.neg
+  f32.const -1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2275
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37389,12 +35599,12 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2276
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37404,42 +35614,42 @@
   f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2277
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -0
-  f32.const -0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2278
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const inf
-  f32.const 0
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2279
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37447,16 +35657,15 @@
   f32.const 0
   f32.const inf
   f32.neg
-  f32.const inf
-  f32.neg
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2280
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37466,27 +35675,27 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2281
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 0
-  f32.const -0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2282
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37496,27 +35705,27 @@
   f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2283
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const inf
-  f32.const -0
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2284
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37524,16 +35733,15 @@
   f32.const -0
   f32.const inf
   f32.neg
-  f32.const inf
-  f32.neg
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2285
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37543,57 +35751,57 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2286
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 0
-  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2287
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 0
-  f32.const -1
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2288
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0
-  f32.const 0
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2289
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37601,16 +35809,15 @@
   f32.const inf
   f32.neg
   f32.const 0
-  f32.const inf
-  f32.neg
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2290
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37620,42 +35827,42 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2291
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -0
-  f32.const -1
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2292
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0
-  f32.const -0
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2293
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37663,16 +35870,15 @@
   f32.const inf
   f32.neg
   f32.const -0
-  f32.const inf
-  f32.neg
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2294
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37682,42 +35888,42 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2295
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 2
-  f32.const 2
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2296
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0.5
-  f32.const -0.5
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2297
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37727,12 +35933,12 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2298
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37740,16 +35946,15 @@
   f32.const inf
   f32.neg
   f32.const 2
-  f32.const inf
-  f32.neg
+  f32.const 2
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2299
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37757,16 +35962,15 @@
   f32.const inf
   f32.neg
   f32.const -0.5
-  f32.const inf
-  f32.neg
+  f32.const -0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2300
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37777,12 +35981,12 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2301
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37792,12 +35996,12 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2302
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37807,12 +36011,12 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2303
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37822,42 +36026,42 @@
   f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2304
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const inf
-  f32.const 1
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2305
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const inf
-  f32.const -1
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2306
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37867,12 +36071,12 @@
   f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2307
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37881,15 +36085,14 @@
   f32.neg
   f32.const inf
   f32.const inf
-  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2308
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37897,16 +36100,15 @@
   f32.const 1
   f32.const inf
   f32.neg
-  f32.const inf
-  f32.neg
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2309
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37914,16 +36116,15 @@
   f32.const -1
   f32.const inf
   f32.neg
-  f32.const inf
-  f32.neg
+  f32.const -1
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2310
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37932,15 +36133,14 @@
   f32.const inf
   f32.neg
   f32.const inf
-  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2311
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37953,177 +36153,177 @@
   f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2312
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.75
   f32.const 0.5
-  f32.const 0.5
+  f32.const 1.75
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2313
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.75
   f32.const 0.5
-  f32.const -1.75
+  f32.const 0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2314
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.75
   f32.const -0.5
-  f32.const -0.5
+  f32.const 1.75
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2315
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.75
   f32.const -0.5
-  f32.const -1.75
+  f32.const -0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_minf
+  call $std/math/test_maxf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2316
+   i32.const 2154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
   f64.const 4.535662560676869
-  f64.const -3.531185829902812
+  f64.const -8.06684839057968
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2330
+   i32.const 2166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
   f64.const -8.88799136300345
-  f64.const 4.345239849338305
+  f64.const -8.88799136300345
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2331
+   i32.const 2167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
   f64.const -2.763607337379588
-  f64.const -0.09061141541648476
+  f64.const -8.38143342755525
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2332
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
   f64.const 4.567535276842744
-  f64.const -1.9641383050707404
+  f64.const -6.531673581913484
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2333
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
   f64.const 4.811392084359796
-  f64.const 4.45566488261279
+  f64.const 4.811392084359796
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2334
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.450045556060236
   f64.const 0.6620717923376739
-  f64.const -0.4913994250211714
+  f64.const -6.450045556060236
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2335
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.858890253041697
   f64.const 0.05215452675006225
-  f64.const 0.035711240532359426
+  f64.const 0.05215452675006225
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2336
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38133,12 +36333,12 @@
   f64.const -0.792054511984896
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2337
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38148,27 +36348,27 @@
   f64.const 0.615702673197924
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2338
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5587586823609152
   f64.const 0.03223983060263804
-  f64.const -0.0106815621160685
+  f64.const -0.5587586823609152
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2339
+   i32.const 2175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38178,12 +36378,12 @@
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2342
+   i32.const 2178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38193,12 +36393,12 @@
   f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2343
+   i32.const 2179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38208,12 +36408,12 @@
   f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2344
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38223,133 +36423,74 @@
   f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2345
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 2346
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 2347
-   i32.const 1
-   call $~lib/builtins/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
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2348
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.5
+  f64.const -1
   f64.const 1
-  f64.const -0.5
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2349
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
+  f64.const inf
   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 32
-   i32.const 2350
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -2
   f64.const 1
-  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2351
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
+  f64.neg
   f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2352
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f64.const inf
   f64.neg
-  f64.const 1
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2353
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38359,177 +36500,117 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2354
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 2355
-   i32.const 1
-   call $~lib/builtins/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 32
-   i32.const 2356
-   i32.const 1
-   call $~lib/builtins/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
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2357
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
+  f64.const -0
   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 32
-   i32.const 2358
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
   f64.const -1
   f64.const 0
-  f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2359
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 0.5
   f64.const -1
   f64.const -1
-  f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2360
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
+  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 32
-   i32.const 2361
-   i32.const 1
-   call $~lib/builtins/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
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2362
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
+  f64.const 1
+  f64.const -1
   f64.const -1
-  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2363
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
   f64.const -1
-  f64.const -0
+  f64.const -1
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2364
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -1
-  f64.const nan:0x8000000000000
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2365
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38537,15 +36618,16 @@
   f64.const inf
   f64.neg
   f64.const -1
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2366
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38555,42 +36637,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2367
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 0
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  f64.const 0
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2368
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -0
-  f64.const nan:0x8000000000000
+  f64.const -0
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2369
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38600,12 +36682,12 @@
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2370
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38613,15 +36695,16 @@
   f64.const 0
   f64.const inf
   f64.neg
-  f64.const 0
+  f64.const inf
+  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2371
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38631,42 +36714,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2372
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 0
-  f64.const nan:0x8000000000000
+  f64.const -0
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2373
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const -0
-  f64.const nan:0x8000000000000
+  f64.const -0
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2374
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38676,12 +36759,12 @@
   f64.const -0
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2375
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38689,15 +36772,16 @@
   f64.const -0
   f64.const inf
   f64.neg
-  f64.const -0
+  f64.const inf
+  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2376
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38707,57 +36791,57 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2377
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 0
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  f64.const 0
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2378
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 0
-  f64.const nan:0x8000000000000
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2379
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 0
-  f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  f64.const 0
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2380
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38765,15 +36849,16 @@
   f64.const inf
   f64.neg
   f64.const 0
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2381
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38783,42 +36868,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2382
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const -0
-  f64.const nan:0x8000000000000
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2383
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -0
-  f64.const nan:0x8000000000000
+  f64.const -0
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2384
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38826,15 +36911,16 @@
   f64.const inf
   f64.neg
   f64.const -0
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2385
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38844,42 +36930,42 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2386
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 2
-  f64.const nan:0x8000000000000
+  f64.const 2
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2387
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -0.5
-  f64.const nan:0x8000000000000
+  f64.const -0.5
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2388
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38889,12 +36975,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2389
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38902,15 +36988,16 @@
   f64.const inf
   f64.neg
   f64.const 2
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2390
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38918,15 +37005,16 @@
   f64.const inf
   f64.neg
   f64.const -0.5
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2391
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38937,12 +37025,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2392
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38952,12 +37040,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2393
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38967,12 +37055,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2394
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38982,12 +37070,12 @@
   f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2395
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38997,12 +37085,12 @@
   f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2396
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39012,27 +37100,27 @@
   f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2397
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const inf
-  f64.const nan:0x8000000000000
+  f64.const inf
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2398
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39040,15 +37128,16 @@
   f64.const inf
   f64.neg
   f64.const inf
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2399
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39056,15 +37145,16 @@
   f64.const 1
   f64.const inf
   f64.neg
-  f64.const 1
+  f64.const inf
+  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2400
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39072,15 +37162,16 @@
   f64.const -1
   f64.const inf
   f64.neg
-  f64.const -1
+  f64.const inf
+  f64.neg
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2401
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39088,15 +37179,16 @@
   f64.const inf
   f64.const inf
   f64.neg
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2402
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39105,7079 +37197,7465 @@
   f64.neg
   f64.const inf
   f64.neg
-  f64.const nan:0x8000000000000
+  f64.const inf
+  f64.neg
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_mod
+  i32.const 0
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2403
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.75
   f64.const 0.5
-  f64.const 0.25
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2404
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.75
   f64.const 0.5
-  f64.const -0.25
+  f64.const -1.75
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2405
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.75
   f64.const -0.5
-  f64.const 0.25
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2406
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/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 32
-   i32.const 2407
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2410
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2411
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2412
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2413
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2414
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2415
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2416
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2417
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 0
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2420
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 0
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2421
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 0
-  f64.reinterpret_i64
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_mod
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 2422
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  i64.const 0
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  f64.const 0
+  f64.const -1.75
   f64.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_min
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2423
+   i32.const 2235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
-  end
-  i64.const -9223372036854775808
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
+  end
+  f32.const -8.066848754882812
+  f32.const 4.535662651062012
+  f32.const -8.066848754882812
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2424
+   i32.const 2244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9223372036854775808
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
+  f32.const 4.345239639282227
+  f32.const -8.887990951538086
+  f32.const -8.887990951538086
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2425
+   i32.const 2245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9223372036854775808
-  f64.reinterpret_i64
-  i64.const -9218868437227405312
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
+  f32.const -8.381433486938477
+  f32.const -2.7636072635650635
+  f32.const -8.381433486938477
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2426
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9223372036854775808
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  f64.const -0
-  f64.const 0
+  f32.const -6.531673431396484
+  f32.const 4.567535400390625
+  f32.const -6.531673431396484
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2427
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const 9218868437227405310
-  f64.reinterpret_i64
-  i64.const 8980177656976769024
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 9.267057418823242
+  f32.const 4.811392307281494
+  f32.const 4.811392307281494
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2430
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const 9218868437227405310
-  f64.reinterpret_i64
-  i64.const -243194379878006784
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
+  f32.const -6.450045585632324
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2431
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const -9007199254740992
-  f64.reinterpret_i64
-  i64.const 9214364837600034814
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 7.858890056610107
+  f32.const 0.052154526114463806
+  f32.const 0.052154526114463806
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2433
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const -9007199254740992
-  f64.reinterpret_i64
-  i64.const -9007199254740994
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
+  f32.const -0.7920545339584351
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2434
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  i64.const 0
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
+  f32.const 0.6157026886940002
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2436
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  i64.const -9223372036854775808
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
+  f32.const -0.5587586760520935
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2437
+   i32.const 2253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const -9007199254740994
-  f64.reinterpret_i64
-  i64.const 8980177656976769024
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2439
+   i32.const 2256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const -9007199254740994
-  f64.reinterpret_i64
-  i64.const -243194379878006784
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const 1
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2440
+   i32.const 2257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9214364837600034816
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const 9214364837600034816
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0.5
+  f32.const 1
+  f32.const 0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2442
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9007199254740992
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const -9007199254740992
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0.5
+  f32.const 1
+  f32.const -0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2443
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 1
+  f32.const 1
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2445
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9007199254740993
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const -9007199254740993
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -1
+  f32.const 1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2446
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9214364837600034814
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const 9214364837600034814
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const 1
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2448
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -9007199254740994
-  f64.reinterpret_i64
-  i64.const 9218868437227405311
-  f64.reinterpret_i64
-  i64.const -9007199254740994
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const 1
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2449
+   i32.const 2263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405310
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const 9218868437227405310
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2451
+   i32.const 2264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370498
-  f64.reinterpret_i64
-  i64.const -4503599627370497
-  f64.reinterpret_i64
-  i64.const -4503599627370498
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2452
+   i32.const 2265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9218868437227405310
-  f64.reinterpret_i64
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  i64.const 9214364837600034813
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2454
+   i32.const 2266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4503599627370498
-  f64.reinterpret_i64
-  i64.const 9214364837600034815
-  f64.reinterpret_i64
-  i64.const -9007199254740995
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0.5
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2455
+   i32.const 2267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4620130267728707584
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const 0.5
-  f64.const 0
+  f32.const -0.5
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2457
+   i32.const 2268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4619004367821864960
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const 0.5
-  f64.const 0
+  f32.const 1
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2458
+   i32.const 2269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4617878467915022336
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const 0.5
-  f64.const 0
+  f32.const -1
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2459
+   i32.const 2270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4616752568008179712
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const 0.5
-  f64.const 0
+  f32.const inf
+  f32.const -1
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2460
+   i32.const 2271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4603241769126068224
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const -0.5
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const -1
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2461
+   i32.const 2272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4604367669032910848
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const -0.5
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2462
+   i32.const 2273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4605493568939753472
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const -0.5
-  f64.const 0
+  f32.const 0
+  f32.const 0
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2463
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const -4606619468846596096
-  f64.reinterpret_i64
-  f64.const 1
-  f64.const -0.5
-  f64.const 0
+  f32.const 0
+  f32.const -0
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2464
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370492
-  f64.reinterpret_i64
-  i64.const 4503599627370494
-  f64.reinterpret_i64
-  i64.const 4503599627370492
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2466
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370492
-  f64.reinterpret_i64
-  i64.const -9218868437227405314
-  f64.reinterpret_i64
-  i64.const 4503599627370492
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2467
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  i64.const 3
-  f64.reinterpret_i64
-  i64.const 0
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2468
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  i64.const 9007199254740991
-  f64.reinterpret_i64
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const 0
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2469
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  i64.const 9218868437227405312
-  f64.reinterpret_i64
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const -0
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2470
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370495
-  f64.reinterpret_i64
-  i64.const -9223372036854775805
-  f64.reinterpret_i64
-  i64.const 0
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const inf
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2471
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const 3
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2472
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const 4503599627370494
-  f64.reinterpret_i64
-  i64.const 2
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2473
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const 9007199254740991
-  f64.reinterpret_i64
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2474
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370496
-  f64.reinterpret_i64
-  i64.const -9223372036854775805
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -1
+  f32.const 0
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2475
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370497
-  f64.reinterpret_i64
-  i64.const 4503599627370494
-  f64.reinterpret_i64
-  i64.const 3
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const 0
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2476
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370498
-  f64.reinterpret_i64
-  i64.const 3
-  f64.reinterpret_i64
-  i64.const 0
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2477
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370498
-  f64.reinterpret_i64
-  i64.const -9223372036854775805
-  f64.reinterpret_i64
-  i64.const 0
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2478
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370499
-  f64.reinterpret_i64
-  i64.const 3
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const -1
+  f32.const -0
+  f32.const -1
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2479
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370499
-  f64.reinterpret_i64
-  i64.const 4503599627370501
-  f64.reinterpret_i64
-  i64.const 4503599627370499
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const -0
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2480
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370499
-  f64.reinterpret_i64
-  i64.const -9223372036854775805
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2481
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370500
-  f64.reinterpret_i64
-  i64.const 4503599627370501
-  f64.reinterpret_i64
-  i64.const 4503599627370500
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2482
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 4503599627370502
-  f64.reinterpret_i64
-  i64.const 4503599627370501
-  f64.reinterpret_i64
-  i64.const 1
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const 2
+  f32.const 2
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2483
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 9007199254740991
-  f64.reinterpret_i64
-  i64.const 9007199254740992
-  f64.reinterpret_i64
-  i64.const 9007199254740991
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const -0.5
+  f32.const -0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2484
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i64.const 45035996273704959
-  f64.reinterpret_i64
-  i64.const 40532396646334464
-  f64.reinterpret_i64
-  i64.const 40532396646334462
-  f64.reinterpret_i64
-  f64.const 0
+  f32.const inf
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_mod
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2485
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 4.535662651062012
-  f32.const -3.531186103820801
+  f32.const inf
+  f32.neg
+  f32.const 2
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2494
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const -8.887990951538086
-  f32.const 4.345239639282227
+  f32.const inf
+  f32.neg
+  f32.const -0.5
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2495
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -2.7636072635650635
-  f32.const -0.09061169624328613
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2496
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 4.567535400390625
-  f32.const -1.9641380310058594
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2497
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 4.811392307281494
-  f32.const 4.455665111541748
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2498
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.450045585632324
-  f32.const 0.6620717644691467
-  f32.const -0.49139970541000366
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2499
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.858890056610107
-  f32.const 0.052154526114463806
-  f32.const 0.0357111394405365
+  f32.const 1
+  f32.const inf
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2500
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
-  f32.const -0.7920545339584351
+  f32.const -1
+  f32.const inf
+  f32.const -1
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2501
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  f32.const 0.6157026886940002
+  f32.const inf
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2502
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  f32.const -0.010681532323360443
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2503
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const 1
-  f32.const 0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2506
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const -0
+  f32.const -1
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2507
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 0.5
+  f32.const inf
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2508
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 1
-  f32.const -0.5
+  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_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2509
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
+  f32.const 1.75
+  f32.const 0.5
+  f32.const 0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2510
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 1
-  f32.const -0
+  f32.const -1.75
+  f32.const 0.5
+  f32.const -1.75
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2511
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const 1
-  f32.const 0.5
+  f32.const 1.75
+  f32.const -0.5
+  f32.const -0.5
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2512
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.5
-  f32.const 1
+  f32.const -1.75
   f32.const -0.5
+  f32.const -1.75
   f32.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_minf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2513
+   i32.const 2313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const -8.06684839057968
+  f64.const 4.535662560676869
+  f64.const -3.531185829902812
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2514
+   i32.const 2327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const 1
-  f32.const -0
-  f32.const 0
+  f64.const 4.345239849338305
+  f64.const -8.88799136300345
+  f64.const 4.345239849338305
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2515
+   i32.const 2328
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2516
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2517
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 9.267056966972586
+  f64.const 4.811392084359796
+  f64.const 4.45566488261279
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2518
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -1
-  f32.const 0
-  f32.const 0
+  f64.const -6.450045556060236
+  f64.const 0.6620717923376739
+  f64.const -0.4913994250211714
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2519
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
-  f32.const -0
-  f32.const 0
+  f64.const 7.858890253041697
+  f64.const 0.05215452675006225
+  f64.const 0.035711240532359426
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2520
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const -1
-  f32.const 0.5
-  f32.const 0
+  f64.const -0.792054511984896
+  f64.const 7.67640268511754
+  f64.const -0.792054511984896
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2521
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -1
-  f32.const -0.5
-  f32.const 0
+  f64.const 0.615702673197924
+  f64.const 2.0119025790324803
+  f64.const 0.615702673197924
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2522
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -1
-  f32.const 0
-  f32.const 0
+  f64.const -0.5587586823609152
+  f64.const 0.03223983060263804
+  f64.const -0.0106815621160685
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2523
+   i32.const 2336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const -0
-  f32.const 0
+  f64.const 0
+  f64.const 1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2524
+   i32.const 2339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const -1
-  f32.const 0.5
-  f32.const 0
+  f64.const -0
+  f64.const 1
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2525
+   i32.const 2340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.5
-  f32.const -1
-  f32.const -0.5
-  f32.const 0
+  f64.const 0.5
+  f64.const 1
+  f64.const 0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2526
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const -1
-  f32.const 0
-  f32.const 0
+  f64.const -0.5
+  f64.const 1
+  f64.const -0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2527
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const -1
-  f32.const -0
-  f32.const 0
+  f64.const 1
+  f64.const 1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2528
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2529
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2530
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -1.5
+  f64.const 1
+  f64.const -0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2531
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2532
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2533
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_modf
+  f64.const inf
+  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2534
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/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
+  f64.const inf
+  f64.neg
+  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2535
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2536
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2537
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2538
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const -0
-  f32.const 0
+  f64.const 0.5
+  f64.const -1
+  f64.const 0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2539
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.neg
-  f32.const -0
-  f32.const 0
+  f64.const -0.5
+  f64.const -1
+  f64.const -0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2540
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 1
+  f64.const -1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2541
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2542
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2543
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2544
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2545
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -2
+  f64.const -1
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2546
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const -1
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2547
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -1
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2548
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2549
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2550
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 2
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 0
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2551
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2552
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2553
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 2
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_modf
+  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 32
-   i32.const 2554
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0.5
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2555
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2556
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const inf
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2557
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const inf
+  f64.neg
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2558
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2559
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_modf
+  f64.const 1
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2560
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.const -1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_modf
+  f64.const -1
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2561
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2562
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2563
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2564
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/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
+  f64.const -1
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2565
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2566
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2567
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.75
-  f32.const 0.5
-  f32.const 0.25
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2568
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/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
+  f64.const inf
+  f64.const 2
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2569
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/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
+  f64.const inf
+  f64.const -0.5
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2570
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.75
-  f32.const -0.5
-  f32.const -0.25
-  f32.const 0
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_modf
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2571
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.06684839057968
-  f64.const 4.535662560676869
+  f64.const inf
+  f64.neg
+  f64.const 2
   f64.const nan:0x8000000000000
   f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2583
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  f64.const 2.1347118825587285e-06
-  f64.const 0.3250160217285156
-  global.get $std/math/INEXACT
-  call $std/math/test_pow
+  f64.const inf
+  f64.neg
+  f64.const -0.5
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2584
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -2.763607337379588
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2585
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 4.567535276842744
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2586
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  f64.const 44909.29941512966
-  f64.const -0.26659080386161804
-  global.get $std/math/INEXACT
-  call $std/math/test_pow
+  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 32
-   i32.const 2587
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.450045556060236
-  f64.const 0.6620717923376739
+  f64.const -1
+  f64.const nan:0x8000000000000
   f64.const nan:0x8000000000000
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2588
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  f64.const 1.1135177413458652
-  f64.const -0.37168607115745544
-  global.get $std/math/INEXACT
-  call $std/math/test_pow
+  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 32
-   i32.const 2589
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  f64.const nan:0x8000000000000
+  f64.const -1
+  f64.const inf
+  f64.const -1
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2590
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  f64.const 0.37690773521380183
-  f64.const 0.32473301887512207
-  global.get $std/math/INEXACT
-  call $std/math/test_pow
+  f64.const inf
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2591
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
+  f64.const inf
+  f64.neg
+  f64.const inf
   f64.const nan:0x8000000000000
   f64.const 0
   global.get $std/math/INVALID
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2592
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2595
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
+  f64.const -1
   f64.const inf
-  f64.const 0
+  f64.neg
+  f64.const -1
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2596
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const inf
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
   f64.const 0
-  f64.const 3
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_pow
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2597
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
   f64.const 0
-  f64.const 2
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_pow
+  global.get $std/math/INVALID
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2598
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 0
+  f64.const 1.75
+  f64.const 0.5
+  f64.const 0.25
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2599
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
+  f64.const -1.75
   f64.const 0.5
-  f64.const 0
+  f64.const -0.25
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2600
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 1
+  f64.const 1.75
+  f64.const -0.5
+  f64.const 0.25
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2601
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -0
-  f64.const 1
+  f64.const -1.75
+  f64.const -0.5
+  f64.const -0.25
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2602
+   i32.const 2404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
   f64.const 0
-  f64.const -0.5
-  f64.const inf
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2603
+   i32.const 2407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
   f64.const 0
-  f64.const -1
-  f64.const inf
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2604
+   i32.const 2408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  f64.const -0
   f64.const 0
-  f64.const -2
-  f64.const inf
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2605
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
+  f64.const -0
   f64.const 0
-  f64.const -3
-  f64.const inf
-  f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2606
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
   f64.const 0
-  f64.const -4
-  f64.const inf
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2607
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
   f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const inf
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2608
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
   f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2609
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
   f64.const -0
-  f64.const inf
-  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2610
+   i32.const 2414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 3
-  f64.const -0
+  i64.const 0
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2611
+   i32.const 2417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 2
+  i64.const 0
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2612
+   i32.const 2418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const -0
+  i64.const 0
+  f64.reinterpret_i64
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
+  f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2613
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0.5
+  i64.const 0
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
   f64.const 0
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2614
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9223372036854775808
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
   f64.const -0
   f64.const 0
-  f64.const 1
-  f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2615
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9223372036854775808
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
   f64.const -0
-  f64.const -0
-  f64.const 1
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2616
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9223372036854775808
+  f64.reinterpret_i64
+  i64.const -9218868437227405312
+  f64.reinterpret_i64
   f64.const -0
-  f64.const -0.5
-  f64.const inf
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2617
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -9223372036854775808
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
   f64.const -0
-  f64.const -1
-  f64.const inf
-  f64.neg
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2618
+   i32.const 2424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -2
-  f64.const inf
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const 9218868437227405310
+  f64.reinterpret_i64
+  i64.const 8980177656976769024
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2619
+   i32.const 2427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -3
-  f64.const inf
-  f64.neg
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const 9218868437227405310
+  f64.reinterpret_i64
+  i64.const -243194379878006784
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2620
+   i32.const 2428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -4
-  f64.const inf
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const -9007199254740992
+  f64.reinterpret_i64
+  i64.const 9214364837600034814
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2621
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.neg
-  f64.const inf
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const -9007199254740992
+  f64.reinterpret_i64
+  i64.const -9007199254740994
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2622
+   i32.const 2431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 0
-  f64.const 1
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
+  i64.const 0
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2623
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0
-  f64.const 1
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
+  i64.const -9223372036854775808
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2624
+   i32.const 2434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 1
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const -9007199254740994
+  f64.reinterpret_i64
+  i64.const 8980177656976769024
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2625
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const 1
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const -9007199254740994
+  f64.reinterpret_i64
+  i64.const -243194379878006784
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2626
+   i32.const 2437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0
-  f64.const 1
+  i64.const 9214364837600034816
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const 9214364837600034816
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2627
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 0
-  f64.const 1
+  i64.const -9007199254740992
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const -9007199254740992
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2628
+   i32.const 2440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const -0
-  f64.const 1
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2629
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -0
-  f64.const 1
+  i64.const -9007199254740993
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const -9007199254740993
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2630
+   i32.const 2443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -0
-  f64.const 1
+  i64.const 9214364837600034814
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const 9214364837600034814
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2631
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -0
-  f64.const 1
+  i64.const -9007199254740994
+  f64.reinterpret_i64
+  i64.const 9218868437227405311
+  f64.reinterpret_i64
+  i64.const -9007199254740994
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2632
+   i32.const 2446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -0
-  f64.const 1
+  i64.const 9218868437227405310
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const 9218868437227405310
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2633
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const -0
-  f64.const 1
+  i64.const -4503599627370498
+  f64.reinterpret_i64
+  i64.const -4503599627370497
+  f64.reinterpret_i64
+  i64.const -4503599627370498
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2634
+   i32.const 2449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  i64.const 9218868437227405310
+  f64.reinterpret_i64
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
+  i64.const 9214364837600034813
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2635
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.const nan:0x8000000000000
+  i64.const -4503599627370498
+  f64.reinterpret_i64
+  i64.const 9214364837600034815
+  f64.reinterpret_i64
+  i64.const -9007199254740995
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2636
+   i32.const 2452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  i64.const 4620130267728707584
+  f64.reinterpret_i64
+  f64.const 1
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2637
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 2
+  i64.const 4619004367821864960
+  f64.reinterpret_i64
   f64.const 1
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2638
+   i32.const 2455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  f64.const -1
+  i64.const 4617878467915022336
+  f64.reinterpret_i64
+  f64.const 1
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2639
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -2
+  i64.const 4616752568008179712
+  f64.reinterpret_i64
   f64.const 1
+  f64.const 0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2640
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -3
-  f64.const -1
+  i64.const -4603241769126068224
+  f64.reinterpret_i64
+  f64.const 1
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2641
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0.5
-  f64.const nan:0x8000000000000
+  i64.const -4604367669032910848
+  f64.reinterpret_i64
+  f64.const 1
+  f64.const -0.5
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2642
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -4605493568939753472
+  f64.reinterpret_i64
   f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2643
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i64.const -4606619468846596096
+  f64.reinterpret_i64
   f64.const 1
-  f64.const inf
-  f64.const nan:0x8000000000000
+  f64.const -0.5
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2644
+   i32.const 2461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370492
+  f64.reinterpret_i64
+  i64.const 4503599627370494
+  f64.reinterpret_i64
+  i64.const 4503599627370492
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2645
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 3
-  f64.const 1
+  i64.const 4503599627370492
+  f64.reinterpret_i64
+  i64.const -9218868437227405314
+  f64.reinterpret_i64
+  i64.const 4503599627370492
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2646
+   i32.const 2464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0.5
-  f64.const 1
+  i64.const 4503599627370495
+  f64.reinterpret_i64
+  i64.const 3
+  f64.reinterpret_i64
+  i64.const 0
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2647
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -0.5
-  f64.const 1
+  i64.const 4503599627370495
+  f64.reinterpret_i64
+  i64.const 9007199254740991
+  f64.reinterpret_i64
+  i64.const 4503599627370495
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2648
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -3
-  f64.const 1
+  i64.const 4503599627370495
+  f64.reinterpret_i64
+  i64.const 9218868437227405312
+  f64.reinterpret_i64
+  i64.const 4503599627370495
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2649
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 0.5
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370495
+  f64.reinterpret_i64
+  i64.const -9223372036854775805
+  f64.reinterpret_i64
+  i64.const 0
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2650
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 1.5
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const 3
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_pow
+  i32.const 0
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2651
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 2
-  f64.const 0.25
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const 4503599627370494
+  f64.reinterpret_i64
+  i64.const 2
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2652
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const 3
-  f64.const -0.125
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const 9007199254740991
+  f64.reinterpret_i64
+  i64.const 4503599627370496
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2653
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const inf
-  f64.const 0
+  i64.const 4503599627370496
+  f64.reinterpret_i64
+  i64.const -9223372036854775805
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2654
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const inf
-  f64.neg
-  f64.const inf
+  i64.const 4503599627370497
+  f64.reinterpret_i64
+  i64.const 4503599627370494
+  f64.reinterpret_i64
+  i64.const 3
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2655
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370498
+  f64.reinterpret_i64
+  i64.const 3
+  f64.reinterpret_i64
+  i64.const 0
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2656
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const inf
-  f64.const 0
+  i64.const 4503599627370498
+  f64.reinterpret_i64
+  i64.const -9223372036854775805
+  f64.reinterpret_i64
+  i64.const 0
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2657
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const inf
-  f64.neg
-  f64.const inf
+  i64.const 4503599627370499
+  f64.reinterpret_i64
+  i64.const 3
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2658
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370499
+  f64.reinterpret_i64
+  i64.const 4503599627370501
+  f64.reinterpret_i64
+  i64.const 4503599627370499
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2659
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const inf
-  f64.const inf
+  i64.const 4503599627370499
+  f64.reinterpret_i64
+  i64.const -9223372036854775805
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2660
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const inf
-  f64.neg
-  f64.const 0
+  i64.const 4503599627370500
+  f64.reinterpret_i64
+  i64.const 4503599627370501
+  f64.reinterpret_i64
+  i64.const 4503599627370500
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2661
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  i64.const 4503599627370502
+  f64.reinterpret_i64
+  i64.const 4503599627370501
+  f64.reinterpret_i64
+  i64.const 1
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2662
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
+  i64.const 9007199254740991
+  f64.reinterpret_i64
+  i64.const 9007199254740992
+  f64.reinterpret_i64
+  i64.const 9007199254740991
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2663
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const inf
+  i64.const 45035996273704959
+  f64.reinterpret_i64
+  i64.const 40532396646334464
+  f64.reinterpret_i64
+  i64.const 40532396646334462
+  f64.reinterpret_i64
   f64.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_mod
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2664
+   i32.const 2482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 0
+  f32.const -8.066848754882812
+  f32.const 4.535662651062012
+  f32.const -3.531186103820801
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2665
+   i32.const 2491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 3
-  f64.const inf
-  f64.const 0
+  f32.const 4.345239639282227
+  f32.const -8.887990951538086
+  f32.const 4.345239639282227
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2666
+   i32.const 2492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 2
-  f64.const inf
-  f64.const 0
+  f32.const -8.381433486938477
+  f32.const -2.7636072635650635
+  f32.const -0.09061169624328613
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2667
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1
-  f64.const inf
-  f64.const 0
+  f32.const -6.531673431396484
+  f32.const 4.567535400390625
+  f32.const -1.9641380310058594
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2668
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0.5
-  f64.const inf
-  f64.const 0
+  f32.const 9.267057418823242
+  f32.const 4.811392307281494
+  f32.const 4.455665111541748
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2669
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -0.5
-  f64.const 0
-  f64.const 0
+  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
+  f32.const -0.49139970541000366
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2670
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -1
-  f64.const 0
-  f64.const 0
+  f32.const 7.858890056610107
+  f32.const 0.052154526114463806
+  f32.const 0.0357111394405365
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2671
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -2
-  f64.const 0
-  f64.const 0
+  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
+  f32.const -0.7920545339584351
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2672
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
+  f32.const 0.6157026886940002
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2673
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.const inf
-  f64.const 0
+  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
+  f32.const -0.010681532323360443
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2674
+   i32.const 2500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 0
+  f32.const 0
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2675
+   i32.const 2503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 3
-  f64.const inf
-  f64.neg
-  f64.const 0
+  f32.const -0
+  f32.const 1
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2676
+   i32.const 2504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 2
-  f64.const inf
-  f64.const 0
+  f32.const 0.5
+  f32.const 1
+  f32.const 0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2677
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 1
-  f64.const inf
-  f64.neg
-  f64.const 0
+  f32.const -0.5
+  f32.const 1
+  f32.const -0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2678
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0.5
-  f64.const inf
-  f64.const 0
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2679
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -0.5
-  f64.const 0
-  f64.const 0
+  f32.const -1
+  f32.const 1
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2680
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  f64.const -0
-  f64.const 0
+  f32.const 1.5
+  f32.const 1
+  f32.const 0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2681
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -2
-  f64.const 0
-  f64.const 0
+  f32.const -1.5
+  f32.const 1
+  f32.const -0.5
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2682
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 2
+  f32.const 1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2683
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const -2
+  f32.const 1
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_pow
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2684
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
-  f64.const 1
-  f64.const -2
-  f64.const 0
-  i32.const 0
-  call $std/math/test_pow
+  f32.const inf
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2685
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
-  f64.const -1
-  f64.const -0.5
-  f64.const 0
-  i32.const 0
-  call $std/math/test_pow
+  f32.const inf
+  f32.neg
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2686
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2689
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2690
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2691
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2692
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2693
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2694
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2695
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2696
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  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 32
-   i32.const 2698
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  f64.const -0
-  f64.eq
+  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 32
-   i32.const 2699
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  f64.const -1
-  f64.eq
+  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 32
-   i32.const 2700
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  f32.const inf
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2701
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.neg
-  f64.eq
+  f32.const inf
+  f32.neg
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2702
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 1
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
-  f64.ne
+  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 32
-   i32.const 2703
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  f32.const 0
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2705
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.neg
-  f64.eq
+  f32.const 0
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2706
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const -1
-  f64.eq
+  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 32
-   i32.const 2707
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const 2
-  f64.eq
+  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 32
-   i32.const 2708
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  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 32
-   i32.const 2709
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  f32.const -0
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2710
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  f64.const -0
-  f64.eq
+  f32.const -0
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2711
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const -1
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
-  f64.ne
+  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 32
-   i32.const 2712
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  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 32
-   i32.const 2714
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  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 32
-   i32.const 2715
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  f32.const 1
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2716
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const 0.25
-  f64.eq
+  f32.const -1
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2717
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  f32.const inf
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2718
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  f32.const inf
+  f32.neg
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2719
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  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 32
-   i32.const 2720
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 2
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
-  f64.ne
+  f32.const -1
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2721
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  f32.const inf
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2723
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const 0
-  f64.eq
+  f32.const inf
+  f32.neg
+  f32.const -0
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2724
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
-  f64.ne
+  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 32
-   i32.const 2725
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const 2
-  f64.eq
+  f32.const inf
+  f32.const 2
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2726
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const 1
-  f64.eq
+  f32.const inf
+  f32.const -0.5
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2727
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  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 32
-   i32.const 2728
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  f64.const inf
-  f64.eq
+  f32.const inf
+  f32.neg
+  f32.const 2
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2729
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
-  f64.ne
+  f32.const inf
+  f32.neg
+  f32.const -0.5
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2730
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.066848754882812
-  f32.const 4.535662651062012
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  i32.const 0
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2739
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const -8.887990951538086
-  f32.const 2.134714122803416e-06
-  f32.const 0.1436440795660019
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  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 32
-   i32.const 2740
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -2.7636072635650635
+  f32.const 1
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  i32.const 0
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2741
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const 4.567535400390625
+  f32.const -1
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  i32.const 0
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2742
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 4.811392307281494
-  f32.const 44909.33203125
-  f32.const -0.05356409028172493
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  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 32
-   i32.const 2743
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.450045585632324
-  f32.const 0.6620717644691467
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const inf
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  i32.const 0
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2744
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.858890056610107
-  f32.const 0.052154526114463806
-  f32.const 1.1135177612304688
-  f32.const 0.19122089445590973
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  f32.const inf
+  f32.const inf
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2745
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
+  f32.const inf
+  f32.neg
+  f32.const inf
   f32.const nan:0x400000
   f32.const 0
   global.get $std/math/INVALID
-  call $std/math/test_powf
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2746
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  f32.const 0.3769077658653259
-  f32.const 0.337149053812027
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  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 32
-   i32.const 2747
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const inf
+  f32.neg
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  i32.const 0
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2748
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const inf
+  f32.const inf
+  f32.neg
   f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2751
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
   f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  global.get $std/math/INVALID
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2752
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 3
-  f32.const 0
+  f32.const 1.75
+  f32.const 0.5
+  f32.const 0.25
   f32.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2753
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 2
-  f32.const 0
+  f32.const -1.75
+  f32.const 0.5
+  f32.const -0.25
   f32.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2754
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f32.const 1.75
+  f32.const -0.5
+  f32.const 0.25
   f32.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2755
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0.5
-  f32.const 0
+  f32.const -1.75
+  f32.const -0.5
+  f32.const -0.25
   f32.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_modf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2756
+   i32.const 2568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -8.06684839057968
+  f64.const 4.535662560676869
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2580
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const 4.345239849338305
+  f64.const -8.88799136300345
+  f64.const 2.1347118825587285e-06
+  f64.const 0.3250160217285156
+  global.get $std/math/INEXACT
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2757
+   i32.const 2581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -8.38143342755525
+  f64.const -2.763607337379588
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2758
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -0.5
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  f64.const -6.531673581913484
+  f64.const 4.567535276842744
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2759
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -1
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  f64.const 9.267056966972586
+  f64.const 4.811392084359796
+  f64.const 44909.29941512966
+  f64.const -0.26659080386161804
+  global.get $std/math/INEXACT
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2760
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -2
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  f64.const -6.450045556060236
+  f64.const 0.6620717923376739
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2761
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -3
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  f64.const 7.858890253041697
+  f64.const 0.05215452675006225
+  f64.const 1.1135177413458652
+  f64.const -0.37168607115745544
+  global.get $std/math/INEXACT
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2762
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -4
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  f64.const -0.792054511984896
+  f64.const 7.67640268511754
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2763
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.615702673197924
+  f64.const 2.0119025790324803
+  f64.const 0.37690773521380183
+  f64.const 0.32473301887512207
+  global.get $std/math/INEXACT
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2764
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.5587586823609152
+  f64.const 0.03223983060263804
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2765
+   i32.const 2589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const 0
-  f32.const 0
+  f64.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2766
+   i32.const 2592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 3
-  f32.const -0
-  f32.const 0
+  f64.const 0
+  f64.const inf
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2767
+   i32.const 2593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 2
-  f32.const 0
-  f32.const 0
+  f64.const 0
+  f64.const 3
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2768
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const -0
-  f32.const 0
+  f64.const 0
+  f64.const 2
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2769
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0.5
-  f32.const 0
-  f32.const 0
+  f64.const 0
+  f64.const 1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2770
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const 0
+  f64.const 0.5
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2771
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const 1
-  f32.const 0
+  f64.const 0
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2772
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0.5
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  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 32
-   i32.const 2773
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f64.const 0
+  f64.const -0.5
+  f64.const inf
+  f64.const 0
   global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2774
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -2
-  f32.const inf
-  f32.const 0
+  f64.const 0
+  f64.const -1
+  f64.const inf
+  f64.const 0
   global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2775
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -3
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f64.const 0
+  f64.const -2
+  f64.const inf
+  f64.const 0
   global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2776
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -4
-  f32.const inf
-  f32.const 0
+  f64.const 0
+  f64.const -3
+  f64.const inf
+  f64.const 0
   global.get $std/math/DIVBYZERO
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2777
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0
+  f64.const -4
+  f64.const inf
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2778
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2779
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2780
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const inf
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2781
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const 3
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2782
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const 2
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2783
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const 1
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2784
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const 0.5
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2785
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2786
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0
-  f32.const 1
-  f32.const 0
+  f64.const -0
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2787
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -0
+  f64.const -0.5
+  f64.const inf
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2788
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -0
+  f64.const -1
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2789
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -0
+  f64.const -2
+  f64.const inf
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2790
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0
+  f64.const -3
+  f64.const inf
+  f64.neg
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2791
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -0
+  f64.const -4
+  f64.const inf
+  f64.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2792
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2793
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 2
-  f32.const 1
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2794
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const -1
-  f32.const 0
+  f64.const inf
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2795
+   i32.const 2621
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -2
-  f32.const 1
-  f32.const 0
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2796
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -3
-  f32.const -1
-  f32.const 0
+  f64.const 1
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2797
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  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 32
-   i32.const 2798
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0.5
+  f64.const 0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2799
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2800
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2801
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 3
-  f32.const 1
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2802
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0.5
-  f32.const 1
-  f32.const 0
+  f64.const 1
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2803
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -0.5
-  f32.const 1
-  f32.const 0
+  f64.const -1
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2804
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -3
-  f32.const 1
-  f32.const 0
+  f64.const -0.5
+  f64.const -0
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2805
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 0.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  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 32
-   i32.const 2806
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 1.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_powf
+  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 32
-   i32.const 2807
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 2
-  f32.const 0.25
-  f32.const 0
+  f64.const -1
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2808
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 3
-  f32.const -0.125
-  f32.const 0
+  f64.const -1
+  f64.const 2
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2809
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const inf
-  f32.const 0
-  f32.const 0
+  f64.const -1
+  f64.const -1
+  f64.const -1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2810
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const 0
+  f64.const -1
+  f64.const -2
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2811
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -1
+  f64.const -3
+  f64.const -1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2812
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -1
+  f64.const 0.5
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2813
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2814
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 1
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2815
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const inf
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2816
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const 0
+  f64.const 1
+  f64.const 3
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2817
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 1
+  f64.const 0.5
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2818
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 1
+  f64.const -0.5
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2819
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const inf
-  f32.const 0
+  f64.const 1
+  f64.const -3
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2820
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.5
+  f64.const 0.5
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2821
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 3
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  f64.const -0.5
+  f64.const 1.5
+  f64.const nan:0x8000000000000
+  f64.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2822
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 2
-  f32.const inf
-  f32.const 0
+  f64.const -0.5
+  f64.const 2
+  f64.const 0.25
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2823
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const inf
-  f32.const 0
+  f64.const -0.5
+  f64.const 3
+  f64.const -0.125
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2824
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0.5
-  f32.const inf
-  f32.const 0
+  f64.const -0.5
+  f64.const inf
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2825
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0.5
-  f32.const 0
-  f32.const 0
+  f64.const -0.5
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2826
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -1
-  f32.const 0
-  f32.const 0
+  f64.const -0.5
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2827
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -2
-  f32.const 0
-  f32.const 0
+  f64.const 0.5
+  f64.const inf
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2828
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const 0.5
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2829
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const inf
-  f32.const 0
+  f64.const 0.5
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2830
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const 0
+  f64.const 1.5
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2831
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 3
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f64.const 1.5
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2832
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 2
-  f32.const inf
-  f32.const 0
+  f64.const 1.5
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2833
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f64.const inf
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2834
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0.5
-  f32.const inf
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2835
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0.5
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2836
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1
-  f32.const -0
-  f32.const 0
+  f64.const inf
+  f64.const 3
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2837
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -2
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.const 2
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2838
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const 1
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2839
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.const 0.5
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2840
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const 1
-  f32.const -2
-  f32.const 0
+  f64.const inf
+  f64.const -0.5
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2841
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const -1
-  f32.const -0.5
-  f32.const 0
+  f64.const inf
+  f64.const -1
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2842
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.const -2
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2845
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const -0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2846
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 8388608
-  f32.reinterpret_i32
-  f32.const 1
-  i32.const 8388608
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2847
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -2139095040
-  f32.reinterpret_i32
-  f32.const 1
-  i32.const -2139095040
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.neg
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2848
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const 1
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 3
+  f64.const inf
+  f64.neg
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2849
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -8388609
-  f32.reinterpret_i32
-  f32.const 1
-  i32.const -8388609
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 2
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2850
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 1
+  f64.const inf
+  f64.neg
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2852
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  i32.const 8388608
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const 0.5
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2853
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -0.5
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2854
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const 1099431936
-  f32.reinterpret_i32
-  f32.const -0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -1
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2855
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 2
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -2
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2856
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const 8388608
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const 1
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2857
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1081291571
-  f32.reinterpret_i32
-  i32.const 1120534528
-  f32.reinterpret_i32
-  i32.const -965944620
-  f32.reinterpret_i32
-  i32.const -1097905258
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  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 32
-   i32.const 2859
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1100480512
-  f32.reinterpret_i32
-  i32.const 1084227584
-  f32.reinterpret_i32
-  i32.const 1243029772
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const -2
+  f64.const 1
+  f64.const -2
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2861
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1047003136
-  f32.reinterpret_i32
-  i32.const 1084227584
-  f32.reinterpret_i32
-  i32.const -904453876
-  f32.reinterpret_i32
-  f32.const 0
+  f64.const -2
+  f64.const -1
+  f64.const -0.5
+  f64.const 0
   i32.const 0
-  call $std/math/test_powf
+  call $std/math/test_pow
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2862
+   i32.const 2683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1019150336
-  f32.reinterpret_i32
-  i32.const 1077936128
-  f32.reinterpret_i32
-  i32.const -891591550
-  f32.reinterpret_i32
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.1 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.1
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2863
+   i32.const 2686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -996794368
-  f32.reinterpret_i32
-  i32.const 1073741824
-  f32.reinterpret_i32
-  i32.const 1236275976
-  f32.reinterpret_i32
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.2 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.2
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2864
+   i32.const 2687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1089078126
-  f32.reinterpret_i32
-  i32.const 1099496040
-  f32.reinterpret_i32
-  i32.const 1477304923
-  f32.reinterpret_i32
-  i32.const -1105621615
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.3 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const -0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.3
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2866
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1100378008
-  f32.reinterpret_i32
-  i32.const 1079284384
-  f32.reinterpret_i32
-  i32.const 1183148212
-  f32.reinterpret_i32
-  i32.const 1050397989
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.4 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const -0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.4
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2867
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1089032095
-  f32.reinterpret_i32
-  i32.const 1092204185
-  f32.reinterpret_i32
-  i32.const 1295611234
-  f32.reinterpret_i32
-  i32.const -1109674586
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.5 (result f64)
+   f64.const -1
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.5
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2868
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1098680439
-  f32.reinterpret_i32
-  i32.const 1100245042
-  f32.reinterpret_i32
-  i32.const 1684334277
-  f32.reinterpret_i32
-  i32.const 1035731698
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.6 (result f64)
+   f64.const inf
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.6
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2869
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1090853857
-  f32.reinterpret_i32
-  i32.const 1054272066
-  f32.reinterpret_i32
-  i32.const 1075559602
-  f32.reinterpret_i32
-  i32.const 1008617886
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.7 (result f64)
+   f64.const inf
+   f64.neg
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.7
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2870
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1085970832
-  f32.reinterpret_i32
-  i32.const 1093100817
-  f32.reinterpret_i32
-  i32.const 1287904676
-  f32.reinterpret_i32
-  i32.const -1162174975
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.8 (result f64)
+   f64.const nan:0x8000000000000
+   local.set $1
+   f64.const 0
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.8
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2871
+   i32.const 2693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1075485704
-  f32.reinterpret_i32
-  i32.const 1099495801
-  f32.reinterpret_i32
-  i32.const 1247602305
-  f32.reinterpret_i32
-  i32.const 1050126003
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.9 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.9
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2872
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1025308839
-  f32.reinterpret_i32
-  i32.const 1010328623
-  f32.reinterpret_i32
-  i32.const 1064748518
-  f32.reinterpret_i32
-  i32.const -1091052619
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.10 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.10
+  end
+  f64.const -0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2873
+   i32.const 2696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1085163537
-  f32.reinterpret_i32
-  i32.const 1098713353
-  f32.reinterpret_i32
-  i32.const 1389090779
-  f32.reinterpret_i32
-  i32.const -1093771829
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.11 (result f64)
+   f64.const -1
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.11
+  end
+  f64.const -1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2874
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1095625895
-  f32.reinterpret_i32
-  i32.const 1097793372
-  f32.reinterpret_i32
-  i32.const 1527074508
-  f32.reinterpret_i32
-  i32.const 1037429592
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.12 (result f64)
+   f64.const inf
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.12
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2875
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.13 (result f64)
+   f64.const inf
+   f64.neg
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.13
+  end
+  f64.const inf
+  f64.neg
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2877
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.14 (result f64)
+   f64.const nan:0x8000000000000
+   local.set $1
+   f64.const 1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.14
+  end
+  local.tee $1
+  local.get $1
+  f64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2878
+   i32.const 2700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.15 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.15
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2879
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.16 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.16
+  end
+  f64.const inf
+  f64.neg
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2880
+   i32.const 2703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.17 (result f64)
+   f64.const -1
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.17
+  end
+  f64.const -1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2881
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -2147483647
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.18 (result f64)
+   f64.const 0.5
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.18
+  end
+  f64.const 2
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2882
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.19 (result f64)
+   f64.const 1
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.19
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2884
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.20 (result f64)
+   f64.const inf
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.20
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2885
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.21 (result f64)
+   f64.const inf
+   f64.neg
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.21
+  end
+  f64.const -0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2886
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.22 (result f64)
+   f64.const nan:0x8000000000000
+   local.set $1
+   f64.const -1
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.22
+  end
+  local.tee $1
+  local.get $1
+  f64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2887
+   i32.const 2709
    i32.const 1
    call $~lib/builtins/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_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.23 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.23
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2889
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.24 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.24
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2890
+   i32.const 2712
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.25 (result f64)
+   f64.const -1
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.25
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2891
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.26 (result f64)
+   f64.const 0.5
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.26
+  end
+  f64.const 0.25
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2892
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.27 (result f64)
+   f64.const 1
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.27
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2893
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.28 (result f64)
+   f64.const inf
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.28
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2894
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.29 (result f64)
+   f64.const inf
+   f64.neg
+   local.set $1
+   f64.const 2
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.29
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2895
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1065353217
-  f32.reinterpret_i32
-  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 32
-   i32.const 2897
+  block $~lib/math/NativeMath.pow<f64>|inlined.30 (result f64)
+   f64.const nan:0x8000000000000
+   local.set $1
+   f64.const 2
+   local.set $0
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.30
   end
-  f32.const inf
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  local.tee $1
+  local.get $1
+  f64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2898
+   i32.const 2718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1082130431
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const inf
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.31 (result f64)
+   f64.const 0
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.31
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2899
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.32 (result f64)
+   f64.const -0
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.32
+  end
+  f64.const 0
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2900
+   i32.const 2721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1065353217
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.33 (result f64)
+   f64.const -1
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.33
+  end
+  local.tee $1
+  local.get $1
+  f64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2902
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.34 (result f64)
+   f64.const 4
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.34
+  end
+  f64.const 2
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2903
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1082130431
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.35 (result f64)
+   f64.const 1
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.35
+  end
+  f64.const 1
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2904
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/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
+  block $~lib/math/NativeMath.pow<f64>|inlined.36 (result f64)
+   f64.const inf
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.36
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2905
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1065353215
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.37 (result f64)
+   f64.const inf
+   f64.neg
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.37
+  end
+  f64.const inf
+  f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2907
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_powf
+  block $~lib/math/NativeMath.pow<f64>|inlined.38 (result f64)
+   f64.const nan:0x8000000000000
+   local.set $1
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   local.get $0
+   call $~lib/util/math/pow64
+   br $~lib/math/NativeMath.pow<f64>|inlined.38
+  end
+  local.tee $1
+  local.get $1
+  f64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2908
+   i32.const 2727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const -8.066848754882812
+  f32.const 4.535662651062012
+  f32.const nan:0x400000
   f32.const 0
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2909
+   i32.const 2736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1082130433
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  f32.const 0
-  i32.const 0
+  f32.const 4.345239639282227
+  f32.const -8.887990951538086
+  f32.const 2.134714122803416e-06
+  f32.const 0.1436440795660019
+  global.get $std/math/INEXACT
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2910
+   i32.const 2737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -2147483647
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
+  f32.const -8.381433486938477
+  f32.const -2.7636072635650635
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2911
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const 0
+  f32.const -6.531673431396484
+  f32.const 4.567535400390625
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2912
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const 0
-  f32.const 0
-  i32.const 0
+  f32.const 9.267057418823242
+  f32.const 4.811392307281494
+  f32.const 44909.33203125
+  f32.const -0.05356409028172493
+  global.get $std/math/INEXACT
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2914
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const 0
+  f32.const -6.450045585632324
+  f32.const 0.6620717644691467
+  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2915
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  i32.const -8388609
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
+  f32.const 7.858890056610107
+  f32.const 0.052154526114463806
+  f32.const 1.1135177612304688
+  f32.const 0.19122089445590973
+  global.get $std/math/INEXACT
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2917
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const -0.7920545339584351
+  f32.const 7.676402568817139
+  f32.const nan:0x400000
   f32.const 0
-  i32.const -2147483647
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2918
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const -8388609
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const 0
-  global.get $std/math/DIVBYZERO
+  f32.const 0.6157026886940002
+  f32.const 2.0119025707244873
+  f32.const 0.3769077658653259
+  f32.const 0.337149053812027
+  global.get $std/math/INEXACT
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2919
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -2
-  f32.const inf
+  f32.const -0.5587586760520935
+  f32.const 0.03223983198404312
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/DIVBYZERO
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2920
+   i32.const 2745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const -2147483647
-  f32.reinterpret_i32
-  f32.const inf
   f32.const 0
-  global.get $std/math/DIVBYZERO
+  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 32
-   i32.const 2921
+   i32.const 2748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
+  f32.const 0
   f32.const inf
-  f32.neg
   f32.const 0
-  global.get $std/math/DIVBYZERO
+  f32.const 0
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2922
+   i32.const 2749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  i32.const -1048051712
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
   f32.const 0
-  global.get $std/math/DIVBYZERO
+  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 32
-   i32.const 2923
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const inf
+  f32.const 0
+  f32.const 2
+  f32.const 0
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46185,14 +44663,13 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2925
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  i32.const -2147483647
-  f32.reinterpret_i32
+  f32.const 0
+  f32.const 1
   f32.const 0
   f32.const 0
   i32.const 0
@@ -46201,16 +44678,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2926
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const inf
+  f32.const 0
+  f32.const 0.5
+  f32.const 0
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46218,16 +44693,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2928
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const 1
-  f32.reinterpret_i32
-  f32.const inf
+  f32.const 0
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46235,16 +44708,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2929
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const -8388609
-  f32.reinterpret_i32
   f32.const 0
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46252,101 +44723,89 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2930
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const -2147483647
-  f32.reinterpret_i32
   f32.const 0
+  f32.const -0.5
+  f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2931
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 0
+  f32.const -1
   f32.const inf
-  f32.neg
-  i32.const 1084227584
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2932
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 0
+  f32.const -2
   f32.const inf
-  f32.neg
-  i32.const -1063256064
-  f32.reinterpret_i32
-  f32.const -0
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2933
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const 1086324736
-  f32.reinterpret_i32
+  f32.const 0
+  f32.const -3
   f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2934
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  i32.const -1061158912
-  f32.reinterpret_i32
   f32.const 0
+  f32.const -4
+  f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2935
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 0
   f32.const inf
   f32.neg
-  i32.const 1073741825
-  f32.reinterpret_i32
   f32.const inf
   f32.const 0
   i32.const 0
@@ -46355,68 +44814,59 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2937
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  i32.const 1065353217
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2938
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -2147483647
-  f32.reinterpret_i32
-  i32.const -1073741825
-  f32.reinterpret_i32
-  f32.const nan:0x400000
+  f32.const -0
+  f32.const inf
   f32.const 0
-  global.get $std/math/INVALID
+  f32.const 0
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2939
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -1054867456
-  f32.reinterpret_i32
-  i32.const 1134198784
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
+  f32.const -0
+  f32.const 3
+  f32.const -0
   f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/OVERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2941
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0.5
-  f32.const inf
+  f32.const -0
+  f32.const 2
+  f32.const 0
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46424,16 +44874,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2942
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 444596224
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const 1
+  f32.const -0
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46441,16 +44889,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2944
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 8
-  f32.reinterpret_i32
+  f32.const -0
   f32.const 0.5
-  i32.const 452984832
-  f32.reinterpret_i32
+  f32.const 0
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46458,16 +44904,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2945
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2097152
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 528482304
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46475,16 +44919,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2946
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 4194304
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 2130706432
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46492,101 +44934,92 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2947
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 8388608
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 536870912
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const -0.5
+  f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2948
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 8388608
-  f32.reinterpret_i32
+  f32.const -0
   f32.const -1
-  i32.const 2122317824
-  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2949
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 16777216
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 2113929216
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const -2
+  f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2950
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 25165824
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 545259520
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const -3
+  f32.const inf
+  f32.neg
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2951
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 25165824
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 2105540608
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const -4
+  f32.const inf
   f32.const 0
-  i32.const 0
+  global.get $std/math/DIVBYZERO
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2952
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 444596224
-  f32.reinterpret_i32
-  f32.const 2
-  i32.const 2
-  f32.reinterpret_i32
+  f32.const -0
+  f32.const inf
+  f32.neg
+  f32.const inf
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46594,16 +45027,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2953
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 545259520
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 805306368
-  f32.reinterpret_i32
+  f32.const nan:0x400000
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46611,16 +45042,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2954
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 796917760
-  f32.reinterpret_i32
-  f32.const 2
-  i32.const 528482304
-  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46628,16 +45057,15 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2955
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 805306368
-  f32.reinterpret_i32
-  f32.const 2
-  i32.const 545259520
-  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46645,16 +45073,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2956
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 872415232
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 1258291200
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46662,16 +45088,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2957
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 940572672
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1002438656
-  f32.reinterpret_i32
+  f32.const -1
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46679,16 +45103,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2958
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 947912704
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1006632960
-  f32.reinterpret_i32
+  f32.const -0.5
+  f32.const 0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46696,16 +45118,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2959
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 998244352
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1031798784
-  f32.reinterpret_i32
+  f32.const nan:0x400000
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46713,16 +45133,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2960
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 1024458752
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1044381696
-  f32.reinterpret_i32
+  f32.const inf
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46730,14 +45148,15 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2961
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.0625
-  f32.const 0.5
-  f32.const 0.25
+  f32.const inf
+  f32.neg
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46745,14 +45164,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2962
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.25
-  f32.const 2
-  f32.const 0.0625
+  f32.const 1
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46760,16 +45179,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2963
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2105540608
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1585446912
-  f32.reinterpret_i32
+  f32.const -1
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46777,16 +45194,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2965
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2105540608
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 25165824
-  f32.reinterpret_i32
+  f32.const -0.5
+  f32.const -0
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46794,15 +45209,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2966
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2113929216
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const inf
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46810,16 +45224,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2967
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2113929216
-  f32.reinterpret_i32
   f32.const -1
-  i32.const 16777216
-  f32.reinterpret_i32
+  f32.const inf
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46827,16 +45239,15 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2968
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2113929216
-  f32.reinterpret_i32
+  f32.const -1
   f32.const inf
   f32.neg
-  f32.const 0
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46844,16 +45255,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2969
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2122317824
-  f32.reinterpret_i32
-  f32.const 0.5
-  i32.const 1593835520
-  f32.reinterpret_i32
+  f32.const -1
+  f32.const 2
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46861,16 +45270,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2970
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2122317824
-  f32.reinterpret_i32
   f32.const -1
-  i32.const 8388608
-  f32.reinterpret_i32
+  f32.const -1
+  f32.const -1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46878,15 +45285,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2971
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const inf
-  f32.const inf
+  f32.const -1
+  f32.const -2
+  f32.const 1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46894,16 +45300,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2973
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2139095039
-  f32.reinterpret_i32
-  f32.const inf
-  f32.neg
-  f32.const 0
+  f32.const -1
+  f32.const -3
+  f32.const -1
   f32.const 0
   i32.const 0
   call $std/math/test_powf
@@ -46911,4019 +45315,4417 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2974
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  f32.const -2
+  f32.const -1
+  f32.const 0.5
+  f32.const nan:0x400000
   f32.const 0
-  i32.const -1962934272
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2976
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -1069547520
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2977
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -1015087104
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const inf
+  f32.const nan:0x400000
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2978
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  f32.const -256
+  f32.const 1
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2979
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -1014988800
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const 3
+  f32.const 1
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2980
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -1014890496
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const 0.5
+  f32.const 1
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2981
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -1014857728
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const -0.5
+  f32.const 1
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2982
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  i32.const -956301824
-  f32.reinterpret_i32
+  f32.const 1
+  f32.const -3
+  f32.const 1
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2983
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2130706432
-  f32.reinterpret_i32
-  f32.const -32768
+  f32.const -0.5
+  f32.const 0.5
+  f32.const nan:0x400000
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2984
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2139095032
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const 2097153
-  f32.reinterpret_i32
-  i32.const -1258291196
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  f32.const -0.5
+  f32.const 1.5
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2985
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2139095032
-  f32.reinterpret_i32
-  f32.const -2
+  f32.const -0.5
+  f32.const 2
+  f32.const 0.25
   f32.const 0
-  i32.const -1979711480
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2986
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -16777216
-  f32.reinterpret_i32
-  i32.const -956301824
-  f32.reinterpret_i32
-  f32.const -0
+  f32.const -0.5
+  f32.const 3
+  f32.const -0.125
   f32.const 0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2988
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -16777216
-  f32.reinterpret_i32
-  f32.const -32768
+  f32.const -0.5
+  f32.const inf
   f32.const 0
-  f32.const -0
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  f32.const 0
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2989
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -8388616
-  f32.reinterpret_i32
-  f32.const -1
-  i32.const -2145386495
-  f32.reinterpret_i32
-  i32.const 889192452
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  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 32
-   i32.const 2990
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const -8388616
-  f32.reinterpret_i32
-  f32.const -2
+  f32.const -0.5
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
-  i32.const -1979711480
-  f32.reinterpret_i32
-  global.get $std/math/INEXACT
-  global.get $std/math/UNDERFLOW
-  i32.or
+  i32.const 0
   call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 2991
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  call $~lib/bindings/dom/Math.random
-  i64.reinterpret_f64
-  call $~lib/math/NativeMath.seedRandom
-  i32.const 0
-  local.set $1
-  loop $for-loop|0
-   local.get $1
-   f64.convert_i32_s
-   f64.const 1e6
-   f64.lt
-   local.set $2
-   local.get $2
-   if
-    call $~lib/math/NativeMath.random
-    local.set $0
-    local.get $0
-    f64.const 0
-    f64.ge
-    if (result i32)
-     local.get $0
-     f64.const 1
-     f64.lt
-    else
-     i32.const 0
-    end
-    i32.eqz
-    if
-     i32.const 0
-     i32.const 32
-     i32.const 3000
-     i32.const 3
-     call $~lib/builtins/abort
-     unreachable
-    end
-    local.get $1
-    i32.const 1
-    i32.add
-    local.set $1
-    br $for-loop|0
-   end
-  end
-  call $~lib/bindings/dom/Math.random
-  i64.reinterpret_f64
-  local.set $3
-  local.get $3
-  call $~lib/math/NativeMath.seedRandom
+  f32.const 0.5
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  local.set $1
-  loop $for-loop|1
-   local.get $1
-   f64.convert_i32_s
-   f64.const 1e6
-   f64.lt
-   local.set $2
-   local.get $2
-   if
-    call $~lib/math/NativeMathf.random
-    local.set $4
-    local.get $4
-    f32.const 0
-    f32.ge
-    if (result i32)
-     local.get $4
-     f32.const 1
-     f32.lt
-    else
-     i32.const 0
-    end
-    i32.eqz
-    if
-     i32.const 0
-     i32.const 32
-     i32.const 3008
-     i32.const 3
-     call $~lib/builtins/abort
-     unreachable
-    end
-    local.get $1
-    i32.const 1
-    i32.add
-    local.set $1
-    br $for-loop|1
-   end
-  end
-  f64.const -8.06684839057968
-  f64.const -8
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3022
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const 4
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3023
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -8
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3024
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const -7
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3025
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 9
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3026
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6619858980995045
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3027
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.4066039223853553
-  f64.const -0
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3028
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5617597462207241
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3029
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.7741522965913037
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3030
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.6787637026394024
-  f64.const -1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3031
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const inf
+  f32.const 2
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3034
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const 0
+  f32.const inf
+  f32.const 1
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3035
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const 0
+  f32.const inf
+  f32.const 0.5
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3036
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
+  f32.const inf
+  f32.const -0.5
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3037
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
+  f32.const inf
+  f32.const -1
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3038
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 0
+  f32.const inf
+  f32.const -2
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3039
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3040
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3041
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const -0
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3042
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const 2
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3043
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.5
-  f64.const -1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3044
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.0000152587890625
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3045
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.0000152587890625
-  f64.const -1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3046
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.9999923706054688
-  f64.const 1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3047
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.9999923706054688
-  f64.const -1
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3048
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.888609052210118e-31
-  f64.const 0
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3049
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -7.888609052210118e-31
-  f64.const -0
-  f64.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_round
+  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 32
-   i32.const 3050
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9007199254740990
-  local.set $0
-  local.get $0
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $0
-  f64.le
-  select
-  f64.const 9007199254740990
-  f64.eq
-  drop
-  f64.const -9007199254740990
-  local.set $0
-  local.get $0
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $0
-  f64.le
-  select
-  f64.const -9007199254740990
-  f64.eq
-  drop
-  f64.const 9007199254740991
-  local.set $0
-  local.get $0
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $0
-  f64.le
-  select
-  f64.const 9007199254740991
-  f64.eq
-  drop
-  f64.const -9007199254740991
-  local.set $0
-  local.get $0
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $0
-  f64.le
-  select
-  f64.const -9007199254740991
-  f64.eq
-  drop
-  f64.const -1797693134862315708145274e284
-  local.set $0
-  local.get $0
-  f64.ceil
-  local.set $5
-  local.get $5
-  local.get $5
-  f64.const 1
-  f64.sub
-  local.get $5
-  f64.const 0.5
-  f64.sub
-  local.get $0
-  f64.le
-  select
-  f64.const -1797693134862315708145274e284
-  f64.eq
-  drop
-  f32.const -8.066848754882812
-  f32.const -8
+  f32.const nan:0x400000
+  f32.const -1
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3065
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 4.345239639282227
-  f32.const 4
+  f32.const -2
+  f32.const 1
+  f32.const -2
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3066
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -8.381433486938477
-  f32.const -8
+  f32.const -2
+  f32.const -1
+  f32.const -0.5
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3067
+   i32.const 2839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -6.531673431396484
-  f32.const -7
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  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 32
-   i32.const 3068
+   i32.const 2842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 9.267057418823242
-  f32.const 9
+  f32.const -0
+  f32.const 1
+  f32.const -0
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3069
+   i32.const 2843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.6619858741760254
+  i32.const 8388608
+  f32.reinterpret_i32
   f32.const 1
+  i32.const 8388608
+  f32.reinterpret_i32
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3070
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.40660393238067627
-  f32.const -0
+  i32.const -2139095040
+  f32.reinterpret_i32
+  f32.const 1
+  i32.const -2139095040
+  f32.reinterpret_i32
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3071
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5617597699165344
+  i32.const 2139095039
+  f32.reinterpret_i32
   f32.const 1
+  i32.const 2139095039
+  f32.reinterpret_i32
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3072
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.7741522789001465
+  i32.const -8388609
+  f32.reinterpret_i32
   f32.const 1
+  i32.const -8388609
+  f32.reinterpret_i32
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3073
+   i32.const 2847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.6787636876106262
-  f32.const -1
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 2139095039
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3074
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const 0
+  i32.const 8388608
+  f32.reinterpret_i32
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3077
+   i32.const 2850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
+  f32.const -0
+  i32.const 2139095039
+  f32.reinterpret_i32
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3078
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
+  f32.const -0
+  i32.const 1099431936
+  f32.reinterpret_i32
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3079
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
+  f32.const -0
+  f32.const 2
   f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3080
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  f32.const -0
+  i32.const 8388608
+  f32.reinterpret_i32
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3081
+   i32.const 2854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
+  i32.const -1081291571
+  f32.reinterpret_i32
+  i32.const 1120534528
+  f32.reinterpret_i32
+  i32.const -965944620
+  f32.reinterpret_i32
+  i32.const -1097905258
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2856
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1100480512
+  f32.reinterpret_i32
+  i32.const 1084227584
+  f32.reinterpret_i32
+  i32.const 1243029772
+  f32.reinterpret_i32
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3082
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
+  i32.const -1047003136
+  f32.reinterpret_i32
+  i32.const 1084227584
+  f32.reinterpret_i32
+  i32.const -904453876
+  f32.reinterpret_i32
   f32.const 0
   i32.const 0
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3083
+   i32.const 2859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
+  i32.const -1019150336
+  f32.reinterpret_i32
+  i32.const 1077936128
+  f32.reinterpret_i32
+  i32.const -891591550
+  f32.reinterpret_i32
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3084
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -0
+  i32.const -996794368
+  f32.reinterpret_i32
+  i32.const 1073741824
+  f32.reinterpret_i32
+  i32.const 1236275976
+  f32.reinterpret_i32
   f32.const 0
+  i32.const 0
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2861
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1089078126
+  f32.reinterpret_i32
+  i32.const 1099496040
+  f32.reinterpret_i32
+  i32.const 1477304923
+  f32.reinterpret_i32
+  i32.const -1105621615
+  f32.reinterpret_i32
   global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3085
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.5
-  f64.const 2
-  f64.const 0
+  i32.const 1100378008
+  f32.reinterpret_i32
+  i32.const 1079284384
+  f32.reinterpret_i32
+  i32.const 1183148212
+  f32.reinterpret_i32
+  i32.const 1050397989
+  f32.reinterpret_i32
   global.get $std/math/INEXACT
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3086
+   i32.const 2864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.5
-  f64.const -1
-  f64.const 0
+  i32.const 1089032095
+  f32.reinterpret_i32
+  i32.const 1092204185
+  f32.reinterpret_i32
+  i32.const 1295611234
+  f32.reinterpret_i32
+  i32.const -1109674586
+  f32.reinterpret_i32
   global.get $std/math/INEXACT
-  call $std/math/test_round
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3087
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.0000152587890625
-  f32.const 1
-  f32.const 0
+  i32.const 1098680439
+  f32.reinterpret_i32
+  i32.const 1100245042
+  f32.reinterpret_i32
+  i32.const 1684334277
+  f32.reinterpret_i32
+  i32.const 1035731698
+  f32.reinterpret_i32
   global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3088
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.0000152587890625
-  f32.const -1
-  f32.const 0
+  i32.const 1090853857
+  f32.reinterpret_i32
+  i32.const 1054272066
+  f32.reinterpret_i32
+  i32.const 1075559602
+  f32.reinterpret_i32
+  i32.const 1008617886
+  f32.reinterpret_i32
   global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3089
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.9999923706054688
+  i32.const 1085970832
+  f32.reinterpret_i32
+  i32.const 1093100817
+  f32.reinterpret_i32
+  i32.const 1287904676
+  f32.reinterpret_i32
+  i32.const -1162174975
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2868
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1075485704
+  f32.reinterpret_i32
+  i32.const 1099495801
+  f32.reinterpret_i32
+  i32.const 1247602305
+  f32.reinterpret_i32
+  i32.const 1050126003
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2869
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1025308839
+  f32.reinterpret_i32
+  i32.const 1010328623
+  f32.reinterpret_i32
+  i32.const 1064748518
+  f32.reinterpret_i32
+  i32.const -1091052619
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2870
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1085163537
+  f32.reinterpret_i32
+  i32.const 1098713353
+  f32.reinterpret_i32
+  i32.const 1389090779
+  f32.reinterpret_i32
+  i32.const -1093771829
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2871
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  i32.const 1095625895
+  f32.reinterpret_i32
+  i32.const 1097793372
+  f32.reinterpret_i32
+  i32.const 1527074508
+  f32.reinterpret_i32
+  i32.const 1037429592
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  call $std/math/test_powf
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 2872
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const nan:0x400000
+  f32.const 0
   f32.const 1
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3090
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.9999923706054688
-  f32.const -1
+  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  f32.const 1
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3091
+   i32.const 2875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 7.888609052210118e-31
+  f32.const inf
   f32.const 0
+  f32.const 1
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3092
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -7.888609052210118e-31
-  f32.const -0
+  f32.const inf
+  f32.neg
   f32.const 0
-  global.get $std/math/INEXACT
-  call $std/math/test_roundf
+  f32.const 1
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3093
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const 0
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3104
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const 0
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 1
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3105
+   i32.const 2879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3106
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  f64.const 1
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3107
+   i32.const 2882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  f64.const 0
+  f32.const inf
+  f32.const 1
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3108
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
-  f64.const -1
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const 1
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3109
+   i32.const 2884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1
-  f64.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3110
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  f64.const 0
+  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 32
+   i32.const 2887
+   i32.const 1
+   call $~lib/builtins/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_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3111
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  f32.const 0
   i32.const 0
-  call $std/math/test_sign
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3112
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
+  f32.const -1
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3120
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  f32.const -0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3121
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
+  f32.const 0
+  f32.const nan:0x400000
+  f32.const nan:0x400000
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3122
+   i32.const 2892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const 1
+  i32.const 1065353217
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3123
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
+  f32.const inf
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3124
+   i32.const 2895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const -1
+  i32.const -1082130431
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3125
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  f32.const 1
+  f32.neg
+  f32.const inf
+  f32.const inf
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3126
+   i32.const 2897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  i32.const 1065353217
+  f32.reinterpret_i32
   f32.const inf
   f32.neg
-  f32.const -1
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3127
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const inf
+  f32.const inf
+  f32.neg
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_signf
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3128
+   i32.const 2900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  local.set $0
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f64.const -0
-  local.set $5
-  local.get $5
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f64.const 1
-  local.set $0
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f64.const -1
-  local.set $5
-  local.get $5
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f64.const nan:0x8000000000000
-  local.set $0
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f64.const nan:0x8000000000000
-  f64.neg
-  local.set $5
-  local.get $5
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f64.const inf
-  local.set $0
-  local.get $0
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f64.const inf
-  f64.neg
-  local.set $5
-  local.get $5
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f32.const 0
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f32.const -0
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f32.const 1
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f32.const -1
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f32.const nan:0x400000
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
-  f32.const nan:0x400000
-  f32.neg
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f32.const inf
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 0
-  i32.eq
-  drop
+  i32.const -1082130431
+  f32.reinterpret_i32
   f32.const inf
   f32.neg
-  local.set $4
-  local.get $4
-  i32.reinterpret_f32
-  i32.const 31
-  i32.shr_u
-  i32.const 0
-  i32.ne
-  i32.const 1
-  i32.eq
-  drop
-  f64.const -8.06684839057968
-  f64.const 4.535662560676869
-  f64.const 1.0044767307740567
-  f64.const 0
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3165
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  f64.const 4.345239849338305
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const inf
+  f32.neg
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3166
+   i32.const 2902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -8.38143342755525
-  f64.const -2.763607337379588
-  f64.const -0.09061141541648476
-  f64.const 0
+  i32.const 1065353215
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3167
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.531673581913484
-  f64.const 4.567535276842744
-  f64.const -1.9641383050707404
-  f64.const 0
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3168
+   i32.const 2905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  f64.const -0.35572720174700656
-  f64.const 0
+  f32.const 0
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3169
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -6.450045556060236
-  f64.const 0.6620717923376739
-  f64.const 0.17067236731650248
-  f64.const 0
+  i32.const -1082130433
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3170
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  f64.const -0.016443286217702822
-  f64.const 0
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3171
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  f64.const -0.792054511984896
-  f64.const 0
+  f32.const -0
+  f32.const inf
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3172
+   i32.const 2909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  f64.const 0.615702673197924
-  f64.const 0
+  f32.const 0
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3173
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
-  f64.const -0.0106815621160685
-  f64.const 0
+  f32.const -0
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3174
+   i32.const 2912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 1
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  f32.const 0
+  i32.const -8388609
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3177
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 1
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  f32.const 0
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3178
+   i32.const 2915
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0
+  i32.const -8388609
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3179
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0
+  f32.const -2
+  f32.const inf
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3180
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 1
-  f64.const 0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  f32.const -0
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3181
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 1
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  f32.const -0
+  f32.const -1
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3182
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/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
+  f32.const -0
+  i32.const -1048051712
+  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/DIVBYZERO
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3183
+   i32.const 2920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1.5
-  f64.const 1
-  f64.const 0.5
-  f64.const 0
+  f32.const inf
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3184
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  f64.const 1
-  f64.const 0
-  f64.const 0
+  f32.const inf
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3185
+   i32.const 2923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
-  f64.const 1
-  f64.const -0
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const 2139095039
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3186
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  f32.const inf
+  f32.neg
+  i32.const 1
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3187
+   i32.const 2926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  f32.const inf
+  f32.neg
+  i32.const -8388609
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3188
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 1
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const -2147483647
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3189
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -1
-  f64.const 0
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const 1084227584
+  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3190
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -1
-  f64.const -0
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const -1063256064
+  f32.reinterpret_i32
+  f32.const -0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3191
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  f64.const -1
-  f64.const 0.5
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const 1086324736
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3192
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0.5
-  f64.const -1
-  f64.const -0.5
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const -1061158912
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3193
+   i32.const 2932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const -1
-  f64.const 0
-  f64.const 0
+  f32.const inf
+  f32.neg
+  i32.const 1073741825
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3194
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -1
-  f64.const -0
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  f32.const -1
+  i32.const 1065353217
+  f32.reinterpret_i32
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3195
+   i32.const 2935
    i32.const 1
    call $~lib/builtins/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.const -2147483647
+  f32.reinterpret_i32
+  i32.const -1073741825
+  f32.reinterpret_i32
+  f32.const nan:0x400000
+  f32.const 0
+  global.get $std/math/INVALID
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3196
+   i32.const 2936
    i32.const 1
    call $~lib/builtins/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.const -1054867456
+  f32.reinterpret_i32
+  i32.const 1134198784
+  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
+  f32.const 0
+  global.get $std/math/INEXACT
+  global.get $std/math/OVERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3197
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  f64.const -1
-  f64.const 0
-  f64.const 0
+  f32.const inf
+  f32.neg
+  f32.const 0.5
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3198
+   i32.const 2939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2
-  f64.const -1
-  f64.const -0
-  f64.const 0
+  i32.const 2
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 444596224
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3199
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 8
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 452984832
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3200
+   i32.const 2942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2097152
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 528482304
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3201
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const -1
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 4194304
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 2130706432
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3202
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 8388608
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 536870912
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3203
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 8388608
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 2122317824
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3204
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.const 0
-  f64.const 0
+  i32.const 16777216
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 2113929216
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3205
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const 0
+  i32.const 25165824
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 545259520
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3206
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 25165824
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 2105540608
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3207
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 444596224
+  f32.reinterpret_i32
+  f32.const 2
+  i32.const 2
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3208
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 545259520
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 805306368
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3209
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.const -0
-  f64.const 0
+  i32.const 796917760
+  f32.reinterpret_i32
+  f32.const 2
+  i32.const 528482304
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3210
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const inf
-  f64.neg
-  f64.const -0
-  f64.const 0
+  i32.const 805306368
+  f32.reinterpret_i32
+  f32.const 2
+  i32.const 545259520
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3211
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 872415232
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 1258291200
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3212
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 940572672
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1002438656
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3213
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 947912704
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1006632960
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3214
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 998244352
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1031798784
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3215
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 1024458752
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1044381696
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3216
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const 0
-  f64.const nan:0x8000000000000
-  f64.const 0
+  f32.const 0.0625
+  f32.const 0.5
+  f32.const 0.25
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3217
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  f32.const 0.25
+  f32.const 2
+  f32.const 0.0625
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3218
+   i32.const 2960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2105540608
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1585446912
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3219
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2105540608
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 25165824
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3220
+   i32.const 2963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const nan:0x8000000000000
-  f64.const -0
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 2113929216
+  f32.reinterpret_i32
+  f32.const inf
+  f32.const inf
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3221
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const 2
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2113929216
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 16777216
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3222
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const -0.5
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2113929216
+  f32.reinterpret_i32
+  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 32
-   i32.const 3223
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 2122317824
+  f32.reinterpret_i32
+  f32.const 0.5
+  i32.const 1593835520
+  f32.reinterpret_i32
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3224
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const 2
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2122317824
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 8388608
+  f32.reinterpret_i32
+  f32.const 0
+  i32.const 0
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3225
+   i32.const 2968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const -0.5
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2139095039
+  f32.reinterpret_i32
+  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 32
-   i32.const 3226
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  f64.const 0
+  i32.const 2139095039
+  f32.reinterpret_i32
+  f32.const inf
+  f32.neg
+  f32.const 0
+  f32.const 0
   i32.const 0
-  call $std/math/test_rem
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3227
+   i32.const 2971
    i32.const 1
    call $~lib/builtins/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.const 2130706432
+  f32.reinterpret_i32
+  f32.const -2
+  f32.const 0
+  i32.const -1962934272
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3228
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/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.const 2130706432
+  f32.reinterpret_i32
+  i32.const -1069547520
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3229
+   i32.const 2974
    i32.const 1
    call $~lib/builtins/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.const 2130706432
+  f32.reinterpret_i32
+  i32.const -1015087104
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3230
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1
-  f64.const inf
-  f64.const 1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  i32.const 2130706432
+  f32.reinterpret_i32
+  f32.const -256
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3231
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -1
-  f64.const inf
-  f64.const -1
-  f64.const 0
-  i32.const 0
-  call $std/math/test_rem
+  i32.const 2130706432
+  f32.reinterpret_i32
+  i32.const -1014988800
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3232
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2130706432
+  f32.reinterpret_i32
+  i32.const -1014890496
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3233
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2130706432
+  f32.reinterpret_i32
+  i32.const -1014857728
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3234
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/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.const 2130706432
+  f32.reinterpret_i32
+  i32.const -956301824
+  f32.reinterpret_i32
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3235
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/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.const 2130706432
+  f32.reinterpret_i32
+  f32.const -32768
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3236
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2139095032
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const 2097153
+  f32.reinterpret_i32
+  i32.const -1258291196
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3237
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const inf
-  f64.neg
-  f64.const inf
-  f64.neg
-  f64.const nan:0x8000000000000
-  f64.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_rem
+  i32.const 2139095032
+  f32.reinterpret_i32
+  f32.const -2
+  f32.const 0
+  i32.const -1979711480
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3238
+   i32.const 2983
    i32.const 1
    call $~lib/builtins/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.const -16777216
+  f32.reinterpret_i32
+  i32.const -956301824
+  f32.reinterpret_i32
+  f32.const -0
+  f32.const 0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3239
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/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.const -16777216
+  f32.reinterpret_i32
+  f32.const -32768
+  f32.const 0
+  f32.const -0
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3240
+   i32.const 2986
    i32.const 1
    call $~lib/builtins/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.const -8388616
+  f32.reinterpret_i32
+  f32.const -1
+  i32.const -2145386495
+  f32.reinterpret_i32
+  i32.const 889192452
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3241
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/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.const -8388616
+  f32.reinterpret_i32
+  f32.const -2
+  f32.const 0
+  i32.const -1979711480
+  f32.reinterpret_i32
+  global.get $std/math/INEXACT
+  global.get $std/math/UNDERFLOW
+  i32.or
+  call $std/math/test_powf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3242
+   i32.const 2988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 8e-323
-  f64.const inf
-  f64.const 8e-323
-  f64.const 0
+  call $~lib/bindings/dom/Math.random
+  i64.reinterpret_f64
+  call $~lib/math/NativeMath.seedRandom
   i32.const 0
-  call $std/math/test_rem
+  local.set $2
+  loop $for-loop|0
+   local.get $2
+   f64.convert_i32_s
+   f64.const 1e6
+   f64.lt
+   local.set $3
+   local.get $3
+   if
+    call $~lib/math/NativeMath.random
+    local.set $1
+    local.get $1
+    f64.const 0
+    f64.ge
+    if (result i32)
+     local.get $1
+     f64.const 1
+     f64.lt
+    else
+     i32.const 0
+    end
+    i32.eqz
+    if
+     i32.const 0
+     i32.const 32
+     i32.const 2997
+     i32.const 3
+     call $~lib/builtins/abort
+     unreachable
+    end
+    local.get $2
+    i32.const 1
+    i32.add
+    local.set $2
+    br $for-loop|0
+   end
+  end
+  f64.const -8.06684839057968
+  f64.const -8
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3243
+   i32.const 3011
    i32.const 1
    call $~lib/builtins/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
+  f64.const 4.345239849338305
+  f64.const 4
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3252
+   i32.const 3012
    i32.const 1
    call $~lib/builtins/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
+  f64.const -8.38143342755525
+  f64.const -8
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3253
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/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
+  f64.const -6.531673581913484
+  f64.const -7
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3254
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/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
+  f64.const 9.267056966972586
+  f64.const 9
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3255
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.6619858980995045
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3256
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.4066039223853553
+  f64.const -0
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3257
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5617597462207241
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3258
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.7741522965913037
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3259
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.6787637026394024
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3260
+   i32.const 3020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  f32.const -0.010681532323360443
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3261
+   i32.const 3023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const inf
+  f64.const inf
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3264
+   i32.const 3024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 1
-  f32.const -0
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const inf
+  f64.neg
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3265
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0.5
-  f32.const 1
-  f32.const 0.5
-  f32.const 0
+  f64.const 0
+  f64.const 0
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3266
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const 1
-  f32.const -0.5
-  f32.const 0
+  f64.const -0
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3267
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  f32.const 0
+  f64.const 1
+  f64.const 1
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3268
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 1
-  f32.const -0
-  f32.const 0
+  f64.const -1
+  f64.const -1
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3269
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.5
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3270
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/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
+  f64.const -0.5
+  f64.const -0
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3271
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const 1
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  f64.const 1.5
+  f64.const 2
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3272
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const 1
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  f64.const -1.5
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3273
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  f64.const 1.0000152587890625
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3274
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  f64.const -1.0000152587890625
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3275
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/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
+  f64.const 0.9999923706054688
+  f64.const 1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3276
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -1
-  f32.const 0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  f64.const -0.9999923706054688
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3277
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -1
-  f32.const -0
-  f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  f64.const 7.888609052210118e-31
+  f64.const 0
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3278
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/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
+  f64.const -7.888609052210118e-31
+  f64.const -0
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3279
+   i32.const 3039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0.5
-  f32.const -1
-  f32.const -0.5
+  block $~lib/math/NativeMath.round<f64>|inlined.1 (result f64)
+   f64.const 9007199254740990
+   local.set $0
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $0
+   f64.ceil
+   local.set $1
+   local.get $1
+   local.get $1
+   f64.const 1
+   f64.sub
+   local.get $1
+   f64.const 0.5
+   f64.sub
+   local.get $0
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.1
+  end
+  f64.const 9007199254740990
+  f64.eq
+  drop
+  block $~lib/math/NativeMath.round<f64>|inlined.2 (result f64)
+   f64.const -9007199254740990
+   local.set $1
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $1
+   f64.ceil
+   local.set $0
+   local.get $0
+   local.get $0
+   f64.const 1
+   f64.sub
+   local.get $0
+   f64.const 0.5
+   f64.sub
+   local.get $1
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.2
+  end
+  f64.const -9007199254740990
+  f64.eq
+  drop
+  block $~lib/math/NativeMath.round<f64>|inlined.3 (result f64)
+   f64.const 9007199254740991
+   local.set $0
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $0
+   f64.ceil
+   local.set $1
+   local.get $1
+   local.get $1
+   f64.const 1
+   f64.sub
+   local.get $1
+   f64.const 0.5
+   f64.sub
+   local.get $0
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.3
+  end
+  f64.const 9007199254740991
+  f64.eq
+  drop
+  block $~lib/math/NativeMath.round<f64>|inlined.4 (result f64)
+   f64.const -9007199254740991
+   local.set $1
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $1
+   f64.ceil
+   local.set $0
+   local.get $0
+   local.get $0
+   f64.const 1
+   f64.sub
+   local.get $0
+   f64.const 0.5
+   f64.sub
+   local.get $1
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.4
+  end
+  f64.const -9007199254740991
+  f64.eq
+  drop
+  block $~lib/math/NativeMath.round<f64>|inlined.5 (result f64)
+   f64.const -1797693134862315708145274e284
+   local.set $0
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   local.get $0
+   f64.ceil
+   local.set $1
+   local.get $1
+   local.get $1
+   f64.const 1
+   f64.sub
+   local.get $1
+   f64.const 0.5
+   f64.sub
+   local.get $0
+   f64.le
+   select
+   br $~lib/math/NativeMath.round<f64>|inlined.5
+  end
+  f64.const -1797693134862315708145274e284
+  f64.eq
+  drop
+  f32.const -8.066848754882812
+  f32.const -8
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3280
+   i32.const 3054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -1
-  f32.const 0
+  f32.const 4.345239639282227
+  f32.const 4
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3281
+   i32.const 3055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const -0
+  f32.const -8.381433486938477
+  f32.const -8
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3282
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const -1
-  f32.const -0.5
+  f32.const -6.531673431396484
+  f32.const -7
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3283
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.5
-  f32.const -1
-  f32.const 0.5
+  f32.const 9.267057418823242
+  f32.const 9
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3284
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const -1
-  f32.const 0
+  f32.const 0.6619858741760254
+  f32.const 1
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3285
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const -1
+  f32.const -0.40660393238067627
   f32.const -0
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3286
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -1
-  f32.const nan:0x400000
+  f32.const 0.5617597699165344
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3287
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -1
-  f32.const nan:0x400000
+  f32.const 0.7741522789001465
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3288
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
+  f32.const -0.6787636876106262
   f32.const -1
-  f32.const nan:0x400000
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3289
+   i32.const 3063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3290
+   i32.const 3066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const inf
+  f32.const inf
   f32.const 0
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3291
+   i32.const 3067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
   f32.const inf
-  f32.const 0
+  f32.neg
+  f32.const inf
+  f32.neg
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3292
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/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
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3293
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const -0
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3294
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const 1
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3295
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3296
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.const -0
+  f32.const 0.5
+  f32.const 1
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3297
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const inf
-  f32.neg
+  f32.const -0.5
   f32.const -0
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3298
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/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
+  f64.const 1.5
+  f64.const 2
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3299
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  f64.const -1.5
+  f64.const -1
+  f64.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3300
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const 1.0000152587890625
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3301
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const -1.0000152587890625
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3302
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const 0.9999923706054688
+  f32.const 1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3303
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  f32.const nan:0x400000
+  f32.const -0.9999923706054688
+  f32.const -1
   f32.const 0
-  i32.const 0
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3304
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  f32.const nan:0x400000
+  f32.const 7.888609052210118e-31
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  f32.const 0
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3305
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
+  f32.const -7.888609052210118e-31
   f32.const -0
-  f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  global.get $std/math/INEXACT
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3306
+   i32.const 3082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  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 32
-   i32.const 3307
+   i32.const 3093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -0
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -0
+  f64.const -0
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3308
+   i32.const 3094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
-  end
-  f32.const inf
-  f32.const 2
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  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 32
-   i32.const 3309
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  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 32
-   i32.const 3310
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const -1
+  f64.const -1
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3311
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const 2
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  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 32
-   i32.const 3312
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const -0.5
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  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 32
-   i32.const 3313
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const inf
+  f64.neg
+  f64.const -1
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3314
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  f32.const 0
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  f64.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3315
+   i32.const 3101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const 0
+  f32.const 0
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3316
+   i32.const 3109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  f32.const nan:0x400000
+  f32.const -0
+  f32.const -0
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3317
+   i32.const 3110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  f32.const inf
   f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3318
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  f32.const -1
+  f32.const 2
+  f32.const 1
   f32.const 0
   i32.const 0
-  call $std/math/test_remf
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3319
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.const nan:0x400000
+  f32.const -1
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3320
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.const nan:0x400000
+  f32.const -2
+  f32.const -1
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3321
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/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
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3322
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/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
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3323
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  f32.neg
+  f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
+  i32.const 0
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3324
+   i32.const 3117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.neg
-  f32.const inf
-  f32.neg
-  f32.const nan:0x400000
-  f32.const 0
-  global.get $std/math/INVALID
-  call $std/math/test_remf
-  i32.eqz
-  if
+  block $~lib/math/NativeMath.signbit<f64>|inlined.2 (result i32)
+   f64.const 0
+   local.set $1
    i32.const 0
-   i32.const 32
-   i32.const 3325
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.2
   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.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.3 (result i32)
+   f64.const -0
+   local.set $0
    i32.const 0
-   i32.const 32
-   i32.const 3326
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.3
   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.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.4 (result i32)
+   f64.const 1
+   local.set $1
    i32.const 0
-   i32.const 32
-   i32.const 3327
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.4
   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.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.5 (result i32)
+   f64.const -1
+   local.set $0
    i32.const 0
-   i32.const 32
-   i32.const 3328
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.5
   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.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.6 (result i32)
+   f64.const nan:0x8000000000000
+   local.set $1
    i32.const 0
-   i32.const 32
-   i32.const 3329
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.6
   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.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.7 (result i32)
+   f64.const nan:0x8000000000000
+   f64.neg
+   local.set $0
    i32.const 0
-   i32.const 32
-   i32.const 3330
+   drop
    i32.const 1
-   call $~lib/builtins/abort
-   unreachable
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.7
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.8 (result i32)
+   f64.const inf
+   local.set $1
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.8
+  end
+  i32.const 0
+  i32.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f64>|inlined.9 (result i32)
+   f64.const inf
+   f64.neg
+   local.set $0
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.9
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.2 (result i32)
+   f32.const 0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.2
+  end
+  i32.const 0
+  i32.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.3 (result i32)
+   f32.const -0
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.3
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.4 (result i32)
+   f32.const 1
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.4
+  end
+  i32.const 0
+  i32.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.5 (result i32)
+   f32.const -1
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.5
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.6 (result i32)
+   f32.const nan:0x400000
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.6
+  end
+  i32.const 0
+  i32.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.7 (result i32)
+   f32.const nan:0x400000
+   f32.neg
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.7
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.8 (result i32)
+   f32.const inf
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.8
   end
+  i32.const 0
+  i32.ne
+  i32.const 0
+  i32.eq
+  drop
+  block $~lib/math/NativeMath.signbit<f32>|inlined.9 (result i32)
+   f32.const inf
+   f32.neg
+   local.set $4
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 4
+   i32.const 4
+   i32.eq
+   drop
+   local.get $4
+   i32.reinterpret_f32
+   i32.const 31
+   i32.shr_u
+   br $~lib/math/NativeMath.signbit<f32>|inlined.9
+  end
+  i32.const 0
+  i32.ne
+  i32.const 1
+  i32.eq
+  drop
   f64.const -8.06684839057968
   f64.const -0.9774292928781227
   f64.const -0.14564912021160126
@@ -50933,7 +49735,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3342
+   i32.const 3155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50947,7 +49749,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3343
+   i32.const 3156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50961,7 +49763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3344
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50975,7 +49777,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3345
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50989,7 +49791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3346
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51003,7 +49805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3347
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51017,7 +49819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3348
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51031,7 +49833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3349
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51045,7 +49847,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3350
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51059,7 +49861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3351
+   i32.const 3164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51073,7 +49875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3354
+   i32.const 3167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51087,7 +49889,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3355
+   i32.const 3168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51101,7 +49903,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3356
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51115,7 +49917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3357
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51131,7 +49933,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3358
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51147,7 +49949,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3359
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51161,7 +49963,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3360
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51175,7 +49977,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3361
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51189,7 +49991,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3362
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51203,7 +50005,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3363
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51217,7 +50019,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3364
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51231,7 +50033,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3365
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51245,7 +50047,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3366
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51259,7 +50061,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3367
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51273,7 +50075,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3368
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51287,7 +50089,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3369
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51301,7 +50103,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3370
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51315,7 +50117,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3371
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51329,7 +50131,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3372
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51343,7 +50145,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3373
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51357,7 +50159,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3374
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51371,7 +50173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3375
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51385,7 +50187,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3376
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51399,7 +50201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3377
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51413,7 +50215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3378
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51429,7 +50231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3379
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51445,7 +50247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3380
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51461,7 +50263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3381
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51477,7 +50279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3382
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51493,7 +50295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3383
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51509,7 +50311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3384
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51525,7 +50327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3385
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51541,7 +50343,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3386
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51557,7 +50359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3387
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51573,7 +50375,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3388
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51589,7 +50391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3389
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51605,7 +50407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3390
+   i32.const 3203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51619,7 +50421,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3393
+   i32.const 3206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51633,7 +50435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3394
+   i32.const 3207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51647,7 +50449,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3395
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51662,7 +50464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3396
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51676,16 +50478,35 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3397
+   i32.const 3210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.1 (result f64)
+   f64.const 1
+   global.get $std/math/kPI
+   f64.mul
+   f64.const 2
+   f64.div
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.1
+  end
+  f64.const 1
   global.get $std/math/kPI
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.sin
-  global.get $std/math/kPI
+  f64.mul
   f64.const 2
   f64.div
   call $~lib/bindings/dom/Math.sin
@@ -51694,17 +50515,32 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3400
+   i32.const 3213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 2
-  global.get $std/math/kPI
-  f64.mul
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.sin
+  block $~lib/math/NativeMath.sin<f64>|inlined.2 (result f64)
+   f64.const 2
+   global.get $std/math/kPI
+   f64.mul
+   f64.const 2
+   f64.div
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.2
+  end
   f64.const 2
   global.get $std/math/kPI
   f64.mul
@@ -51716,256 +50552,511 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3401
+   i32.const 3214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.3 (result f64)
+   f64.const 2.3283064365386963e-10
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.3
+  end
   f64.const 2.3283064365386963e-10
-  f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3404
+   i32.const 3217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.4 (result f64)
+   f64.const -2.3283064365386963e-10
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.4
+  end
   f64.const -2.3283064365386963e-10
-  f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3405
+   i32.const 3218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.5 (result f64)
+   f64.const 0.39269908169872414
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.5
+  end
   f64.const 0.3826834323650898
-  f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3407
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.6 (result f64)
+   f64.const -0.39269908169872414
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.6
+  end
   f64.const -0.3826834323650898
-  f64.const -0.39269908169872414
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3408
+   i32.const 3221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.7 (result f64)
+   f64.const 0.5
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.7
+  end
   f64.const 0.479425538604203
-  f64.const 0.5
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3411
+   i32.const 3224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.8 (result f64)
+   f64.const -0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.8
+  end
   f64.const -0.479425538604203
-  f64.const -0.5
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3412
+   i32.const 3225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.9 (result f64)
+   global.get $std/math/kPI
+   f64.const 2
+   f64.div
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.9
+  end
   f64.const 1
-  global.get $std/math/kPI
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3413
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.10 (result f64)
+   global.get $std/math/kPI
+   f64.neg
+   f64.const 2
+   f64.div
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.10
+  end
   f64.const -1
-  global.get $std/math/kPI
-  f64.neg
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3414
+   i32.const 3227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.11 (result f64)
+   global.get $std/math/kPI
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.11
+  end
   f64.const 1.2246467991473532e-16
-  global.get $std/math/kPI
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3416
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.12 (result f64)
+   f64.const 2200
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.12
+  end
   f64.const -7.047032979958965e-14
-  f64.const 2200
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3417
+   i32.const 3230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.13 (result f64)
+   f64.const 7
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.13
+  end
   f64.const -0.7071067811865477
-  f64.const 7
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3419
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.14 (result f64)
+   f64.const 9
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.14
+  end
   f64.const 0.7071067811865474
-  f64.const 9
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3420
+   i32.const 3233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.15 (result f64)
+   f64.const 11
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.15
+  end
   f64.const 0.7071067811865483
-  f64.const 11
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3421
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.16 (result f64)
+   f64.const 13
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.16
+  end
   f64.const -0.7071067811865479
-  f64.const 13
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3422
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.17 (result f64)
+   f64.const 1048576
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.17
+  end
   f64.const -3.2103381051568376e-11
-  f64.const 1048576
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3423
+   i32.const 3236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.18 (result f64)
+   global.get $std/math/kTwo120
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.18
+  end
   f64.const 0.377820109360752
-  global.get $std/math/kTwo120
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3426
+   i32.const 3239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.sin<f64>|inlined.19 (result f64)
+   global.get $std/math/kTwo120
+   f64.neg
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/sin64
+   br $~lib/math/NativeMath.sin<f64>|inlined.19
+  end
   f64.const -0.377820109360752
-  global.get $std/math/kTwo120
-  f64.neg
-  call $~lib/math/NativeMath.sin
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3427
+   i32.const 3240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51979,7 +51070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3436
+   i32.const 3249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51993,7 +51084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3437
+   i32.const 3250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52007,7 +51098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3438
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52021,7 +51112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3439
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52035,7 +51126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3440
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52049,7 +51140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3441
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52063,7 +51154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3442
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52077,7 +51168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3443
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52091,7 +51182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3444
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52105,7 +51196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3445
+   i32.const 3258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52119,7 +51210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3448
+   i32.const 3261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52133,7 +51224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3449
+   i32.const 3262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52147,7 +51238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3450
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52162,7 +51253,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3451
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52176,7 +51267,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3452
+   i32.const 3265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52190,7 +51281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3455
+   i32.const 3268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52204,7 +51295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3456
+   i32.const 3269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52218,7 +51309,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3457
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52232,7 +51323,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3458
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52248,7 +51339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3459
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52264,7 +51355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3460
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52278,7 +51369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3461
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52292,7 +51383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3462
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52306,7 +51397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3463
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52320,7 +51411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3464
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52334,7 +51425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3465
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52348,7 +51439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3466
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52362,7 +51453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3467
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52376,7 +51467,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3468
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52390,7 +51481,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3469
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52404,7 +51495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3470
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52418,7 +51509,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3471
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52432,7 +51523,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3472
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52446,7 +51537,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3473
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52460,7 +51551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3474
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52474,7 +51565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3475
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52488,7 +51579,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3476
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52502,7 +51593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3477
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52516,7 +51607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3478
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52530,7 +51621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3479
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52544,7 +51635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3480
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52560,7 +51651,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3481
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52576,7 +51667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3482
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52592,7 +51683,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3483
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52608,7 +51699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3484
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52624,7 +51715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3485
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52640,7 +51731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3486
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52656,7 +51747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3487
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52672,7 +51763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3488
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52688,7 +51779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3489
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52704,7 +51795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3490
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52720,7 +51811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3491
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52736,7 +51827,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3492
+   i32.const 3305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52750,7 +51841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3495
+   i32.const 3308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52764,7 +51855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3496
+   i32.const 3309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52778,7 +51869,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3497
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52792,7 +51883,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3498
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52806,7 +51897,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3499
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52820,7 +51911,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3500
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52834,7 +51925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3501
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52848,7 +51939,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3502
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52862,7 +51953,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3503
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52876,7 +51967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3504
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52890,7 +51981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3505
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52904,7 +51995,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3506
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52918,7 +52009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3507
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52933,7 +52024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3508
+   i32.const 3321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52947,7 +52038,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3520
+   i32.const 3333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52961,7 +52052,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3521
+   i32.const 3334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52975,7 +52066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3522
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52989,7 +52080,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3523
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53003,7 +52094,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3524
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53017,7 +52108,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3525
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53031,7 +52122,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3526
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53045,7 +52136,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3527
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53059,7 +52150,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3528
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53073,7 +52164,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3529
+   i32.const 3342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53087,7 +52178,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3532
+   i32.const 3345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53101,7 +52192,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3533
+   i32.const 3346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53115,7 +52206,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3534
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53131,7 +52222,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3535
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53145,7 +52236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3536
+   i32.const 3349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53159,7 +52250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3545
+   i32.const 3358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53173,7 +52264,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3546
+   i32.const 3359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53187,7 +52278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3547
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53201,7 +52292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3548
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53215,7 +52306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3549
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53229,7 +52320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3550
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53243,7 +52334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3551
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53257,7 +52348,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3552
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53271,7 +52362,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3553
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53285,7 +52376,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3554
+   i32.const 3367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53299,7 +52390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3557
+   i32.const 3370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53313,7 +52404,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3558
+   i32.const 3371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53327,7 +52418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3559
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53343,7 +52434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3560
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53357,7 +52448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3561
+   i32.const 3374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53371,7 +52462,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3573
+   i32.const 3386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53385,7 +52476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3574
+   i32.const 3387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53399,7 +52490,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3575
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53413,7 +52504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3576
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53427,7 +52518,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3577
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53441,7 +52532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3578
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53455,7 +52546,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3579
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53469,7 +52560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3580
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53483,7 +52574,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3581
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53497,7 +52588,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3582
+   i32.const 3395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53511,7 +52602,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3585
+   i32.const 3398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53525,7 +52616,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3586
+   i32.const 3399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53540,7 +52631,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3587
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53554,7 +52645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3588
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53568,7 +52659,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3589
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53582,7 +52673,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3590
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53596,7 +52687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3591
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53610,7 +52701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3592
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53624,7 +52715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3593
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53638,7 +52729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3594
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53652,7 +52743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3595
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53666,7 +52757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3596
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53680,7 +52771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3597
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53694,7 +52785,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3598
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53708,7 +52799,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3599
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53722,7 +52813,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3600
+   i32.const 3413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53736,7 +52827,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3601
+   i32.const 3414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53750,7 +52841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3602
+   i32.const 3415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53764,7 +52855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3603
+   i32.const 3416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53778,7 +52869,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3604
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53792,7 +52883,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3605
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53806,7 +52897,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3606
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53820,7 +52911,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3607
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53834,7 +52925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3608
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53848,7 +52939,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3609
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53862,7 +52953,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3610
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53876,7 +52967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3611
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53890,7 +52981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3612
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53904,7 +52995,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3613
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53918,7 +53009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3614
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53932,7 +53023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3615
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53946,7 +53037,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3616
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53960,7 +53051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3617
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53974,7 +53065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3618
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53988,7 +53079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3619
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54002,7 +53093,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3620
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54016,7 +53107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3621
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54030,7 +53121,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3622
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54044,7 +53135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3623
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54058,7 +53149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3624
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54072,7 +53163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3625
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54086,7 +53177,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3626
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54100,7 +53191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3627
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54114,7 +53205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3628
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54128,7 +53219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3629
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54142,7 +53233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3630
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54156,7 +53247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3631
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54170,7 +53261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3632
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54184,7 +53275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3633
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54198,7 +53289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3634
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54212,7 +53303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3635
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54226,7 +53317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3636
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54240,7 +53331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3637
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54254,7 +53345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3638
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54268,7 +53359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3639
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54282,7 +53373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3640
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54296,7 +53387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3641
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54310,7 +53401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3642
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54324,7 +53415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3643
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54338,7 +53429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3644
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54352,7 +53443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3645
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54366,7 +53457,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3646
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54380,7 +53471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3647
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54394,7 +53485,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3648
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54408,7 +53499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3649
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54422,7 +53513,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3650
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54436,7 +53527,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3651
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54450,7 +53541,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3652
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54464,7 +53555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3653
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54478,7 +53569,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3654
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54492,7 +53583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3655
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54506,7 +53597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3656
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54520,7 +53611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3657
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54534,7 +53625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3658
+   i32.const 3471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54548,7 +53639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3667
+   i32.const 3480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54562,7 +53653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3668
+   i32.const 3481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54576,7 +53667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3669
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54590,7 +53681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3670
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54604,7 +53695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3671
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54618,7 +53709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3672
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54632,7 +53723,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3673
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54646,7 +53737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3674
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54660,7 +53751,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3675
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54674,7 +53765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3676
+   i32.const 3489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54688,7 +53779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3679
+   i32.const 3492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54702,7 +53793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3680
+   i32.const 3493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54717,7 +53808,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3681
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54731,7 +53822,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3682
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54745,7 +53836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3683
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54759,7 +53850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3684
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54773,7 +53864,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3685
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54787,7 +53878,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3686
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54801,7 +53892,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3687
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54815,7 +53906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3688
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54829,7 +53920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3689
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54843,7 +53934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3690
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54857,7 +53948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3691
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54871,7 +53962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3692
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54885,7 +53976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3693
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54899,7 +53990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3694
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54913,7 +54004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3695
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54927,7 +54018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3696
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54941,7 +54032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3697
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54955,7 +54046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3698
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54969,7 +54060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3699
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54983,7 +54074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3700
+   i32.const 3513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54997,7 +54088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3712
+   i32.const 3525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55011,7 +54102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3713
+   i32.const 3526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55025,7 +54116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3714
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55039,7 +54130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3715
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55053,7 +54144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3716
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55067,7 +54158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3717
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55081,7 +54172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3718
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55095,7 +54186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3719
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55109,7 +54200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3720
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55123,7 +54214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3721
+   i32.const 3534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55137,7 +54228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3724
+   i32.const 3537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55151,7 +54242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3725
+   i32.const 3538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55165,7 +54256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3726
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55179,7 +54270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3727
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55195,7 +54286,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3728
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55211,7 +54302,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3729
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55225,7 +54316,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3730
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55239,7 +54330,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3731
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55253,7 +54344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3732
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55267,7 +54358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3733
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55281,7 +54372,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3734
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55295,7 +54386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3735
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55309,7 +54400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3736
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55323,7 +54414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3737
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55337,7 +54428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3738
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55351,7 +54442,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3739
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55365,7 +54456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3740
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55379,7 +54470,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3741
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55393,7 +54484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3742
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55407,7 +54498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3743
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55421,7 +54512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3744
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55435,7 +54526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3745
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55449,7 +54540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3746
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55463,7 +54554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3747
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55477,7 +54568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3748
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55491,7 +54582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3749
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55507,7 +54598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3750
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55523,7 +54614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3751
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55539,7 +54630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3752
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55555,7 +54646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3753
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55571,7 +54662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3754
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55587,7 +54678,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3755
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55603,7 +54694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3756
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55619,7 +54710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3757
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55635,7 +54726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3758
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55651,7 +54742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3759
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55667,7 +54758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3760
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55683,27 +54774,57 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3761
+   i32.const 3574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
+  block $~lib/math/NativeMath.tan<f64>|inlined.1 (result f64)
+   f64.const 2.3283064365386963e-10
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.1
+  end
   f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.tan
-  f64.const 2.3283064365386963e-10
   call $~lib/bindings/dom/Math.tan
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 3764
+   i32.const 3577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.2 (result f64)
+   f64.const -2.3283064365386963e-10
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.2
+  end
   f64.const -2.3283064365386963e-10
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55711,15 +54832,30 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3765
+   i32.const 3578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 11
-  f64.const 16
-  f64.div
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.3 (result f64)
+   f64.const 11
+   f64.const 16
+   f64.div
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.3
+  end
   f64.const 11
   f64.const 16
   f64.div
@@ -55729,15 +54865,30 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3766
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const -11
-  f64.const 16
-  f64.div
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.4 (result f64)
+   f64.const -11
+   f64.const 16
+   f64.div
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.4
+  end
   f64.const -11
   f64.const 16
   f64.div
@@ -55747,13 +54898,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3767
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.5 (result f64)
+   f64.const 0.39269908169872414
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.5
+  end
   f64.const 0.39269908169872414
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55761,13 +54927,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3768
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.6743358
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.6 (result f64)
+   f64.const 0.6743358
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.6
+  end
   f64.const 0.6743358
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55775,13 +54956,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3769
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 3.725290298461914e-09
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.7 (result f64)
+   f64.const 3.725290298461914e-09
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.7
+  end
   f64.const 3.725290298461914e-09
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55789,15 +54985,30 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3770
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $std/math/kPI
-  f64.const 2
-  f64.div
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.8 (result f64)
+   global.get $std/math/kPI
+   f64.const 2
+   f64.div
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.8
+  end
   global.get $std/math/kPI
   f64.const 2
   f64.div
@@ -55807,13 +55018,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3771
+   i32.const 3584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 0.5
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.9 (result f64)
+   f64.const 0.5
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.9
+  end
   f64.const 0.5
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55821,13 +55047,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3773
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1.107148717794091
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.10 (result f64)
+   f64.const 1.107148717794091
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.10
+  end
   f64.const 1.107148717794091
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55835,17 +55076,32 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3774
+   i32.const 3587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 7
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.11 (result f64)
+   f64.const 7
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.11
+  end
   f64.const 7
   f64.const 4
   f64.div
@@ -55857,17 +55113,32 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3775
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 9
-  f64.const 4
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.12 (result f64)
+   f64.const 9
+   f64.const 4
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.12
+  end
   f64.const 9
   f64.const 4
   f64.div
@@ -55879,17 +55150,32 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3776
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1048576
-  f64.const 2
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.13 (result f64)
+   f64.const 1048576
+   f64.const 2
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.13
+  end
   f64.const 1048576
   f64.const 2
   f64.div
@@ -55901,17 +55187,32 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3777
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f64.const 1048575
-  f64.const 2
-  f64.div
-  global.get $std/math/kPI
-  f64.mul
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.14 (result f64)
+   f64.const 1048575
+   f64.const 2
+   f64.div
+   global.get $std/math/kPI
+   f64.mul
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.14
+  end
   f64.const 1048575
   f64.const 2
   f64.div
@@ -55923,13 +55224,28 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3778
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $std/math/kTwo120
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.15 (result f64)
+   global.get $std/math/kTwo120
+   local.set $0
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $0
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.15
+  end
   global.get $std/math/kTwo120
   call $~lib/bindings/dom/Math.tan
   f64.eq
@@ -55937,14 +55253,29 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3779
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  global.get $std/math/kTwo120
-  f64.neg
-  call $~lib/math/NativeMath.tan
+  block $~lib/math/NativeMath.tan<f64>|inlined.16 (result f64)
+   global.get $std/math/kTwo120
+   f64.neg
+   local.set $1
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $1
+   call $~lib/util/math/tan64
+   br $~lib/math/NativeMath.tan<f64>|inlined.16
+  end
   global.get $std/math/kTwo120
   f64.neg
   call $~lib/bindings/dom/Math.tan
@@ -55953,7 +55284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3780
+   i32.const 3593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55967,7 +55298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3783
+   i32.const 3596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55981,7 +55312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3784
+   i32.const 3597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55995,7 +55326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3785
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56010,7 +55341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3786
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56024,7 +55355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3787
+   i32.const 3600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56038,7 +55369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3796
+   i32.const 3609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56052,7 +55383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3797
+   i32.const 3610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56066,7 +55397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3798
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56080,7 +55411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3799
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56094,7 +55425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3800
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56108,7 +55439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3801
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56122,7 +55453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3802
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56136,7 +55467,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3803
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56150,7 +55481,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3804
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56164,7 +55495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3805
+   i32.const 3618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56178,7 +55509,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3808
+   i32.const 3621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56192,7 +55523,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3809
+   i32.const 3622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56206,7 +55537,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3810
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56221,7 +55552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3811
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56235,7 +55566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3812
+   i32.const 3625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56249,7 +55580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3815
+   i32.const 3628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56263,7 +55594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3816
+   i32.const 3629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56277,7 +55608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3817
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56291,7 +55622,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3818
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56307,7 +55638,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3819
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56323,7 +55654,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3820
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56337,7 +55668,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3821
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56351,7 +55682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3822
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56365,7 +55696,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3823
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56379,7 +55710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3824
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56393,7 +55724,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3825
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56407,7 +55738,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3826
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56421,7 +55752,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3827
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56435,7 +55766,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3828
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56449,7 +55780,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3829
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56463,7 +55794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3830
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56477,7 +55808,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3831
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56491,7 +55822,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3832
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56505,7 +55836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3833
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56519,7 +55850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3834
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56533,7 +55864,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3835
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56547,7 +55878,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3836
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56561,7 +55892,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3837
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56575,7 +55906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3838
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56591,7 +55922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3839
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56607,7 +55938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3840
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56623,7 +55954,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3841
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56639,7 +55970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3842
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56655,7 +55986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3843
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56671,7 +56002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3844
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56687,7 +56018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3845
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56703,7 +56034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3846
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56719,7 +56050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3847
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56735,7 +56066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3848
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56751,7 +56082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3849
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56767,7 +56098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3850
+   i32.const 3663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56781,7 +56112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3862
+   i32.const 3675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56795,7 +56126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3863
+   i32.const 3676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56809,7 +56140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3864
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56823,7 +56154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3865
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56837,7 +56168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3866
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56851,7 +56182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3867
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56865,7 +56196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3868
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56879,7 +56210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3869
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56893,7 +56224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3870
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56907,7 +56238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3871
+   i32.const 3684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56921,7 +56252,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3874
+   i32.const 3687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56935,7 +56266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3875
+   i32.const 3688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56949,7 +56280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3876
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56964,7 +56295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3877
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56978,7 +56309,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3878
+   i32.const 3691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56992,7 +56323,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3887
+   i32.const 3700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57006,7 +56337,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3888
+   i32.const 3701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57020,7 +56351,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3889
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57034,7 +56365,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3890
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57048,7 +56379,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3891
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57062,7 +56393,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3892
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57076,7 +56407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3893
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57090,7 +56421,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3894
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57104,7 +56435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3895
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57118,7 +56449,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3896
+   i32.const 3709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57132,7 +56463,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3899
+   i32.const 3712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57146,7 +56477,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3900
+   i32.const 3713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57160,7 +56491,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3901
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57175,7 +56506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3902
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57189,7 +56520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3903
+   i32.const 3716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57203,7 +56534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3915
+   i32.const 3728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57217,7 +56548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3916
+   i32.const 3729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57231,7 +56562,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3917
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57245,7 +56576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3918
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57259,7 +56590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3919
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57273,7 +56604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3920
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57287,7 +56618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3921
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57301,7 +56632,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3922
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57315,7 +56646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3923
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57329,7 +56660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3924
+   i32.const 3737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57343,7 +56674,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3927
+   i32.const 3740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57357,7 +56688,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3928
+   i32.const 3741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57373,7 +56704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3929
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57387,7 +56718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3930
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57401,7 +56732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3931
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57415,7 +56746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3932
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57429,7 +56760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3933
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57443,7 +56774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3934
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57457,7 +56788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3935
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57471,7 +56802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3936
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57485,7 +56816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3937
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57499,7 +56830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3938
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57513,7 +56844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3939
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57527,7 +56858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3940
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57541,7 +56872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3941
+   i32.const 3754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57555,7 +56886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3950
+   i32.const 3763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57569,7 +56900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3951
+   i32.const 3764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57583,7 +56914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3952
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57597,7 +56928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3953
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57611,7 +56942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3954
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57625,7 +56956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3955
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57639,7 +56970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3956
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57653,7 +56984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3957
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57667,7 +56998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3958
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57681,7 +57012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3959
+   i32.const 3772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57695,7 +57026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3962
+   i32.const 3775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57709,7 +57040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3963
+   i32.const 3776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57725,7 +57056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3964
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57739,7 +57070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3965
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57753,7 +57084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3966
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57767,7 +57098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3967
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57781,7 +57112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3968
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57795,7 +57126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3969
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57809,7 +57140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3970
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57823,7 +57154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3971
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57837,7 +57168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3972
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57851,7 +57182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3973
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57865,7 +57196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3974
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57879,7 +57210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3975
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57893,7 +57224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3976
+   i32.const 3789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57980,784 +57311,784 @@
   drop
   f64.const 2
   f64.const 4
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 8
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4017
+   i32.const 3830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 8
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -8
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4018
+   i32.const 3831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2
   f64.const -2
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 4
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4019
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967295
   f64.const 5
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -5
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4020
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967294
   f64.const 5
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -10
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4021
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+60
   f64.const 1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4022
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+60
   f64.const -1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4023
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.e+60
   f64.const -1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4024
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+24
   f64.const 100
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -2147483648
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4025
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 1
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4026
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const inf
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4027
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MAX_VALUE
   global.get $~lib/builtins/f64.MAX_VALUE
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4028
+   i32.const 3841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4032
+   i32.const 3845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.clz32
-  f64.const 31
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 31
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4033
+   i32.const 3846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.clz32
-  f64.const 0
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 0
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4034
+   i32.const 3847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -128
-  call $~lib/math/NativeMath.clz32
-  f64.const 0
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 0
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4035
+   i32.const 3848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967295
-  call $~lib/math/NativeMath.clz32
-  f64.const 0
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 0
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4036
+   i32.const 3849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967295.5
-  call $~lib/math/NativeMath.clz32
-  f64.const 0
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 0
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4037
+   i32.const 3850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967296
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4038
+   i32.const 3851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967297
-  call $~lib/math/NativeMath.clz32
-  f64.const 31
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 31
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4039
+   i32.const 3852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4040
+   i32.const 3853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4041
+   i32.const 3854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MAX_SAFE_INTEGER
-  call $~lib/math/NativeMath.clz32
-  f64.const 0
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 0
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4042
+   i32.const 3855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MAX_SAFE_INTEGER
   f64.neg
-  call $~lib/math/NativeMath.clz32
-  f64.const 31
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 31
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4043
+   i32.const 3856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MAX_VALUE
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4044
+   i32.const 3857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MIN_VALUE
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4045
+   i32.const 3858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.MAX_VALUE
   f64.neg
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4046
+   i32.const 3859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   global.get $~lib/builtins/f64.EPSILON
-  call $~lib/math/NativeMath.clz32
-  f64.const 32
-  f64.eq
+  call $~lib/math/NativeMath.clz32<f64>
+  i32.const 32
+  i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4047
+   i32.const 3860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4051
+   i32.const 3864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4052
+   i32.const 3865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4053
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4054
+   i32.const 3867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4056
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4057
+   i32.const 3870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4058
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4059
+   i32.const 3872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4061
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 2
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4062
+   i32.const 3875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 4
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4063
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 8
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4064
+   i32.const 3877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4066
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4067
+   i32.const 3880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4068
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4069
+   i32.const 3882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4071
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -2
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4072
+   i32.const 3885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 4
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4073
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -8
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4074
+   i32.const 3887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 63
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -9223372036854775808
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4076
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 40
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -6289078614652622815
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4077
+   i32.const 3890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 64
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4078
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 41
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -420491770248316829
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4079
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 128
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -9204772141784466943
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4080
+   i32.const 3893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const -1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4082
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const -1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4083
+   i32.const 3896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 64
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4084
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 128
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4085
+   i32.const 3898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58782,112 +58113,112 @@
   drop
   i32.const 1
   i32.const 3
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4091
+   i32.const 3904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -2
   i32.const 3
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const -8
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4092
+   i32.const 3905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -1
   i32.const 0
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4093
+   i32.const 3906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -1
   i32.const -1
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const -1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4094
+   i32.const 3907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -1
   i32.const -2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4095
+   i32.const 3908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -1
   i32.const -3
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const -1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4096
+   i32.const 3909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 0
   i32.const -2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 0
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4098
+   i32.const 3911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 0
   i32.const -1
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 0
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4099
+   i32.const 3912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58912,42 +58243,42 @@
   drop
   i32.const 0
   i32.const 2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 0
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4102
+   i32.const 3915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 1
   i32.const -2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4104
+   i32.const 3917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 1
   i32.const -1
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4105
+   i32.const 3918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58972,21 +58303,21 @@
   drop
   i32.const 1
   i32.const 2
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 1
   i32.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4108
+   i32.const 3921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 1
   i32.const 3
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.extend8_s
   i32.const 1
   i32.eq
@@ -58994,14 +58325,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4110
+   i32.const 3923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const -2
   i32.const 3
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.extend8_s
   i32.const -8
   i32.eq
@@ -59009,14 +58340,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4111
+   i32.const 3924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 4
   i32.const 7
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 65535
   i32.and
   i32.const 16384
@@ -59025,14 +58356,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4112
+   i32.const 3925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 4
   i32.const 8
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 65535
   i32.and
   i32.const 0
@@ -59041,14 +58372,14 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4113
+   i32.const 3926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i32.const 5
   i32.const 10
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   i32.const 65535
   i32.and
   i32.const 761
@@ -59057,163 +58388,163 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4114
+   i32.const 3927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4116
+   i32.const 3929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 0
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4117
+   i32.const 3930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4118
+   i32.const 3931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 8
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4119
+   i32.const 3932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 4294967295
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 12884901887
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4120
+   i32.const 3933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 65535
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 281462092005375
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4121
+   i32.const 3934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 65535
   i64.const 8
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -15762478437236735
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4122
+   i32.const 3935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 61731
   i64.const 4
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -3925184889716469295
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4123
+   i32.const 3936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 61731
   i64.const 4
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -3925184889716469295
   i64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4124
+   i32.const 3937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 57055
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 339590
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.add
   i64.const 340126
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.ne
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4126
+   i32.const 3939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 57055
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 339590
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.add
   i64.const 39347712995520375
   i64.eq
@@ -59221,7 +58552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 4127
+   i32.const 3940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -59229,14 +58560,14 @@
   i32.const 1
   f64.convert_i32_u
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4129
+   i32.const 3942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -59244,14 +58575,14 @@
   i32.const 0
   f64.convert_i32_u
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4130
+   i32.const 3943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -59259,42 +58590,42 @@
   i32.const 0
   f64.convert_i32_u
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4131
+   i32.const 3944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4132
+   i32.const 3945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.eq
   i32.eqz
   if
    i32.const 0
    i32.const 32
-   i32.const 4133
+   i32.const 3946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat
index 2976d7d875..3eecc23245 100644
--- a/tests/compiler/std/math.release.wat
+++ b/tests/compiler/std/math.release.wat
@@ -4,8 +4,9 @@
  (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32)))
  (type $f32_=>_f32 (func (param f32) (result f32)))
  (type $f64_f64_=>_f64 (func (param f64 f64) (result f64)))
- (type $f32_f32_=>_f32 (func (param f32 f32) (result f32)))
  (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32)))
+ (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32)))
+ (type $f32_f32_=>_f32 (func (param f32 f32) (result f32)))
  (type $none_=>_f64 (func (result f64)))
  (type $f64_f64_=>_i32 (func (param f64 f64) (result i32)))
  (type $f32_f32_=>_i32 (func (param f32 f32) (result i32)))
@@ -13,10 +14,7 @@
  (type $f64_i32_=>_f64 (func (param f64 i32) (result f64)))
  (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32)))
  (type $i64_=>_i32 (func (param i64) (result i32)))
- (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32)))
- (type $i64_=>_none (func (param i64)))
  (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64)))
- (type $f64_=>_none (func (param f64)))
  (type $i64_i64_i64_i64_i64_=>_none (func (param i64 i64 i64 i64 i64)))
  (type $i64_i64_=>_i64 (func (param i64 i64) (result i64)))
  (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64))
@@ -59,17 +57,16 @@
  (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64)))
  (import "env" "Math.tanh" (func $~lib/bindings/dom/Math.tanh (param f64) (result f64)))
  (import "env" "Math.trunc" (func $~lib/bindings/dom/Math.trunc (param f64) (result f64)))
- (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0))
- (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0))
- (global $~lib/math/res128_hi (mut i64) (i64.const 0))
- (global $~lib/math/rempio2f_y (mut f64) (f64.const 0))
+ (global $~lib/util/math/rempio2_y0 (mut f64) (f64.const 0))
+ (global $~lib/util/math/rempio2_y1 (mut f64) (f64.const 0))
+ (global $~lib/util/math/res128_hi (mut i64) (i64.const 0))
+ (global $~lib/util/math/rempio2_32_y (mut f64) (f64.const 0))
  (global $~lib/util/math/log_tail (mut f64) (f64.const 0))
  (global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
  (global $~lib/math/random_state1_64 (mut i64) (i64.const 0))
- (global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
- (global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
  (global $~lib/math/random_seeded (mut i32) (i32.const 0))
  (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0))
+ (global $~lib/util/math/sincos_cos64 (mut f64) (f64.const 0))
  (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0))
  (memory $0 1)
  (data (i32.const 1036) ",")
@@ -215,7 +212,7 @@
  (data (i32.const 14353) "`Y\df\bd\d5\d5?\dce\a4\08*\0b\n\bd")
  (export "memory" (memory $0))
  (start $~start)
- (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64)
+ (func $~lib/util/math/scalbn64 (param $0 f64) (param $1 i32) (result f64)
   local.get $1
   i32.const 1023
   i32.gt_s
@@ -377,7 +374,7 @@
     i32.add
    end
    i32.sub
-   call $~lib/math/NativeMath.scalbn
+   call $~lib/util/math/scalbn64
    local.get $2
    f64.add
   end
@@ -559,7 +556,7 @@
   end
   i32.const 1
  )
- (func $~lib/math/NativeMath.acos (param $0 f64) (result f64)
+ (func $~lib/util/math/acos64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 i32)
   (local $3 f64)
@@ -801,62 +798,137 @@
   f64.const 2
   f64.mul
  )
- (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32)
-  (local $1 i32)
-  (local $2 i32)
-  (local $3 f32)
-  (local $4 f32)
-  local.get $0
-  i32.reinterpret_f32
-  local.tee $2
-  i32.const 2147483647
-  i32.and
-  local.tee $1
-  i32.const 1065353216
-  i32.ge_u
-  if
-   local.get $1
+ (func $std/math/test_acosf (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
+  (local $3 i32)
+  (local $4 i32)
+  (local $5 f32)
+  (local $6 f32)
+  block $__inlined_func$~lib/util/math/acos32 (result f32)
+   local.get $0
+   i32.reinterpret_f32
+   local.tee $4
+   i32.const 2147483647
+   i32.and
+   local.tee $3
    i32.const 1065353216
-   i32.eq
+   i32.ge_u
    if
-    local.get $2
-    i32.const 31
-    i32.shr_u
+    local.get $3
+    i32.const 1065353216
+    i32.eq
     if
      f32.const 3.141592502593994
-     return
+     local.get $4
+     i32.const 31
+     i32.shr_u
+     br_if $__inlined_func$~lib/util/math/acos32
+     drop
+     f32.const 0
+     br $__inlined_func$~lib/util/math/acos32
     end
     f32.const 0
-    return
+    local.get $0
+    local.get $0
+    f32.sub
+    f32.div
+    br $__inlined_func$~lib/util/math/acos32
    end
-   f32.const 0
-   local.get $0
-   local.get $0
-   f32.sub
-   f32.div
-   return
-  end
-  local.get $1
-  i32.const 1056964608
-  i32.lt_u
-  if
-   local.get $1
-   i32.const 847249408
-   i32.le_u
+   local.get $3
+   i32.const 1056964608
+   i32.lt_u
    if
     f32.const 1.570796251296997
-    return
+    local.get $3
+    i32.const 847249408
+    i32.le_u
+    br_if $__inlined_func$~lib/util/math/acos32
+    drop
+    f32.const 1.570796251296997
+    local.get $0
+    f32.const 7.549789415861596e-08
+    local.get $0
+    local.get $0
+    local.get $0
+    f32.mul
+    local.tee $0
+    local.get $0
+    local.get $0
+    f32.const -0.008656363002955914
+    f32.mul
+    f32.const -0.04274342209100723
+    f32.add
+    f32.mul
+    f32.const 0.16666586697101593
+    f32.add
+    f32.mul
+    local.get $0
+    f32.const -0.7066296339035034
+    f32.mul
+    f32.const 1
+    f32.add
+    f32.div
+    f32.mul
+    f32.sub
+    f32.sub
+    f32.sub
+    br $__inlined_func$~lib/util/math/acos32
    end
-   f32.const 1.570796251296997
-   local.get $0
-   f32.const 7.549789415861596e-08
-   local.get $0
-   local.get $0
+   local.get $4
+   i32.const 31
+   i32.shr_u
+   if
+    f32.const 1.570796251296997
+    local.get $0
+    f32.const 0.5
+    f32.mul
+    f32.const 0.5
+    f32.add
+    local.tee $0
+    f32.sqrt
+    local.tee $5
+    local.get $0
+    local.get $0
+    local.get $0
+    f32.const -0.008656363002955914
+    f32.mul
+    f32.const -0.04274342209100723
+    f32.add
+    f32.mul
+    f32.const 0.16666586697101593
+    f32.add
+    f32.mul
+    local.get $0
+    f32.const -0.7066296339035034
+    f32.mul
+    f32.const 1
+    f32.add
+    f32.div
+    local.get $5
+    f32.mul
+    f32.const 7.549789415861596e-08
+    f32.sub
+    f32.add
+    f32.sub
+    f32.const 2
+    f32.mul
+    br $__inlined_func$~lib/util/math/acos32
+   end
+   f32.const 0.5
    local.get $0
+   f32.const 0.5
    f32.mul
+   f32.sub
+   local.tee $5
+   f32.sqrt
+   local.tee $6
+   i32.reinterpret_f32
+   i32.const -4096
+   i32.and
+   f32.reinterpret_i32
    local.tee $0
-   local.get $0
-   local.get $0
+   local.get $5
+   local.get $5
+   local.get $5
    f32.const -0.008656363002955914
    f32.mul
    f32.const -0.04274342209100723
@@ -865,105 +937,33 @@
    f32.const 0.16666586697101593
    f32.add
    f32.mul
-   local.get $0
+   local.get $5
    f32.const -0.7066296339035034
    f32.mul
    f32.const 1
    f32.add
    f32.div
+   local.get $6
    f32.mul
-   f32.sub
-   f32.sub
-   f32.sub
-   return
-  end
-  local.get $2
-  i32.const 31
-  i32.shr_u
-  if
-   f32.const 1.570796251296997
-   local.get $0
-   f32.const 0.5
-   f32.mul
-   f32.const 0.5
-   f32.add
-   local.tee $0
-   f32.sqrt
-   local.tee $3
-   local.get $0
+   local.get $5
    local.get $0
    local.get $0
-   f32.const -0.008656363002955914
-   f32.mul
-   f32.const -0.04274342209100723
-   f32.add
-   f32.mul
-   f32.const 0.16666586697101593
-   f32.add
    f32.mul
+   f32.sub
+   local.get $6
    local.get $0
-   f32.const -0.7066296339035034
-   f32.mul
-   f32.const 1
    f32.add
    f32.div
-   local.get $3
-   f32.mul
-   f32.const 7.549789415861596e-08
-   f32.sub
    f32.add
-   f32.sub
+   f32.add
    f32.const 2
    f32.mul
-   return
   end
-  f32.const 0.5
-  local.get $0
-  f32.const 0.5
-  f32.mul
-  f32.sub
-  local.tee $3
-  f32.sqrt
-  local.tee $4
-  i32.reinterpret_f32
-  i32.const -4096
-  i32.and
-  f32.reinterpret_i32
-  local.tee $0
-  local.get $3
-  local.get $3
-  local.get $3
-  f32.const -0.008656363002955914
-  f32.mul
-  f32.const -0.04274342209100723
-  f32.add
-  f32.mul
-  f32.const 0.16666586697101593
-  f32.add
-  f32.mul
-  local.get $3
-  f32.const -0.7066296339035034
-  f32.mul
-  f32.const 1
-  f32.add
-  f32.div
-  local.get $4
-  f32.mul
-  local.get $3
-  local.get $0
-  local.get $0
-  f32.mul
-  f32.sub
-  local.get $4
-  local.get $0
-  f32.add
-  f32.div
-  f32.add
-  f32.add
-  f32.const 2
-  f32.mul
+  local.get $1
+  local.get $2
+  call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64)
+ (func $~lib/util/math/log1p64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i32)
   (local $3 i64)
@@ -1160,7 +1160,7 @@
   f64.mul
   f64.add
  )
- (func $~lib/math/NativeMath.log (param $0 f64) (result f64)
+ (func $~lib/util/math/log64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i64)
@@ -1168,7 +1168,7 @@
   (local $5 f64)
   (local $6 f64)
   (local $7 i32)
-  block $~lib/util/math/log_lut|inlined.0 (result f64)
+  block $~lib/util/math/log64_lut|inlined.0 (result f64)
    local.get $0
    i64.reinterpret_f64
    local.tee $1
@@ -1259,7 +1259,7 @@
     f64.add
     local.get $6
     f64.add
-    br $~lib/util/math/log_lut|inlined.0
+    br $~lib/util/math/log64_lut|inlined.0
    end
    local.get $1
    i64.const 48
@@ -1280,13 +1280,13 @@
     i64.const 1
     i64.shl
     i64.eqz
-    br_if $~lib/util/math/log_lut|inlined.0
+    br_if $~lib/util/math/log64_lut|inlined.0
     drop
     local.get $0
     local.get $1
     i64.const 9218868437227405312
     i64.eq
-    br_if $~lib/util/math/log_lut|inlined.0
+    br_if $~lib/util/math/log64_lut|inlined.0
     drop
     i32.const 1
     local.get $2
@@ -1305,7 +1305,7 @@
      local.tee $0
      local.get $0
      f64.div
-     br $~lib/util/math/log_lut|inlined.0
+     br $~lib/util/math/log64_lut|inlined.0
     end
     local.get $0
     f64.const 4503599627370496
@@ -1403,7 +1403,7 @@
  (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32)
   (local $3 f64)
   (local $4 i64)
-  block $__inlined_func$~lib/math/NativeMath.acosh (result f64)
+  block $__inlined_func$~lib/util/math/acosh64 (result f64)
    local.get $0
    local.get $0
    f64.sub
@@ -1414,7 +1414,7 @@
    local.tee $4
    i64.const 4607182418800017408
    i64.lt_s
-   br_if $__inlined_func$~lib/math/NativeMath.acosh
+   br_if $__inlined_func$~lib/util/math/acosh64
    drop
    local.get $4
    i64.const 52
@@ -1438,8 +1438,8 @@
     f64.add
     f64.sqrt
     f64.add
-    call $~lib/math/NativeMath.log1p
-    br $__inlined_func$~lib/math/NativeMath.acosh
+    call $~lib/util/math/log1p64
+    br $__inlined_func$~lib/util/math/acosh64
    end
    local.get $4
    i64.const 1049
@@ -1459,11 +1459,11 @@
     f64.add
     f64.div
     f64.sub
-    call $~lib/math/NativeMath.log
-    br $__inlined_func$~lib/math/NativeMath.acosh
+    call $~lib/util/math/log64
+    br $__inlined_func$~lib/util/math/acosh64
    end
    local.get $0
-   call $~lib/math/NativeMath.log
+   call $~lib/util/math/log64
    f64.const 0.6931471805599453
    f64.add
   end
@@ -1480,7 +1480,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32)
+ (func $~lib/util/math/log1p32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 i32)
   (local $3 f32)
@@ -1649,7 +1649,7 @@
   f32.mul
   f32.add
  )
- (func $~lib/math/NativeMathf.log (param $0 f32) (result f32)
+ (func $~lib/util/math/log32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f64)
   (local $3 i32)
@@ -1760,7 +1760,7 @@
  )
  (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
   (local $3 i32)
-  block $__inlined_func$~lib/math/NativeMathf.acosh (result f32)
+  block $__inlined_func$~lib/util/math/acosh32 (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $3
@@ -1780,8 +1780,8 @@
     f32.mul
     f32.sqrt
     f32.add
-    call $~lib/math/NativeMathf.log1p
-    br $__inlined_func$~lib/math/NativeMathf.acosh
+    call $~lib/util/math/log1p32
+    br $__inlined_func$~lib/util/math/acosh32
    end
    local.get $3
    i32.const 1166016512
@@ -1801,11 +1801,11 @@
     f32.add
     f32.div
     f32.sub
-    call $~lib/math/NativeMathf.log
-    br $__inlined_func$~lib/math/NativeMathf.acosh
+    call $~lib/util/math/log32
+    br $__inlined_func$~lib/util/math/acosh32
    end
    local.get $0
-   call $~lib/math/NativeMathf.log
+   call $~lib/util/math/log32
    f32.const 0.6931471824645996
    f32.add
   end
@@ -1813,7 +1813,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.asin (param $0 f64) (result f64)
+ (func $~lib/util/math/asin64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 i32)
   (local $3 f64)
@@ -2029,59 +2029,91 @@
   end
   local.get $0
  )
- (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32)
-  (local $1 i32)
-  (local $2 f64)
-  (local $3 f32)
-  local.get $0
-  i32.reinterpret_f32
-  i32.const 2147483647
-  i32.and
-  local.tee $1
-  i32.const 1065353216
-  i32.ge_u
-  if
-   local.get $1
+ (func $std/math/test_asinf (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
+  (local $3 i32)
+  (local $4 f64)
+  (local $5 f32)
+  block $__inlined_func$~lib/util/math/asin32 (result f32)
+   local.get $0
+   i32.reinterpret_f32
+   i32.const 2147483647
+   i32.and
+   local.tee $3
    i32.const 1065353216
-   i32.eq
+   i32.ge_u
    if
     local.get $0
     f32.const 1.5707963705062866
     f32.mul
     f32.const 7.52316384526264e-37
     f32.add
-    return
+    local.get $3
+    i32.const 1065353216
+    i32.eq
+    br_if $__inlined_func$~lib/util/math/asin32
+    drop
+    f32.const 0
+    local.get $0
+    local.get $0
+    f32.sub
+    f32.div
+    br $__inlined_func$~lib/util/math/asin32
    end
-   f32.const 0
-   local.get $0
-   local.get $0
-   f32.sub
-   f32.div
-   return
-  end
-  local.get $1
-  i32.const 1056964608
-  i32.lt_u
-  if
-   local.get $1
-   i32.const 964689920
+   local.get $3
+   i32.const 1056964608
    i32.lt_u
-   local.get $1
-   i32.const 8388608
-   i32.ge_u
-   i32.and
    if
     local.get $0
-    return
+    local.get $3
+    i32.const 964689920
+    i32.lt_u
+    local.get $3
+    i32.const 8388608
+    i32.ge_u
+    i32.and
+    br_if $__inlined_func$~lib/util/math/asin32
+    drop
+    local.get $0
+    local.get $0
+    local.get $0
+    local.get $0
+    f32.mul
+    local.tee $0
+    local.get $0
+    local.get $0
+    f32.const -0.008656363002955914
+    f32.mul
+    f32.const -0.04274342209100723
+    f32.add
+    f32.mul
+    f32.const 0.16666586697101593
+    f32.add
+    f32.mul
+    local.get $0
+    f32.const -0.7066296339035034
+    f32.mul
+    f32.const 1
+    f32.add
+    f32.div
+    f32.mul
+    f32.add
+    br $__inlined_func$~lib/util/math/asin32
    end
+   f64.const 1.5707963705062866
+   f32.const 0.5
    local.get $0
-   local.get $0
-   local.get $0
-   local.get $0
+   f32.abs
+   f32.const 0.5
    f32.mul
-   local.tee $0
-   local.get $0
-   local.get $0
+   f32.sub
+   local.tee $5
+   f64.promote_f32
+   f64.sqrt
+   local.tee $4
+   local.get $4
+   local.get $5
+   local.get $5
+   local.get $5
    f32.const -0.008656363002955914
    f32.mul
    f32.const -0.04274342209100723
@@ -2090,54 +2122,25 @@
    f32.const 0.16666586697101593
    f32.add
    f32.mul
-   local.get $0
+   local.get $5
    f32.const -0.7066296339035034
    f32.mul
    f32.const 1
    f32.add
    f32.div
-   f32.mul
-   f32.add
-   return
+   f64.promote_f32
+   f64.mul
+   f64.add
+   f64.const 2
+   f64.mul
+   f64.sub
+   f32.demote_f64
+   local.get $0
+   f32.copysign
   end
-  f64.const 1.5707963705062866
-  f32.const 0.5
-  local.get $0
-  f32.abs
-  f32.const 0.5
-  f32.mul
-  f32.sub
-  local.tee $3
-  f64.promote_f32
-  f64.sqrt
-  local.tee $2
+  local.get $1
   local.get $2
-  local.get $3
-  local.get $3
-  local.get $3
-  f32.const -0.008656363002955914
-  f32.mul
-  f32.const -0.04274342209100723
-  f32.add
-  f32.mul
-  f32.const 0.16666586697101593
-  f32.add
-  f32.mul
-  local.get $3
-  f32.const -0.7066296339035034
-  f32.mul
-  f32.const 1
-  f32.add
-  f32.div
-  f64.promote_f32
-  f64.mul
-  f64.add
-  f64.const 2
-  f64.mul
-  f64.sub
-  f32.demote_f64
-  local.get $0
-  f32.copysign
+  call $std/math/check<f32>
  )
  (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32)
   (local $3 i64)
@@ -2161,7 +2164,7 @@
   i64.ge_u
   if (result f64)
    local.get $5
-   call $~lib/math/NativeMath.log
+   call $~lib/util/math/log64
    f64.const 0.6931471805599453
    f64.add
   else
@@ -2183,7 +2186,7 @@
     f64.add
     f64.div
     f64.add
-    call $~lib/math/NativeMath.log
+    call $~lib/util/math/log64
    else
     local.get $3
     i64.const 997
@@ -2202,7 +2205,7 @@
      f64.add
      f64.div
      f64.add
-     call $~lib/math/NativeMath.log1p
+     call $~lib/util/math/log1p64
     else
      local.get $5
     end
@@ -2238,7 +2241,7 @@
   i32.ge_u
   if (result f32)
    local.get $4
-   call $~lib/math/NativeMathf.log
+   call $~lib/util/math/log32
    f32.const 0.6931471824645996
    f32.add
   else
@@ -2260,7 +2263,7 @@
     f32.add
     f32.div
     f32.add
-    call $~lib/math/NativeMathf.log
+    call $~lib/util/math/log32
    else
     local.get $3
     i32.const 964689920
@@ -2279,7 +2282,7 @@
      f32.add
      f32.div
      f32.add
-     call $~lib/math/NativeMathf.log1p
+     call $~lib/util/math/log1p32
     else
      local.get $4
     end
@@ -2291,7 +2294,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.atan (param $0 f64) (result f64)
+ (func $~lib/util/math/atan64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i32)
   (local $3 i32)
@@ -2510,7 +2513,7 @@
   local.get $1
   f64.copysign
  )
- (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32)
+ (func $~lib/util/math/atan32 (param $0 f32) (result f32)
   (local $1 f32)
   (local $2 i32)
   (local $3 i32)
@@ -2735,7 +2738,7 @@
     f64.sub
     f64.div
     f64.add
-    call $~lib/math/NativeMath.log1p
+    call $~lib/util/math/log1p64
     f64.const 0.5
     f64.mul
    else
@@ -2749,7 +2752,7 @@
    f64.div
    f64.const 2
    f64.mul
-   call $~lib/math/NativeMath.log1p
+   call $~lib/util/math/log1p64
    f64.const 0.5
    f64.mul
   end
@@ -2795,7 +2798,7 @@
     f32.const 1
     f32.add
     f32.mul
-    call $~lib/math/NativeMathf.log1p
+    call $~lib/util/math/log1p32
     f32.const 0.5
     f32.mul
    else
@@ -2809,7 +2812,7 @@
    f32.div
    f32.const 2
    f32.mul
-   call $~lib/math/NativeMathf.log1p
+   call $~lib/util/math/log1p32
    f32.const 0.5
    f32.mul
   end
@@ -2827,7 +2830,7 @@
   (local $8 i32)
   (local $9 i32)
   (local $10 f64)
-  block $__inlined_func$~lib/math/NativeMath.atan2 (result f64)
+  block $__inlined_func$~lib/util/math/atan2_64 (result f64)
    local.get $1
    local.get $0
    f64.add
@@ -2838,7 +2841,7 @@
    local.get $1
    f64.ne
    i32.or
-   br_if $__inlined_func$~lib/math/NativeMath.atan2
+   br_if $__inlined_func$~lib/util/math/atan2_64
    drop
    local.get $0
    i64.reinterpret_f64
@@ -2864,8 +2867,8 @@
    i32.eqz
    if
     local.get $0
-    call $~lib/math/NativeMath.atan
-    br $__inlined_func$~lib/math/NativeMath.atan2
+    call $~lib/util/math/atan64
+    br $__inlined_func$~lib/util/math/atan2_64
    end
    local.get $8
    i32.const 30
@@ -2889,18 +2892,18 @@
     block $break|0
      block $case3|0
       block $case2|0
-       block $case0|0
+       block $case1|0
         local.get $4
-        br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0
+        br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0
        end
        local.get $0
-       br $__inlined_func$~lib/math/NativeMath.atan2
+       br $__inlined_func$~lib/util/math/atan2_64
       end
       f64.const 3.141592653589793
-      br $__inlined_func$~lib/math/NativeMath.atan2
+      br $__inlined_func$~lib/util/math/atan2_64
      end
      f64.const -3.141592653589793
-     br $__inlined_func$~lib/math/NativeMath.atan2
+     br $__inlined_func$~lib/util/math/atan2_64
     end
    end
    block $folding-inner0
@@ -2926,13 +2929,6 @@
       i32.const 2
       i32.and
       select
-      local.tee $10
-      f64.neg
-      local.get $10
-      local.get $4
-      i32.const 1
-      i32.and
-      select
      else
       f64.const 3.141592653589793
       f64.const 0
@@ -2940,15 +2936,15 @@
       i32.const 2
       i32.and
       select
-      local.tee $10
-      f64.neg
-      local.get $10
-      local.get $4
-      i32.const 1
-      i32.and
-      select
      end
-     br $__inlined_func$~lib/math/NativeMath.atan2
+     local.tee $10
+     f64.neg
+     local.get $10
+     local.get $4
+     i32.const 1
+     i32.and
+     select
+     br $__inlined_func$~lib/util/math/atan2_64
     end
     local.get $9
     i32.const 2146435072
@@ -2977,7 +2973,7 @@
      local.get $1
      f64.div
      f64.abs
-     call $~lib/math/NativeMath.atan
+     call $~lib/util/math/atan64
     end
     local.set $10
     block $break|1
@@ -2989,25 +2985,25 @@
          br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1
         end
         local.get $10
-        br $__inlined_func$~lib/math/NativeMath.atan2
+        br $__inlined_func$~lib/util/math/atan2_64
        end
        local.get $10
        f64.neg
-       br $__inlined_func$~lib/math/NativeMath.atan2
+       br $__inlined_func$~lib/util/math/atan2_64
       end
       f64.const 3.141592653589793
       local.get $10
       f64.const 1.2246467991473532e-16
       f64.sub
       f64.sub
-      br $__inlined_func$~lib/math/NativeMath.atan2
+      br $__inlined_func$~lib/util/math/atan2_64
      end
      local.get $10
      f64.const 1.2246467991473532e-16
      f64.sub
      f64.const 3.141592653589793
      f64.sub
-     br $__inlined_func$~lib/math/NativeMath.atan2
+     br $__inlined_func$~lib/util/math/atan2_64
     end
     unreachable
    end
@@ -3032,180 +3028,184 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32)
-  (local $2 i32)
-  (local $3 i32)
+ (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32)
   (local $4 i32)
-  local.get $0
-  local.get $0
-  f32.ne
-  local.get $1
-  local.get $1
-  f32.ne
-  i32.or
-  if
+  (local $5 i32)
+  (local $6 i32)
+  block $__inlined_func$~lib/util/math/atan2_32 (result f32)
    local.get $1
    local.get $0
    f32.add
-   return
-  end
-  local.get $1
-  i32.reinterpret_f32
-  local.tee $3
-  i32.const 1065353216
-  i32.eq
-  if
    local.get $0
-   call $~lib/math/NativeMathf.atan
-   return
-  end
-  local.get $3
-  i32.const 30
-  i32.shr_u
-  i32.const 2
-  i32.and
-  local.get $0
-  i32.reinterpret_f32
-  local.tee $4
-  i32.const 31
-  i32.shr_u
-  i32.or
-  local.set $2
-  local.get $4
-  i32.const 2147483647
-  i32.and
-  local.tee $4
-  i32.eqz
-  if
-   block $break|0
-    block $case3|0
-     block $case2|0
-      block $case1|0
-       local.get $2
-       br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0
-      end
-      local.get $0
-      return
-     end
-     f32.const 3.1415927410125732
-     return
-    end
-    f32.const -3.1415927410125732
-    return
+   local.get $0
+   f32.ne
+   local.get $1
+   local.get $1
+   f32.ne
+   i32.or
+   br_if $__inlined_func$~lib/util/math/atan2_32
+   drop
+   local.get $1
+   i32.reinterpret_f32
+   local.tee $5
+   i32.const 1065353216
+   i32.eq
+   if
+    local.get $0
+    call $~lib/util/math/atan32
+    br $__inlined_func$~lib/util/math/atan2_32
    end
-  end
-  block $folding-inner0
-   local.get $3
+   local.get $5
+   i32.const 30
+   i32.shr_u
+   i32.const 2
+   i32.and
+   local.get $0
+   i32.reinterpret_f32
+   local.tee $6
+   i32.const 31
+   i32.shr_u
+   i32.or
+   local.set $4
+   local.get $6
    i32.const 2147483647
    i32.and
-   local.tee $3
+   local.tee $6
    i32.eqz
-   br_if $folding-inner0
-   local.get $3
-   i32.const 2139095040
-   i32.eq
    if
-    local.get $4
+    block $break|0
+     block $case3|0
+      block $case2|0
+       block $case1|0
+        local.get $4
+        br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0
+       end
+       local.get $0
+       br $__inlined_func$~lib/util/math/atan2_32
+      end
+      f32.const 3.1415927410125732
+      br $__inlined_func$~lib/util/math/atan2_32
+     end
+     f32.const -3.1415927410125732
+     br $__inlined_func$~lib/util/math/atan2_32
+    end
+   end
+   block $folding-inner0
+    local.get $5
+    i32.const 2147483647
+    i32.and
+    local.tee $5
+    i32.eqz
+    br_if $folding-inner0
+    local.get $5
     i32.const 2139095040
     i32.eq
-    if (result f32)
-     f32.const 2.356194496154785
-     f32.const 0.7853981852531433
-     local.get $2
-     i32.const 2
-     i32.and
-     select
-    else
-     f32.const 3.1415927410125732
-     f32.const 0
-     local.get $2
-     i32.const 2
+    if
+     local.get $6
+     i32.const 2139095040
+     i32.eq
+     if (result f32)
+      f32.const 2.356194496154785
+      f32.const 0.7853981852531433
+      local.get $4
+      i32.const 2
+      i32.and
+      select
+     else
+      f32.const 3.1415927410125732
+      f32.const 0
+      local.get $4
+      i32.const 2
+      i32.and
+      select
+     end
+     local.tee $0
+     f32.neg
+     local.get $0
+     local.get $4
+     i32.const 1
      i32.and
      select
+     br $__inlined_func$~lib/util/math/atan2_32
     end
-    local.tee $0
-    f32.neg
-    local.get $0
-    local.get $2
-    i32.const 1
+    local.get $6
+    i32.const 2139095040
+    i32.eq
+    local.get $5
+    i32.const 218103808
+    i32.add
+    local.get $6
+    i32.lt_u
+    i32.or
+    br_if $folding-inner0
+    local.get $6
+    i32.const 218103808
+    i32.add
+    local.get $5
+    i32.lt_u
+    i32.const 0
+    local.get $4
+    i32.const 2
     i32.and
     select
-    return
-   end
-   local.get $4
-   i32.const 2139095040
-   i32.eq
-   local.get $3
-   i32.const 218103808
-   i32.add
-   local.get $4
-   i32.lt_u
-   i32.or
-   br_if $folding-inner0
-   local.get $4
-   i32.const 218103808
-   i32.add
-   local.get $3
-   i32.lt_u
-   i32.const 0
-   local.get $2
-   i32.const 2
-   i32.and
-   select
-   if (result f32)
-    f32.const 0
-   else
-    local.get $0
-    local.get $1
-    f32.div
-    f32.abs
-    call $~lib/math/NativeMathf.atan
-   end
-   local.set $0
-   block $break|1
-    block $case3|1
-     block $case2|1
-      block $case1|1
-       block $case0|1
-        local.get $2
-        br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1
+    if (result f32)
+     f32.const 0
+    else
+     local.get $0
+     local.get $1
+     f32.div
+     f32.abs
+     call $~lib/util/math/atan32
+    end
+    local.set $0
+    block $break|1
+     block $case3|1
+      block $case2|1
+       block $case1|1
+        block $case0|1
+         local.get $4
+         br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1
+        end
+        local.get $0
+        br $__inlined_func$~lib/util/math/atan2_32
        end
        local.get $0
-       return
+       f32.neg
+       br $__inlined_func$~lib/util/math/atan2_32
       end
+      f32.const 3.1415927410125732
       local.get $0
-      f32.neg
-      return
+      f32.const -8.742277657347586e-08
+      f32.sub
+      f32.sub
+      br $__inlined_func$~lib/util/math/atan2_32
      end
-     f32.const 3.1415927410125732
      local.get $0
      f32.const -8.742277657347586e-08
      f32.sub
+     f32.const 3.1415927410125732
      f32.sub
-     return
+     br $__inlined_func$~lib/util/math/atan2_32
     end
-    local.get $0
-    f32.const -8.742277657347586e-08
-    f32.sub
-    f32.const 3.1415927410125732
-    f32.sub
-    return
+    unreachable
    end
-   unreachable
+   f32.const -1.5707963705062866
+   f32.const 1.5707963705062866
+   local.get $4
+   i32.const 1
+   i32.and
+   select
   end
-  f32.const -1.5707963705062866
-  f32.const 1.5707963705062866
   local.get $2
-  i32.const 1
-  i32.and
-  select
+  local.get $3
+  call $std/math/check<f32>
  )
  (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32)
   (local $3 i32)
   (local $4 i64)
   (local $5 f64)
   (local $6 f64)
-  block $__inlined_func$~lib/math/NativeMath.cbrt (result f64)
+  block $__inlined_func$~lib/util/math/cbrt64 (result f64)
    local.get $0
    local.get $0
    f64.add
@@ -3220,7 +3220,7 @@
    local.tee $3
    i32.const 2146435072
    i32.ge_u
-   br_if $__inlined_func$~lib/math/NativeMath.cbrt
+   br_if $__inlined_func$~lib/util/math/cbrt64
    drop
    local.get $3
    i32.const 1048576
@@ -3239,7 +3239,7 @@
     i32.and
     local.tee $3
     i32.eqz
-    br_if $__inlined_func$~lib/math/NativeMath.cbrt
+    br_if $__inlined_func$~lib/util/math/cbrt64
     drop
     local.get $3
     i32.const 3
@@ -3340,7 +3340,7 @@
   (local $6 f64)
   (local $7 f64)
   (local $8 f64)
-  block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32)
+  block $__inlined_func$~lib/util/math/cbrt32 (result f32)
    local.get $0
    local.get $0
    f32.add
@@ -3352,7 +3352,7 @@
    local.tee $4
    i32.const 2139095040
    i32.ge_u
-   br_if $__inlined_func$~lib/math/NativeMathf.cbrt
+   br_if $__inlined_func$~lib/util/math/cbrt32
    drop
    local.get $4
    i32.const 8388608
@@ -3361,7 +3361,7 @@
     local.get $0
     local.get $4
     i32.eqz
-    br_if $__inlined_func$~lib/math/NativeMathf.cbrt
+    br_if $__inlined_func$~lib/util/math/cbrt32
     drop
     local.get $0
     f32.const 16777216
@@ -3432,7 +3432,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/pio2_large_quot (param $0 i64) (result i32)
+ (func $~lib/util/math/pio2_64_large_quot (param $0 i64) (result i32)
   (local $1 i64)
   (local $2 i64)
   (local $3 i64)
@@ -3553,7 +3553,7 @@
   i64.const 32
   i64.shr_u
   i64.add
-  global.set $~lib/math/res128_hi
+  global.set $~lib/util/math/res128_hi
   local.get $10
   local.get $1
   i64.const 32
@@ -3572,7 +3572,7 @@
   local.get $1
   i64.lt_u
   i64.extend_i32_u
-  global.get $~lib/math/res128_hi
+  global.get $~lib/util/math/res128_hi
   local.get $3
   local.get $6
   i64.mul
@@ -3646,7 +3646,7 @@
   i64.const 32
   i64.shr_u
   i64.add
-  global.set $~lib/math/res128_hi
+  global.set $~lib/util/math/res128_hi
   local.get $11
   i64.const 4294967295
   i64.and
@@ -3670,13 +3670,13 @@
   local.tee $2
   i64.lt_u
   i64.extend_i32_u
-  global.get $~lib/math/res128_hi
+  global.get $~lib/util/math/res128_hi
   local.tee $9
   i64.const 11
   i64.shr_u
   i64.add
   f64.convert_i64_u
-  global.set $~lib/math/rempio2_y0
+  global.set $~lib/util/math/rempio2_y0
   local.get $9
   i64.const 53
   i64.shl
@@ -3689,8 +3689,8 @@
   f64.convert_i64_u
   f64.const 5.421010862427522e-20
   f64.mul
-  global.set $~lib/math/rempio2_y1
-  global.get $~lib/math/rempio2_y0
+  global.set $~lib/util/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y0
   i64.const 4372995238176751616
   local.get $8
   i64.const 52
@@ -3705,11 +3705,11 @@
   f64.reinterpret_i64
   local.tee $5
   f64.mul
-  global.set $~lib/math/rempio2_y0
-  global.get $~lib/math/rempio2_y1
+  global.set $~lib/util/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y1
   local.get $5
   f64.mul
-  global.set $~lib/math/rempio2_y1
+  global.set $~lib/util/math/rempio2_y1
   local.get $3
   i64.const 62
   i64.shr_s
@@ -3717,7 +3717,7 @@
   i64.sub
   i32.wrap_i64
  )
- (func $~lib/math/NativeMath.cos (param $0 f64) (result f64)
+ (func $~lib/util/math/cos64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 f64)
   (local $3 i32)
@@ -3814,7 +3814,7 @@
    f64.sub
    return
   end
-  block $~lib/math/rempio2|inlined.0 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.0 (result i32)
    local.get $5
    i64.const 32
    i64.shr_u
@@ -3894,10 +3894,10 @@
      end
     end
     local.get $0
-    global.set $~lib/math/rempio2_y0
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y1
     local.get $3
-    br $~lib/math/rempio2|inlined.0
+    br $~lib/util/math/rempio2_64|inlined.0
    end
    local.get $4
    i32.const 1094263291
@@ -3991,20 +3991,20 @@
      end
     end
     local.get $1
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $0
     local.get $1
     f64.sub
     local.get $2
     f64.sub
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $7
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.0
+    br $~lib/util/math/rempio2_64|inlined.0
    end
    i32.const 0
    local.get $5
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.tee $3
    i32.sub
    local.get $3
@@ -4012,9 +4012,9 @@
    select
   end
   local.set $3
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.set $1
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y1
   local.set $2
   local.get $3
   i32.const 1
@@ -4128,7 +4128,7 @@
   i32.and
   select
  )
- (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32)
+ (func $~lib/util/math/cos32 (param $0 f32) (result f32)
   (local $1 f64)
   (local $2 f64)
   (local $3 i32)
@@ -4357,7 +4357,7 @@
     f32.sub
     return
    end
-   block $~lib/math/rempio2f|inlined.0 (result i32)
+   block $~lib/util/math/rempio2_32|inlined.0 (result i32)
     local.get $3
     i32.const 1305022427
     i32.lt_u
@@ -4378,10 +4378,10 @@
      f64.const 1.5893254773528196e-08
      f64.mul
      f64.sub
-     global.set $~lib/math/rempio2f_y
+     global.set $~lib/util/math/rempio2_32_y
      local.get $2
      i32.trunc_sat_f64_s
-     br $~lib/math/rempio2f|inlined.0
+     br $~lib/util/math/rempio2_32|inlined.0
     end
     local.get $3
     i32.const 23
@@ -4459,7 +4459,7 @@
     local.tee $8
     f64.convert_i64_s
     f64.mul
-    global.set $~lib/math/rempio2f_y
+    global.set $~lib/util/math/rempio2_32_y
     i32.const 0
     local.get $4
     i64.const 62
@@ -4476,7 +4476,7 @@
     select
    end
    local.set $3
-   global.get $~lib/math/rempio2f_y
+   global.get $~lib/util/math/rempio2_32_y
    local.set $1
    local.get $3
    i32.const 1
@@ -4571,7 +4571,7 @@
   f64.add
   f32.demote_f64
  )
- (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64)
+ (func $~lib/util/math/expm1_64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 f64)
   (local $3 i32)
@@ -4842,7 +4842,7 @@
   local.get $6
   f64.mul
  )
- (func $~lib/math/NativeMath.exp (param $0 f64) (result f64)
+ (func $~lib/util/math/exp64 (param $0 f64) (result f64)
   (local $1 i32)
   (local $2 i64)
   (local $3 i32)
@@ -5059,7 +5059,7 @@
   (local $3 i32)
   (local $4 i64)
   (local $5 f64)
-  block $__inlined_func$~lib/math/NativeMath.cosh (result f64)
+  block $__inlined_func$~lib/util/math/cosh64 (result f64)
    local.get $0
    i64.reinterpret_f64
    i64.const 9223372036854775807
@@ -5079,10 +5079,10 @@
     local.get $3
     i32.const 1045430272
     i32.lt_u
-    br_if $__inlined_func$~lib/math/NativeMath.cosh
+    br_if $__inlined_func$~lib/util/math/cosh64
     drop
     local.get $5
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     local.tee $5
     local.get $5
     f64.mul
@@ -5094,14 +5094,14 @@
     f64.div
     f64.const 1
     f64.add
-    br $__inlined_func$~lib/math/NativeMath.cosh
+    br $__inlined_func$~lib/util/math/cosh64
    end
    local.get $3
    i32.const 1082535490
    i32.lt_u
    if
     local.get $5
-    call $~lib/math/NativeMath.exp
+    call $~lib/util/math/exp64
     local.tee $5
     f64.const 1
     local.get $5
@@ -5109,12 +5109,12 @@
     f64.add
     f64.const 0.5
     f64.mul
-    br $__inlined_func$~lib/math/NativeMath.cosh
+    br $__inlined_func$~lib/util/math/cosh64
    end
    local.get $5
    f64.const 1416.0996898839683
    f64.sub
-   call $~lib/math/NativeMath.exp
+   call $~lib/util/math/exp64
    f64.const 2247116418577894884661631e283
    f64.mul
    f64.const 2247116418577894884661631e283
@@ -5133,7 +5133,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32)
+ (func $~lib/util/math/expm1_32 (param $0 f32) (result f32)
   (local $1 i32)
   (local $2 f32)
   (local $3 i32)
@@ -5381,13 +5381,13 @@
   local.get $4
   f32.mul
  )
- (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32)
+ (func $~lib/util/math/exp32 (param $0 f32) (result f32)
   (local $1 f64)
   (local $2 i64)
   (local $3 i32)
   (local $4 i32)
   (local $5 f64)
-  block $~lib/util/math/expf_lut|inlined.0 (result f32)
+  block $~lib/util/math/exp32_lut|inlined.0 (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $3
@@ -5403,7 +5403,7 @@
     local.get $3
     i32.const -8388608
     i32.eq
-    br_if $~lib/util/math/expf_lut|inlined.0
+    br_if $~lib/util/math/exp32_lut|inlined.0
     drop
     local.get $0
     local.get $0
@@ -5411,7 +5411,7 @@
     local.get $4
     i32.const 2040
     i32.ge_u
-    br_if $~lib/util/math/expf_lut|inlined.0
+    br_if $~lib/util/math/exp32_lut|inlined.0
     drop
     local.get $0
     f32.const 1701411834604692317316873e14
@@ -5419,13 +5419,13 @@
     local.get $0
     f32.const 88.72283172607422
     f32.gt
-    br_if $~lib/util/math/expf_lut|inlined.0
+    br_if $~lib/util/math/exp32_lut|inlined.0
     drop
     f32.const 0
     local.get $0
     f32.const -103.97207641601562
     f32.lt
-    br_if $~lib/util/math/expf_lut|inlined.0
+    br_if $~lib/util/math/exp32_lut|inlined.0
     drop
    end
    local.get $0
@@ -5478,7 +5478,7 @@
  )
  (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
   (local $3 i32)
-  block $__inlined_func$~lib/math/NativeMathf.cosh (result f32)
+  block $__inlined_func$~lib/util/math/cosh32 (result f32)
    local.get $0
    i32.reinterpret_f32
    i32.const 2147483647
@@ -5494,10 +5494,10 @@
     local.get $3
     i32.const 964689920
     i32.lt_u
-    br_if $__inlined_func$~lib/math/NativeMathf.cosh
+    br_if $__inlined_func$~lib/util/math/cosh32
     drop
     local.get $0
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     local.tee $0
     local.get $0
     f32.mul
@@ -5509,14 +5509,14 @@
     f32.div
     f32.const 1
     f32.add
-    br $__inlined_func$~lib/math/NativeMathf.cosh
+    br $__inlined_func$~lib/util/math/cosh32
    end
    local.get $3
    i32.const 1118925335
    i32.lt_u
    if
     local.get $0
-    call $~lib/math/NativeMathf.exp
+    call $~lib/util/math/exp32
     local.tee $0
     f32.const 0.5
     f32.mul
@@ -5524,12 +5524,12 @@
     local.get $0
     f32.div
     f32.add
-    br $__inlined_func$~lib/math/NativeMathf.cosh
+    br $__inlined_func$~lib/util/math/cosh32
    end
    local.get $0
    f32.const 162.88958740234375
    f32.sub
-   call $~lib/math/NativeMathf.exp
+   call $~lib/util/math/exp32
    f32.const 1661534994731144841129758e11
    f32.mul
    f32.const 1661534994731144841129758e11
@@ -5548,7 +5548,7 @@
   (local $8 i64)
   (local $9 f64)
   (local $10 f64)
-  block $~lib/util/math/exp2_lut|inlined.0 (result f64)
+  block $__inlined_func$~lib/util/math/exp2_64_lut (result f64)
    local.get $0
    i64.reinterpret_f64
    local.tee $4
@@ -5569,7 +5569,7 @@
     i32.sub
     i32.const -2147483648
     i32.ge_u
-    br_if $~lib/util/math/exp2_lut|inlined.0
+    br_if $__inlined_func$~lib/util/math/exp2_64_lut
     drop
     local.get $3
     i32.const 1033
@@ -5579,7 +5579,7 @@
      local.get $4
      i64.const -4503599627370496
      i64.eq
-     br_if $~lib/util/math/exp2_lut|inlined.0
+     br_if $__inlined_func$~lib/util/math/exp2_64_lut
      drop
      local.get $0
      f64.const 1
@@ -5587,20 +5587,20 @@
      local.get $3
      i32.const 2047
      i32.ge_u
-     br_if $~lib/util/math/exp2_lut|inlined.0
+     br_if $__inlined_func$~lib/util/math/exp2_64_lut
      drop
      f64.const inf
      local.get $4
      i64.const 63
      i64.shr_u
      i64.eqz
-     br_if $~lib/util/math/exp2_lut|inlined.0
+     br_if $__inlined_func$~lib/util/math/exp2_64_lut
      drop
      f64.const 0
      local.get $4
      i64.const -4570929321408987136
      i64.ge_u
-     br_if $~lib/util/math/exp2_lut|inlined.0
+     br_if $__inlined_func$~lib/util/math/exp2_64_lut
      drop
     end
     i32.const 0
@@ -5730,7 +5730,7 @@
      f64.const 2.2250738585072014e-308
      f64.mul
     end
-    br $~lib/util/math/exp2_lut|inlined.0
+    br $__inlined_func$~lib/util/math/exp2_64_lut
    end
    local.get $4
    f64.reinterpret_i64
@@ -5760,7 +5760,7 @@
   (local $5 i32)
   (local $6 i32)
   (local $7 f64)
-  block $~lib/util/math/exp2f_lut|inlined.0 (result f32)
+  block $__inlined_func$~lib/util/math/exp2_32_lut (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $5
@@ -5776,7 +5776,7 @@
     local.get $5
     i32.const -8388608
     i32.eq
-    br_if $~lib/util/math/exp2f_lut|inlined.0
+    br_if $__inlined_func$~lib/util/math/exp2_32_lut
     drop
     local.get $0
     local.get $0
@@ -5784,7 +5784,7 @@
     local.get $6
     i32.const 2040
     i32.ge_u
-    br_if $~lib/util/math/exp2f_lut|inlined.0
+    br_if $__inlined_func$~lib/util/math/exp2_32_lut
     drop
     local.get $0
     f32.const 1701411834604692317316873e14
@@ -5792,13 +5792,13 @@
     local.get $0
     f32.const 0
     f32.gt
-    br_if $~lib/util/math/exp2f_lut|inlined.0
+    br_if $__inlined_func$~lib/util/math/exp2_32_lut
     drop
     f32.const 0
     local.get $0
     f32.const -150
     f32.le
-    br_if $~lib/util/math/exp2f_lut|inlined.0
+    br_if $__inlined_func$~lib/util/math/exp2_32_lut
     drop
    end
    local.get $0
@@ -5882,7 +5882,7 @@
   f64.reinterpret_i64
   local.tee $9
   local.set $0
-  block $__inlined_func$~lib/math/NativeMath.hypot
+  block $__inlined_func$~lib/util/math/hypot64
    local.get $5
    i64.const 52
    i64.shr_u
@@ -5890,7 +5890,7 @@
    local.tee $7
    i32.const 2047
    i32.eq
-   br_if $__inlined_func$~lib/math/NativeMath.hypot
+   br_if $__inlined_func$~lib/util/math/hypot64
    local.get $4
    f64.reinterpret_i64
    local.tee $1
@@ -5905,7 +5905,7 @@
    i32.const 2047
    i32.eq
    i32.or
-   br_if $__inlined_func$~lib/math/NativeMath.hypot
+   br_if $__inlined_func$~lib/util/math/hypot64
    local.get $1
    local.get $9
    f64.add
@@ -5915,7 +5915,7 @@
    i32.sub
    i32.const 64
    i32.gt_s
-   br_if $__inlined_func$~lib/math/NativeMath.hypot
+   br_if $__inlined_func$~lib/util/math/hypot64
    f64.const 1
    local.set $0
    local.get $8
@@ -6026,7 +6026,7 @@
   (local $5 i32)
   (local $6 i32)
   (local $7 f64)
-  block $__inlined_func$~lib/math/NativeMathf.hypot (result f32)
+  block $__inlined_func$~lib/util/math/hypot32 (result f32)
    local.get $1
    i32.reinterpret_f32
    i32.const 2147483647
@@ -6053,7 +6053,7 @@
    local.get $5
    i32.const 2139095040
    i32.eq
-   br_if $__inlined_func$~lib/math/NativeMathf.hypot
+   br_if $__inlined_func$~lib/util/math/hypot32
    drop
    local.get $0
    local.get $1
@@ -6070,7 +6070,7 @@
    i32.const 209715200
    i32.ge_u
    i32.or
-   br_if $__inlined_func$~lib/math/NativeMathf.hypot
+   br_if $__inlined_func$~lib/util/math/hypot32
    drop
    local.get $4
    i32.const 1568669696
@@ -6132,7 +6132,7 @@
   (local $9 f64)
   (local $10 f64)
   (local $11 f64)
-  block $__inlined_func$~lib/math/NativeMath.log10 (result f64)
+  block $__inlined_func$~lib/util/math/log10_64 (result f64)
    local.get $0
    i64.reinterpret_f64
    local.tee $4
@@ -6156,7 +6156,7 @@
     i64.const 1
     i64.shl
     i64.eqz
-    br_if $__inlined_func$~lib/math/NativeMath.log10
+    br_if $__inlined_func$~lib/util/math/log10_64
     drop
     local.get $0
     local.get $0
@@ -6166,7 +6166,7 @@
     local.get $3
     i32.const 31
     i32.shr_u
-    br_if $__inlined_func$~lib/math/NativeMath.log10
+    br_if $__inlined_func$~lib/util/math/log10_64
     drop
     i32.const -54
     local.set $5
@@ -6185,7 +6185,7 @@
     i32.ge_u
     if
      local.get $0
-     br $__inlined_func$~lib/math/NativeMath.log10
+     br $__inlined_func$~lib/util/math/log10_64
     else
      f64.const 0
      local.get $4
@@ -6196,7 +6196,7 @@
      i32.const 1072693248
      i32.eq
      i32.and
-     br_if $__inlined_func$~lib/math/NativeMath.log10
+     br_if $__inlined_func$~lib/util/math/log10_64
      drop
     end
    end
@@ -6342,7 +6342,7 @@
   (local $7 f32)
   (local $8 f32)
   (local $9 f32)
-  block $__inlined_func$~lib/math/NativeMathf.log10 (result f32)
+  block $__inlined_func$~lib/util/math/log10_32 (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $3
@@ -6362,7 +6362,7 @@
     i32.const 1
     i32.shl
     i32.eqz
-    br_if $__inlined_func$~lib/math/NativeMathf.log10
+    br_if $__inlined_func$~lib/util/math/log10_32
     drop
     local.get $0
     local.get $0
@@ -6372,7 +6372,7 @@
     local.get $3
     i32.const 31
     i32.shr_u
-    br_if $__inlined_func$~lib/math/NativeMathf.log10
+    br_if $__inlined_func$~lib/util/math/log10_32
     drop
     i32.const -25
     local.set $5
@@ -6387,13 +6387,13 @@
     i32.ge_u
     if
      local.get $0
-     br $__inlined_func$~lib/math/NativeMathf.log10
+     br $__inlined_func$~lib/util/math/log10_32
     else
      f32.const 0
      local.get $3
      i32.const 1065353216
      i32.eq
-     br_if $__inlined_func$~lib/math/NativeMathf.log10
+     br_if $__inlined_func$~lib/util/math/log10_32
      drop
     end
    end
@@ -6491,7 +6491,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64)
+ (func $~lib/util/math/log2_64 (param $0 f64) (result f64)
   (local $1 i64)
   (local $2 i32)
   (local $3 i64)
@@ -6502,7 +6502,7 @@
   (local $8 f64)
   (local $9 f64)
   (local $10 i32)
-  block $~lib/util/math/log2_lut|inlined.0 (result f64)
+  block $~lib/util/math/log2_64_lut|inlined.0 (result f64)
    local.get $0
    i64.reinterpret_f64
    local.tee $1
@@ -6589,7 +6589,7 @@
     f64.mul
     f64.add
     f64.add
-    br $~lib/util/math/log2_lut|inlined.0
+    br $~lib/util/math/log2_64_lut|inlined.0
    end
    local.get $1
    i64.const 48
@@ -6610,13 +6610,13 @@
     i64.const 1
     i64.shl
     i64.eqz
-    br_if $~lib/util/math/log2_lut|inlined.0
+    br_if $~lib/util/math/log2_64_lut|inlined.0
     drop
     local.get $0
     local.get $1
     i64.const 9218868437227405312
     i64.eq
-    br_if $~lib/util/math/log2_lut|inlined.0
+    br_if $~lib/util/math/log2_64_lut|inlined.0
     drop
     i32.const 1
     local.get $2
@@ -6635,7 +6635,7 @@
      local.tee $0
      local.get $0
      f64.div
-     br $~lib/util/math/log2_lut|inlined.0
+     br $~lib/util/math/log2_64_lut|inlined.0
     end
     local.get $0
     f64.const 4503599627370496
@@ -6751,7 +6751,7 @@
   (local $5 i32)
   (local $6 i32)
   (local $7 f64)
-  block $~lib/util/math/log2f_lut|inlined.0 (result f32)
+  block $~lib/util/math/log2_32_lut|inlined.0 (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $3
@@ -6765,13 +6765,13 @@
     i32.const 1
     i32.shl
     i32.eqz
-    br_if $~lib/util/math/log2f_lut|inlined.0
+    br_if $~lib/util/math/log2_32_lut|inlined.0
     drop
     local.get $0
     local.get $3
     i32.const 2139095040
     i32.eq
-    br_if $~lib/util/math/log2f_lut|inlined.0
+    br_if $~lib/util/math/log2_32_lut|inlined.0
     drop
     local.get $3
     i32.const 31
@@ -6789,7 +6789,7 @@
      local.tee $0
      local.get $0
      f32.div
-     br $~lib/util/math/log2f_lut|inlined.0
+     br $~lib/util/math/log2_32_lut|inlined.0
     end
     local.get $0
     f32.const 8388608
@@ -6901,7 +6901,7 @@
   (local $7 f64)
   (local $8 i64)
   (local $9 i64)
-  block $__inlined_func$~lib/math/NativeMath.mod (result f64)
+  block $__inlined_func$~lib/util/math/mod64 (result f64)
    local.get $0
    local.get $0
    f64.trunc
@@ -6912,7 +6912,7 @@
    f64.abs
    f64.const 1
    f64.eq
-   br_if $__inlined_func$~lib/math/NativeMath.mod
+   br_if $__inlined_func$~lib/util/math/mod64
    drop
    local.get $1
    i64.reinterpret_f64
@@ -6949,7 +6949,7 @@
     local.tee $7
     local.get $7
     f64.div
-    br $__inlined_func$~lib/math/NativeMath.mod
+    br $__inlined_func$~lib/util/math/mod64
    end
    local.get $6
    i64.const 1
@@ -6964,7 +6964,7 @@
     i64.ne
     f64.convert_i32_u
     f64.mul
-    br $__inlined_func$~lib/math/NativeMath.mod
+    br $__inlined_func$~lib/util/math/mod64
    end
    local.get $9
    i64.eqz
@@ -7025,7 +7025,7 @@
       local.get $3
       local.get $4
       i64.eq
-      br_if $__inlined_func$~lib/math/NativeMath.mod
+      br_if $__inlined_func$~lib/util/math/mod64
       drop
       local.get $3
       local.get $4
@@ -7053,7 +7053,7 @@
     local.get $3
     local.get $4
     i64.eq
-    br_if $__inlined_func$~lib/math/NativeMath.mod
+    br_if $__inlined_func$~lib/util/math/mod64
     drop
     local.get $3
     local.get $4
@@ -7109,7 +7109,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/mod32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -7310,7 +7310,7 @@
   i32.or
   f32.reinterpret_i32
  )
- (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/pow64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i32)
   (local $4 i64)
@@ -7380,7 +7380,7 @@
     return
    end
   end
-  block $~lib/util/math/pow_lut|inlined.0 (result f64)
+  block $~lib/util/math/pow64_lut|inlined.0 (result f64)
    local.get $1
    i64.reinterpret_f64
    local.tee $12
@@ -7418,13 +7418,13 @@
      i64.const 1
      i64.shl
      i64.eqz
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      f64.const nan:0x8000000000000
      local.get $2
      i64.const 4607182418800017408
      i64.eq
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      local.get $0
      local.get $1
@@ -7440,7 +7440,7 @@
      i64.const -9007199254740992
      i64.gt_u
      i32.or
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      f64.const nan:0x8000000000000
      local.get $2
@@ -7448,7 +7448,7 @@
      i64.shl
      i64.const 9214364837600034816
      i64.eq
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      f64.const 0
      local.get $12
@@ -7461,12 +7461,12 @@
      i64.const 9214364837600034816
      i64.lt_u
      i32.eq
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      local.get $1
      local.get $1
      f64.mul
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $2
     i64.const 1
@@ -7488,7 +7488,7 @@
      i64.shr_u
      i32.wrap_i64
      if (result i32)
-      block $~lib/util/math/checkint|inlined.0 (result i32)
+      block $~lib/util/math/checkint64|inlined.0 (result i32)
        i32.const 0
        local.get $12
        i64.const 52
@@ -7498,13 +7498,13 @@
        local.tee $2
        i64.const 1023
        i64.lt_u
-       br_if $~lib/util/math/checkint|inlined.0
+       br_if $~lib/util/math/checkint64|inlined.0
        drop
        i32.const 2
        local.get $2
        i64.const 1075
        i64.gt_u
-       br_if $~lib/util/math/checkint|inlined.0
+       br_if $~lib/util/math/checkint64|inlined.0
        drop
        i32.const 0
        local.get $12
@@ -7519,7 +7519,7 @@
        i64.and
        i64.const 0
        i64.ne
-       br_if $~lib/util/math/checkint|inlined.0
+       br_if $~lib/util/math/checkint64|inlined.0
        drop
        i32.const 1
        local.get $2
@@ -7527,7 +7527,7 @@
        i64.and
        i64.const 0
        i64.ne
-       br_if $~lib/util/math/checkint|inlined.0
+       br_if $~lib/util/math/checkint64|inlined.0
        drop
        i32.const 2
       end
@@ -7545,14 +7545,14 @@
      i64.shr_u
      i32.wrap_i64
      select
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $2
     i64.const 63
     i64.shr_u
     i32.wrap_i64
     if
-     block $~lib/util/math/checkint|inlined.1 (result i32)
+     block $~lib/util/math/checkint64|inlined.1 (result i32)
       i32.const 0
       local.get $12
       i64.const 52
@@ -7562,13 +7562,13 @@
       local.tee $13
       i64.const 1023
       i64.lt_u
-      br_if $~lib/util/math/checkint|inlined.1
+      br_if $~lib/util/math/checkint64|inlined.1
       drop
       i32.const 2
       local.get $13
       i64.const 1075
       i64.gt_u
-      br_if $~lib/util/math/checkint|inlined.1
+      br_if $~lib/util/math/checkint64|inlined.1
       drop
       i32.const 0
       local.get $12
@@ -7583,7 +7583,7 @@
       i64.and
       i64.const 0
       i64.ne
-      br_if $~lib/util/math/checkint|inlined.1
+      br_if $~lib/util/math/checkint64|inlined.1
       drop
       i32.const 1
       local.get $12
@@ -7591,7 +7591,7 @@
       i64.and
       i64.const 0
       i64.ne
-      br_if $~lib/util/math/checkint|inlined.1
+      br_if $~lib/util/math/checkint64|inlined.1
       drop
       i32.const 2
      end
@@ -7604,7 +7604,7 @@
       local.tee $0
       local.get $0
       f64.div
-      br $~lib/util/math/pow_lut|inlined.0
+      br $~lib/util/math/pow64_lut|inlined.0
      end
      local.get $4
      i64.const 2047
@@ -7634,7 +7634,7 @@
      local.get $2
      i64.const 4607182418800017408
      i64.eq
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      f64.const 1
      local.get $6
@@ -7642,7 +7642,7 @@
      i64.and
      i64.const 958
      i64.lt_u
-     br_if $~lib/util/math/pow_lut|inlined.0
+     br_if $~lib/util/math/pow64_lut|inlined.0
      drop
      f64.const inf
      f64.const 0
@@ -7654,7 +7654,7 @@
      i64.gt_u
      i32.eq
      select
-     br $~lib/util/math/pow_lut|inlined.0
+     br $~lib/util/math/pow64_lut|inlined.0
     end
     local.get $0
     f64.const 4503599627370496
@@ -7800,7 +7800,7 @@
    local.get $0
    f64.add
    global.set $~lib/util/math/log_tail
-   block $~lib/util/math/exp_inline|inlined.0 (result f64)
+   block $~lib/util/math/exp64_inline|inlined.0 (result f64)
     local.get $12
     i64.const -134217728
     i64.and
@@ -7836,7 +7836,7 @@
      i32.sub
      i32.const -2147483648
      i32.ge_u
-     br_if $~lib/util/math/exp_inline|inlined.0
+     br_if $~lib/util/math/exp64_inline|inlined.0
      drop
      local.get $2
      i64.const 63
@@ -7860,7 +7860,7 @@
      local.get $3
      i32.const 1033
      i32.ge_u
-     br_if $~lib/util/math/exp_inline|inlined.0
+     br_if $~lib/util/math/exp64_inline|inlined.0
      drop
      i32.const 0
      local.set $3
@@ -8022,7 +8022,7 @@
       f64.const 2.2250738585072014e-308
       f64.mul
      end
-     br $~lib/util/math/exp_inline|inlined.0
+     br $~lib/util/math/exp64_inline|inlined.0
     end
     local.get $4
     f64.reinterpret_i64
@@ -8037,7 +8037,7 @@
  (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32)
   local.get $0
   local.get $1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   local.get $2
   local.get $3
   call $std/math/check<f64>
@@ -8052,7 +8052,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/pow32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 f64)
   (local $4 i32)
@@ -8112,7 +8112,7 @@
     return
    end
   end
-  block $~lib/util/math/powf_lut|inlined.0 (result f32)
+  block $~lib/util/math/pow32_lut|inlined.0 (result f32)
    local.get $1
    i32.reinterpret_f32
    local.tee $7
@@ -8139,13 +8139,13 @@
      i32.const 1
      i32.shl
      i32.eqz
-     br_if $~lib/util/math/powf_lut|inlined.0
+     br_if $~lib/util/math/pow32_lut|inlined.0
      drop
      f32.const nan:0x400000
      local.get $2
      i32.const 1065353216
      i32.eq
-     br_if $~lib/util/math/powf_lut|inlined.0
+     br_if $~lib/util/math/pow32_lut|inlined.0
      drop
      local.get $0
      local.get $1
@@ -8161,7 +8161,7 @@
      i32.const -16777216
      i32.gt_u
      i32.or
-     br_if $~lib/util/math/powf_lut|inlined.0
+     br_if $~lib/util/math/pow32_lut|inlined.0
      drop
      f32.const nan:0x400000
      local.get $2
@@ -8169,7 +8169,7 @@
      i32.shl
      i32.const 2130706432
      i32.eq
-     br_if $~lib/util/math/powf_lut|inlined.0
+     br_if $~lib/util/math/pow32_lut|inlined.0
      drop
      f32.const 0
      local.get $7
@@ -8182,12 +8182,12 @@
      i32.const 2130706432
      i32.lt_u
      i32.eq
-     br_if $~lib/util/math/powf_lut|inlined.0
+     br_if $~lib/util/math/pow32_lut|inlined.0
      drop
      local.get $1
      local.get $1
      f32.mul
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $2
     i32.const 1
@@ -8208,7 +8208,7 @@
      i32.const 31
      i32.shr_u
      if (result i32)
-      block $~lib/util/math/checkintf|inlined.0 (result i32)
+      block $~lib/util/math/checkint32|inlined.0 (result i32)
        i32.const 0
        local.get $7
        i32.const 23
@@ -8218,13 +8218,13 @@
        local.tee $2
        i32.const 127
        i32.lt_u
-       br_if $~lib/util/math/checkintf|inlined.0
+       br_if $~lib/util/math/checkint32|inlined.0
        drop
        i32.const 2
        local.get $2
        i32.const 150
        i32.gt_u
-       br_if $~lib/util/math/checkintf|inlined.0
+       br_if $~lib/util/math/checkint32|inlined.0
        drop
        i32.const 0
        local.get $7
@@ -8237,13 +8237,13 @@
        i32.const 1
        i32.sub
        i32.and
-       br_if $~lib/util/math/checkintf|inlined.0
+       br_if $~lib/util/math/checkint32|inlined.0
        drop
        i32.const 1
        local.get $2
        local.get $7
        i32.and
-       br_if $~lib/util/math/checkintf|inlined.0
+       br_if $~lib/util/math/checkint32|inlined.0
        drop
        i32.const 2
       end
@@ -8260,13 +8260,13 @@
      i32.const 31
      i32.shr_u
      select
-     br $~lib/util/math/powf_lut|inlined.0
+     br $~lib/util/math/pow32_lut|inlined.0
     end
     local.get $2
     i32.const 31
     i32.shr_u
     if
-     block $~lib/util/math/checkintf|inlined.1 (result i32)
+     block $~lib/util/math/checkint32|inlined.1 (result i32)
       i32.const 0
       local.get $7
       i32.const 23
@@ -8276,13 +8276,13 @@
       local.tee $4
       i32.const 127
       i32.lt_u
-      br_if $~lib/util/math/checkintf|inlined.1
+      br_if $~lib/util/math/checkint32|inlined.1
       drop
       i32.const 2
       local.get $4
       i32.const 150
       i32.gt_u
-      br_if $~lib/util/math/checkintf|inlined.1
+      br_if $~lib/util/math/checkint32|inlined.1
       drop
       i32.const 0
       local.get $7
@@ -8295,13 +8295,13 @@
       i32.const 1
       i32.sub
       i32.and
-      br_if $~lib/util/math/checkintf|inlined.1
+      br_if $~lib/util/math/checkint32|inlined.1
       drop
       i32.const 1
       local.get $4
       local.get $7
       i32.and
-      br_if $~lib/util/math/checkintf|inlined.1
+      br_if $~lib/util/math/checkint32|inlined.1
       drop
       i32.const 2
      end
@@ -8314,7 +8314,7 @@
       local.tee $0
       local.get $0
       f32.div
-      br $~lib/util/math/powf_lut|inlined.0
+      br $~lib/util/math/pow32_lut|inlined.0
      end
      i32.const 65536
      i32.const 0
@@ -8422,7 +8422,7 @@
     local.get $3
     f64.const 127.99999995700433
     f64.gt
-    br_if $~lib/util/math/powf_lut|inlined.0
+    br_if $~lib/util/math/pow32_lut|inlined.0
     drop
     f32.const -2.524354896707238e-29
     f32.const 2.524354896707238e-29
@@ -8433,7 +8433,7 @@
     local.get $3
     f64.const -150
     f64.le
-    br_if $~lib/util/math/powf_lut|inlined.0
+    br_if $~lib/util/math/pow32_lut|inlined.0
     drop
    end
    local.get $3
@@ -8483,123 +8483,6 @@
    f32.demote_f64
   end
  )
- (func $~lib/math/NativeMath.seedRandom (param $0 i64)
-  (local $1 i32)
-  (local $2 i64)
-  i64.const -7046029254386353131
-  local.get $0
-  local.get $0
-  i64.eqz
-  select
-  local.tee $0
-  i64.const 33
-  i64.shr_u
-  local.get $0
-  i64.xor
-  i64.const -49064778989728563
-  i64.mul
-  local.tee $2
-  i64.const 33
-  i64.shr_u
-  local.get $2
-  i64.xor
-  i64.const -4265267296055464877
-  i64.mul
-  local.tee $2
-  i64.const 33
-  i64.shr_u
-  local.get $2
-  i64.xor
-  global.set $~lib/math/random_state0_64
-  global.get $~lib/math/random_state0_64
-  i64.const -1
-  i64.xor
-  local.tee $2
-  i64.const 33
-  i64.shr_u
-  local.get $2
-  i64.xor
-  i64.const -49064778989728563
-  i64.mul
-  local.tee $2
-  i64.const 33
-  i64.shr_u
-  local.get $2
-  i64.xor
-  i64.const -4265267296055464877
-  i64.mul
-  local.tee $2
-  i64.const 33
-  i64.shr_u
-  local.get $2
-  i64.xor
-  global.set $~lib/math/random_state1_64
-  local.get $0
-  i32.wrap_i64
-  i32.const 1831565813
-  i32.add
-  local.tee $1
-  i32.const 1
-  i32.or
-  local.get $1
-  local.get $1
-  i32.const 15
-  i32.shr_u
-  i32.xor
-  i32.mul
-  local.tee $1
-  i32.const 61
-  i32.or
-  local.get $1
-  local.get $1
-  i32.const 7
-  i32.shr_u
-  i32.xor
-  i32.mul
-  local.get $1
-  i32.add
-  local.get $1
-  i32.xor
-  local.tee $1
-  i32.const 14
-  i32.shr_u
-  local.get $1
-  i32.xor
-  global.set $~lib/math/random_state0_32
-  global.get $~lib/math/random_state0_32
-  i32.const 1831565813
-  i32.add
-  local.tee $1
-  i32.const 1
-  i32.or
-  local.get $1
-  local.get $1
-  i32.const 15
-  i32.shr_u
-  i32.xor
-  i32.mul
-  local.tee $1
-  i32.const 61
-  i32.or
-  local.get $1
-  local.get $1
-  i32.const 7
-  i32.shr_u
-  i32.xor
-  i32.mul
-  local.get $1
-  i32.add
-  local.get $1
-  i32.xor
-  local.tee $1
-  i32.const 14
-  i32.shr_u
-  local.get $1
-  i32.xor
-  global.set $~lib/math/random_state1_32
-  i32.const 1
-  global.set $~lib/math/random_seeded
- )
  (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32)
   (local $2 f64)
   local.get $0
@@ -8677,482 +8560,7 @@
   f32.const 0
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64)
-  (local $2 i64)
-  (local $3 i64)
-  (local $4 i64)
-  (local $5 i32)
-  (local $6 i32)
-  (local $7 i64)
-  (local $8 f64)
-  local.get $1
-  i64.reinterpret_f64
-  local.tee $7
-  i64.const 52
-  i64.shr_u
-  i64.const 2047
-  i64.and
-  local.set $4
-  local.get $7
-  i64.const 1
-  i64.shl
-  i64.eqz
-  local.get $0
-  i64.reinterpret_f64
-  local.tee $2
-  i64.const 52
-  i64.shr_u
-  i64.const 2047
-  i64.and
-  local.tee $3
-  i64.const 2047
-  i64.eq
-  i32.or
-  local.get $1
-  local.get $1
-  f64.ne
-  i32.or
-  if
-   local.get $0
-   local.get $1
-   f64.mul
-   local.tee $0
-   local.get $0
-   f64.div
-   return
-  end
-  local.get $2
-  i64.const 1
-  i64.shl
-  i64.eqz
-  if
-   local.get $0
-   return
-  end
-  local.get $2
-  i64.const 63
-  i64.shr_u
-  i32.wrap_i64
-  local.set $6
-  local.get $3
-  i64.eqz
-  if (result i64)
-   local.get $2
-   i64.const 1
-   local.get $3
-   local.get $2
-   i64.const 12
-   i64.shl
-   i64.clz
-   i64.sub
-   local.tee $3
-   i64.sub
-   i64.shl
-  else
-   local.get $2
-   i64.const 4503599627370495
-   i64.and
-   i64.const 4503599627370496
-   i64.or
-  end
-  local.set $2
-  local.get $4
-  i64.eqz
-  if (result i64)
-   local.get $7
-   i64.const 1
-   local.get $4
-   local.get $7
-   i64.const 12
-   i64.shl
-   i64.clz
-   i64.sub
-   local.tee $4
-   i64.sub
-   i64.shl
-  else
-   local.get $7
-   i64.const 4503599627370495
-   i64.and
-   i64.const 4503599627370496
-   i64.or
-  end
-  local.set $7
-  block $do-break|0
-   local.get $3
-   local.get $4
-   i64.lt_s
-   if
-    local.get $3
-    i64.const 1
-    i64.add
-    local.get $4
-    i64.eq
-    br_if $do-break|0
-    local.get $0
-    return
-   end
-   loop $while-continue|1
-    local.get $3
-    local.get $4
-    i64.gt_s
-    if
-     local.get $2
-     local.get $7
-     i64.ge_u
-     if (result i64)
-      local.get $5
-      i32.const 1
-      i32.add
-      local.set $5
-      local.get $2
-      local.get $7
-      i64.sub
-     else
-      local.get $2
-     end
-     i64.const 1
-     i64.shl
-     local.set $2
-     local.get $5
-     i32.const 1
-     i32.shl
-     local.set $5
-     local.get $3
-     i64.const 1
-     i64.sub
-     local.set $3
-     br $while-continue|1
-    end
-   end
-   local.get $2
-   local.get $7
-   i64.ge_u
-   if
-    local.get $5
-    i32.const 1
-    i32.add
-    local.set $5
-    local.get $2
-    local.get $7
-    i64.sub
-    local.set $2
-   end
-   local.get $2
-   i64.eqz
-   if
-    i64.const -60
-    local.set $3
-   else
-    local.get $3
-    local.get $2
-    i64.const 11
-    i64.shl
-    i64.clz
-    local.tee $7
-    i64.sub
-    local.set $3
-    local.get $2
-    local.get $7
-    i64.shl
-    local.set $2
-   end
-  end
-  local.get $2
-  i64.const 4503599627370496
-  i64.sub
-  local.get $3
-  i64.const 52
-  i64.shl
-  i64.or
-  local.get $2
-  i64.const 1
-  local.get $3
-  i64.sub
-  i64.shr_u
-  local.get $3
-  i64.const 0
-  i64.gt_s
-  select
-  f64.reinterpret_i64
-  local.tee $0
-  local.get $0
-  f64.add
-  local.set $8
-  local.get $0
-  local.get $1
-  f64.abs
-  local.tee $1
-  f64.sub
-  local.get $0
-  local.get $3
-  local.get $4
-  i64.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $5
-   i32.const 1
-   i32.and
-   local.get $1
-   local.get $8
-   f64.eq
-   i32.and
-   local.get $1
-   local.get $8
-   f64.lt
-   i32.or
-   local.get $3
-   i64.const 1
-   i64.add
-   local.get $4
-   i64.eq
-   i32.and
-  end
-  select
-  local.tee $0
-  f64.neg
-  local.get $0
-  local.get $6
-  select
- )
- (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32)
-  (local $2 i32)
-  (local $3 i32)
-  (local $4 i32)
-  (local $5 i32)
-  (local $6 i32)
-  (local $7 i32)
-  (local $8 f32)
-  local.get $1
-  i32.reinterpret_f32
-  local.tee $7
-  i32.const 23
-  i32.shr_u
-  i32.const 255
-  i32.and
-  local.set $4
-  i32.const 1
-  local.get $1
-  local.get $1
-  f32.ne
-  local.get $0
-  i32.reinterpret_f32
-  local.tee $2
-  i32.const 23
-  i32.shr_u
-  i32.const 255
-  i32.and
-  local.tee $3
-  i32.const 255
-  i32.eq
-  i32.const 1
-  local.get $7
-  i32.const 1
-  i32.shl
-  select
-  select
-  if
-   local.get $0
-   local.get $1
-   f32.mul
-   local.tee $0
-   local.get $0
-   f32.div
-   return
-  end
-  local.get $2
-  i32.const 1
-  i32.shl
-  i32.eqz
-  if
-   local.get $0
-   return
-  end
-  local.get $2
-  i32.const 31
-  i32.shr_u
-  local.set $6
-  local.get $3
-  if (result i32)
-   local.get $2
-   i32.const 8388607
-   i32.and
-   i32.const 8388608
-   i32.or
-  else
-   local.get $2
-   i32.const 1
-   local.get $3
-   local.get $2
-   i32.const 9
-   i32.shl
-   i32.clz
-   i32.sub
-   local.tee $3
-   i32.sub
-   i32.shl
-  end
-  local.set $2
-  local.get $4
-  if (result i32)
-   local.get $7
-   i32.const 8388607
-   i32.and
-   i32.const 8388608
-   i32.or
-  else
-   local.get $7
-   i32.const 1
-   local.get $4
-   local.get $7
-   i32.const 9
-   i32.shl
-   i32.clz
-   i32.sub
-   local.tee $4
-   i32.sub
-   i32.shl
-  end
-  local.set $7
-  block $do-break|0
-   local.get $3
-   local.get $4
-   i32.lt_s
-   if
-    local.get $3
-    i32.const 1
-    i32.add
-    local.get $4
-    i32.eq
-    br_if $do-break|0
-    local.get $0
-    return
-   end
-   loop $while-continue|1
-    local.get $3
-    local.get $4
-    i32.gt_s
-    if
-     local.get $2
-     local.get $7
-     i32.ge_u
-     if (result i32)
-      local.get $5
-      i32.const 1
-      i32.add
-      local.set $5
-      local.get $2
-      local.get $7
-      i32.sub
-     else
-      local.get $2
-     end
-     i32.const 1
-     i32.shl
-     local.set $2
-     local.get $5
-     i32.const 1
-     i32.shl
-     local.set $5
-     local.get $3
-     i32.const 1
-     i32.sub
-     local.set $3
-     br $while-continue|1
-    end
-   end
-   local.get $2
-   local.get $7
-   i32.ge_u
-   if
-    local.get $5
-    i32.const 1
-    i32.add
-    local.set $5
-    local.get $2
-    local.get $7
-    i32.sub
-    local.set $2
-   end
-   local.get $2
-   if
-    local.get $3
-    local.get $2
-    i32.const 8
-    i32.shl
-    i32.clz
-    local.tee $7
-    i32.sub
-    local.set $3
-    local.get $2
-    local.get $7
-    i32.shl
-    local.set $2
-   else
-    i32.const -30
-    local.set $3
-   end
-  end
-  local.get $2
-  i32.const 8388608
-  i32.sub
-  local.get $3
-  i32.const 23
-  i32.shl
-  i32.or
-  local.get $2
-  i32.const 1
-  local.get $3
-  i32.sub
-  i32.shr_u
-  local.get $3
-  i32.const 0
-  i32.gt_s
-  select
-  f32.reinterpret_i32
-  local.tee $0
-  local.get $0
-  f32.add
-  local.set $8
-  local.get $0
-  local.get $1
-  f32.abs
-  local.tee $1
-  f32.sub
-  local.get $0
-  local.get $3
-  local.get $4
-  i32.eq
-  if (result i32)
-   i32.const 1
-  else
-   local.get $5
-   i32.const 1
-   i32.and
-   local.get $1
-   local.get $8
-   f32.eq
-   i32.and
-   local.get $1
-   local.get $8
-   f32.lt
-   i32.or
-   local.get $3
-   i32.const 1
-   i32.add
-   local.get $4
-   i32.eq
-   i32.and
-  end
-  select
-  local.tee $0
-  f32.neg
-  local.get $0
-  local.get $6
-  select
- )
- (func $~lib/math/NativeMath.sin (param $0 f64) (result f64)
+ (func $~lib/util/math/sin64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 f64)
   (local $3 i32)
@@ -9231,7 +8639,7 @@
    f64.sub
    return
   end
-  block $~lib/math/rempio2|inlined.1 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.1 (result i32)
    local.get $5
    i64.const 32
    i64.shr_u
@@ -9311,10 +8719,10 @@
      end
     end
     local.get $0
-    global.set $~lib/math/rempio2_y0
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y1
     local.get $3
-    br $~lib/math/rempio2|inlined.1
+    br $~lib/util/math/rempio2_64|inlined.1
    end
    local.get $4
    i32.const 1094263291
@@ -9408,20 +8816,20 @@
      end
     end
     local.get $1
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $0
     local.get $1
     f64.sub
     local.get $2
     f64.sub
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $7
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.1
+    br $~lib/util/math/rempio2_64|inlined.1
    end
    i32.const 0
    local.get $5
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.tee $3
    i32.sub
    local.get $3
@@ -9429,9 +8837,9 @@
    select
   end
   local.set $3
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.set $2
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y1
   local.set $7
   local.get $3
   i32.const 1
@@ -9543,7 +8951,7 @@
   i32.and
   select
  )
- (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32)
+ (func $~lib/util/math/sin32 (param $0 f32) (result f32)
   (local $1 f64)
   (local $2 f64)
   (local $3 i32)
@@ -9787,7 +9195,7 @@
     f32.sub
     return
    end
-   block $~lib/math/rempio2f|inlined.1 (result i32)
+   block $~lib/util/math/rempio2_32|inlined.1 (result i32)
     local.get $3
     i32.const 1305022427
     i32.lt_u
@@ -9808,10 +9216,10 @@
      f64.const 1.5893254773528196e-08
      f64.mul
      f64.sub
-     global.set $~lib/math/rempio2f_y
+     global.set $~lib/util/math/rempio2_32_y
      local.get $2
      i32.trunc_sat_f64_s
-     br $~lib/math/rempio2f|inlined.1
+     br $~lib/util/math/rempio2_32|inlined.1
     end
     local.get $3
     i32.const 23
@@ -9889,7 +9297,7 @@
     local.tee $8
     f64.convert_i64_s
     f64.mul
-    global.set $~lib/math/rempio2f_y
+    global.set $~lib/util/math/rempio2_32_y
     i32.const 0
     local.get $5
     i64.const 62
@@ -9906,7 +9314,7 @@
     select
    end
    local.set $3
-   global.get $~lib/math/rempio2f_y
+   global.get $~lib/util/math/rempio2_32_y
    local.set $1
    local.get $3
    i32.const 1
@@ -10006,7 +9414,7 @@
   (local $4 i32)
   (local $5 i64)
   (local $6 f64)
-  block $__inlined_func$~lib/math/NativeMath.sinh (result f64)
+  block $__inlined_func$~lib/util/math/sinh64 (result f64)
    local.get $0
    i64.reinterpret_f64
    i64.const 9223372036854775807
@@ -10027,7 +9435,7 @@
    i32.lt_u
    if
     local.get $6
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     local.set $6
     local.get $4
     i32.const 1072693248
@@ -10037,7 +9445,7 @@
      local.get $4
      i32.const 1045430272
      i32.lt_u
-     br_if $__inlined_func$~lib/math/NativeMath.sinh
+     br_if $__inlined_func$~lib/util/math/sinh64
      drop
      local.get $3
      local.get $6
@@ -10052,7 +9460,7 @@
      f64.div
      f64.sub
      f64.mul
-     br $__inlined_func$~lib/math/NativeMath.sinh
+     br $__inlined_func$~lib/util/math/sinh64
     end
     local.get $3
     local.get $6
@@ -10063,12 +9471,12 @@
     f64.div
     f64.add
     f64.mul
-    br $__inlined_func$~lib/math/NativeMath.sinh
+    br $__inlined_func$~lib/util/math/sinh64
    end
    local.get $6
    f64.const 1416.0996898839683
    f64.sub
-   call $~lib/math/NativeMath.exp
+   call $~lib/util/math/exp64
    local.get $3
    local.get $3
    f64.add
@@ -10106,13 +9514,13 @@
   local.get $0
   f32.copysign
   local.set $3
-  block $__inlined_func$~lib/math/NativeMathf.sinh
+  block $__inlined_func$~lib/util/math/sinh32
    local.get $4
    i32.const 1118925335
    i32.lt_u
    if
     local.get $5
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     local.set $5
     local.get $4
     i32.const 1065353216
@@ -10121,7 +9529,7 @@
      local.get $4
      i32.const 964689920
      i32.lt_u
-     br_if $__inlined_func$~lib/math/NativeMathf.sinh
+     br_if $__inlined_func$~lib/util/math/sinh32
      local.get $3
      local.get $5
      local.get $5
@@ -10136,7 +9544,7 @@
      f32.sub
      f32.mul
      local.set $0
-     br $__inlined_func$~lib/math/NativeMathf.sinh
+     br $__inlined_func$~lib/util/math/sinh32
     end
     local.get $3
     local.get $5
@@ -10148,12 +9556,12 @@
     f32.add
     f32.mul
     local.set $0
-    br $__inlined_func$~lib/math/NativeMathf.sinh
+    br $__inlined_func$~lib/util/math/sinh32
    end
    local.get $5
    f32.const 162.88958740234375
    f32.sub
-   call $~lib/math/NativeMathf.exp
+   call $~lib/util/math/exp32
    local.get $3
    local.get $3
    f32.add
@@ -10169,7 +9577,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64)
+ (func $~lib/util/math/tan64_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64)
   (local $3 i32)
   (local $4 i32)
   (local $5 f64)
@@ -10348,7 +9756,7 @@
   f64.mul
   f64.add
  )
- (func $~lib/math/NativeMath.tan (param $0 f64) (result f64)
+ (func $~lib/util/math/tan64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 i32)
   (local $3 i64)
@@ -10383,7 +9791,7 @@
    local.get $0
    f64.const 0
    i32.const 1
-   call $~lib/math/tan_kern
+   call $~lib/util/math/tan64_kern
    return
   end
   local.get $2
@@ -10395,7 +9803,7 @@
    f64.sub
    return
   end
-  block $~lib/math/rempio2|inlined.2
+  block $~lib/util/math/rempio2_64|inlined.2
    local.get $3
    i64.const 32
    i64.shr_u
@@ -10475,9 +9883,9 @@
      end
     end
     local.get $0
-    global.set $~lib/math/rempio2_y0
-    global.set $~lib/math/rempio2_y1
-    br $~lib/math/rempio2|inlined.2
+    global.set $~lib/util/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y1
+    br $~lib/util/math/rempio2_64|inlined.2
    end
    local.get $7
    i32.const 1094263291
@@ -10571,21 +9979,21 @@
      end
     end
     local.get $1
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $0
     local.get $1
     f64.sub
     local.get $5
     f64.sub
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $4
     i32.trunc_sat_f64_s
     local.set $2
-    br $~lib/math/rempio2|inlined.2
+    br $~lib/util/math/rempio2_64|inlined.2
    end
    i32.const 0
    local.get $3
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.tee $2
    i32.sub
    local.get $2
@@ -10593,8 +10001,8 @@
    select
    local.set $2
   end
-  global.get $~lib/math/rempio2_y0
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y1
   i32.const 1
   local.get $2
   i32.const 1
@@ -10602,9 +10010,9 @@
   i32.const 1
   i32.shl
   i32.sub
-  call $~lib/math/tan_kern
+  call $~lib/util/math/tan64_kern
  )
- (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32)
+ (func $~lib/util/math/tan32 (param $0 f32) (result f32)
   (local $1 f64)
   (local $2 f64)
   (local $3 f64)
@@ -10752,7 +10160,7 @@
      f32.sub
      return
     end
-    block $~lib/math/rempio2f|inlined.2 (result i32)
+    block $~lib/util/math/rempio2_32|inlined.2 (result i32)
      local.get $4
      i32.const 1305022427
      i32.lt_u
@@ -10773,10 +10181,10 @@
       f64.const 1.5893254773528196e-08
       f64.mul
       f64.sub
-      global.set $~lib/math/rempio2f_y
+      global.set $~lib/util/math/rempio2_32_y
       local.get $2
       i32.trunc_sat_f64_s
-      br $~lib/math/rempio2f|inlined.2
+      br $~lib/util/math/rempio2_32|inlined.2
      end
      local.get $4
      i32.const 23
@@ -10854,7 +10262,7 @@
      local.tee $8
      f64.convert_i64_s
      f64.mul
-     global.set $~lib/math/rempio2f_y
+     global.set $~lib/util/math/rempio2_32_y
      i32.const 0
      local.get $5
      i64.const 62
@@ -10871,7 +10279,7 @@
      select
     end
     local.set $4
-    global.get $~lib/math/rempio2f_y
+    global.get $~lib/util/math/rempio2_32_y
     local.tee $1
     local.get $1
     f64.mul
@@ -11021,7 +10429,7 @@
     local.get $5
     local.get $5
     f64.add
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     f64.const 2
     f64.add
     f64.div
@@ -11035,7 +10443,7 @@
     local.get $5
     local.get $5
     f64.add
-    call $~lib/math/NativeMath.expm1
+    call $~lib/util/math/expm1_64
     local.tee $5
     local.get $5
     f64.const 2
@@ -11049,7 +10457,7 @@
      local.get $5
      f64.const -2
      f64.mul
-     call $~lib/math/NativeMath.expm1
+     call $~lib/util/math/expm1_64
      local.tee $5
      f64.neg
      local.get $5
@@ -11105,7 +10513,7 @@
     local.get $4
     local.get $4
     f32.add
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     f32.const 2
     f32.add
     f32.div
@@ -11119,7 +10527,7 @@
     local.get $4
     local.get $4
     f32.add
-    call $~lib/math/NativeMathf.expm1
+    call $~lib/util/math/expm1_32
     local.tee $4
     local.get $4
     f32.const 2
@@ -11133,7 +10541,7 @@
      local.get $4
      f32.const -2
      f32.mul
-     call $~lib/math/NativeMathf.expm1
+     call $~lib/util/math/expm1_32
      local.tee $4
      f32.neg
      local.get $4
@@ -11151,7 +10559,7 @@
   local.get $2
   call $std/math/check<f32>
  )
- (func $~lib/math/NativeMath.sincos (param $0 f64)
+ (func $~lib/util/math/sincos64 (param $0 f64) (result f64)
   (local $1 f64)
   (local $2 f64)
   (local $3 i32)
@@ -11183,48 +10591,18 @@
    i32.const 1044816030
    i32.lt_u
    if
-    local.get $0
-    global.set $~lib/math/NativeMath.sincos_sin
     f64.const 1
-    global.set $~lib/math/NativeMath.sincos_cos
+    global.set $~lib/util/math/sincos_cos64
+    local.get $0
     return
    end
    local.get $0
    local.get $0
-   local.get $0
    f64.mul
    local.tee $1
-   local.get $0
-   f64.mul
-   local.get $1
-   local.get $1
-   local.get $1
-   f64.const 2.7557313707070068e-06
-   f64.mul
-   f64.const -1.984126982985795e-04
-   f64.add
-   f64.mul
-   f64.const 0.00833333333332249
-   f64.add
-   local.get $1
-   local.get $1
    local.get $1
    f64.mul
-   local.tee $2
-   f64.mul
-   local.get $1
-   f64.const 1.58969099521155e-10
-   f64.mul
-   f64.const -2.5050760253406863e-08
-   f64.add
-   f64.mul
-   f64.add
-   f64.mul
-   f64.const -0.16666666666666632
-   f64.add
-   f64.mul
-   f64.add
-   global.set $~lib/math/NativeMath.sincos_sin
+   local.set $2
    f64.const 1
    local.get $1
    f64.const 0.5
@@ -11270,7 +10648,38 @@
    f64.sub
    f64.add
    f64.add
-   global.set $~lib/math/NativeMath.sincos_cos
+   global.set $~lib/util/math/sincos_cos64
+   local.get $0
+   local.get $1
+   local.get $0
+   f64.mul
+   local.get $1
+   local.get $1
+   local.get $1
+   f64.const 2.7557313707070068e-06
+   f64.mul
+   f64.const -1.984126982985795e-04
+   f64.add
+   f64.mul
+   f64.const 0.00833333333332249
+   f64.add
+   local.get $1
+   local.get $1
+   local.get $1
+   f64.mul
+   f64.mul
+   local.get $1
+   f64.const 1.58969099521155e-10
+   f64.mul
+   f64.const -2.5050760253406863e-08
+   f64.add
+   f64.mul
+   f64.add
+   f64.mul
+   f64.const -0.16666666666666632
+   f64.add
+   f64.mul
+   f64.add
    return
   end
   local.get $3
@@ -11281,12 +10690,11 @@
    local.get $0
    f64.sub
    local.tee $0
-   global.set $~lib/math/NativeMath.sincos_sin
+   global.set $~lib/util/math/sincos_cos64
    local.get $0
-   global.set $~lib/math/NativeMath.sincos_cos
    return
   end
-  block $~lib/math/rempio2|inlined.3 (result i32)
+  block $~lib/util/math/rempio2_64|inlined.3 (result i32)
    local.get $5
    i64.const 32
    i64.shr_u
@@ -11366,10 +10774,10 @@
      end
     end
     local.get $0
-    global.set $~lib/math/rempio2_y0
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y1
     local.get $3
-    br $~lib/math/rempio2|inlined.3
+    br $~lib/util/math/rempio2_64|inlined.3
    end
    local.get $4
    i32.const 1094263291
@@ -11463,20 +10871,20 @@
      end
     end
     local.get $2
-    global.set $~lib/math/rempio2_y0
+    global.set $~lib/util/math/rempio2_y0
     local.get $0
     local.get $2
     f64.sub
     local.get $1
     f64.sub
-    global.set $~lib/math/rempio2_y1
+    global.set $~lib/util/math/rempio2_y1
     local.get $7
     i32.trunc_sat_f64_s
-    br $~lib/math/rempio2|inlined.3
+    br $~lib/util/math/rempio2_64|inlined.3
    end
    i32.const 0
    local.get $5
-   call $~lib/math/pio2_large_quot
+   call $~lib/util/math/pio2_64_large_quot
    local.tee $3
    i32.sub
    local.get $3
@@ -11484,7 +10892,7 @@
    select
   end
   local.set $3
-  global.get $~lib/math/rempio2_y0
+  global.get $~lib/util/math/rempio2_y0
   local.tee $7
   local.get $7
   f64.mul
@@ -11495,7 +10903,7 @@
   local.set $1
   local.get $7
   local.get $0
-  global.get $~lib/math/rempio2_y1
+  global.get $~lib/util/math/rempio2_y1
   local.tee $9
   f64.const 0.5
   f64.mul
@@ -11595,18 +11003,17 @@
   local.get $3
   i32.const 2
   i32.and
-  if (result f64)
+  if
    local.get $1
    f64.neg
    local.set $1
    local.get $0
    f64.neg
-  else
-   local.get $0
+   local.set $0
   end
-  global.set $~lib/math/NativeMath.sincos_sin
   local.get $1
-  global.set $~lib/math/NativeMath.sincos_cos
+  global.set $~lib/util/math/sincos_cos64
+  local.get $0
  )
  (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
   (local $5 f64)
@@ -11619,7 +11026,10 @@
   local.set $6
   local.get $0
   f64.reinterpret_i64
-  call $~lib/math/NativeMath.sincos
+  call $~lib/util/math/sincos64
+  global.set $~lib/math/NativeMath.sincos_sin
+  global.get $~lib/util/math/sincos_cos64
+  global.set $~lib/math/NativeMath.sincos_cos
   global.get $~lib/math/NativeMath.sincos_sin
   local.get $1
   f64.reinterpret_i64
@@ -11634,7 +11044,7 @@
    drop
   end
  )
- (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/math/NativeMath.imul<f64> (param $0 f64) (param $1 f64) (result f64)
   (local $2 i32)
   (local $3 i64)
   (local $4 f64)
@@ -11740,7 +11150,7 @@
   i32.mul
   f64.convert_i32_s
  )
- (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64)
+ (func $~lib/util/math/ipow64 (param $0 i64) (param $1 i64) (result i64)
   (local $2 i64)
   i64.const 1
   local.set $2
@@ -11958,13 +11368,10 @@
   local.get $2
  )
  (func $start:std/math
-  (local $0 f64)
-  (local $1 i32)
-  (local $2 i64)
-  (local $3 i32)
-  (local $4 i32)
-  (local $5 f32)
-  (local $6 i64)
+  (local $0 i64)
+  (local $1 f64)
+  (local $2 i32)
+  (local $3 i64)
   f64.const 2.718281828459045
   global.get $~lib/bindings/dom/Math.E
   f64.const 0
@@ -11973,7 +11380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 111
+   i32.const 116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11986,7 +11393,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 112
+   i32.const 117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11999,7 +11406,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 113
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12012,7 +11419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 114
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12025,7 +11432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 115
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12038,7 +11445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 116
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12048,62 +11455,6 @@
   f64.const 0
   call $std/math/check<f64>
   i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 117
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 2.7182817459106445
-  global.get $~lib/bindings/dom/Math.E
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 119
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.6931471824645996
-  global.get $~lib/bindings/dom/Math.LN2
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 120
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 2.3025851249694824
-  global.get $~lib/bindings/dom/Math.LN10
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 121
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1.4426950216293335
-  global.get $~lib/bindings/dom/Math.LOG2E
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -12112,51 +11463,9 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 3.1415927410125732
-  global.get $~lib/bindings/dom/Math.PI
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 123
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.7071067690849304
-  global.get $~lib/bindings/dom/Math.SQRT1_2
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 124
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1.4142135381698608
-  global.get $~lib/bindings/dom/Math.SQRT2
-  f32.demote_f64
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 125
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f64.const -8.06684839057968
   i32.const -2
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -2.01671209764492
   f64.const 0
   call $std/math/check<f64>
@@ -12164,14 +11473,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 136
+   i32.const 133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
   i32.const -1
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 2.1726199246691524
   f64.const 0
   call $std/math/check<f64>
@@ -12179,14 +11488,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 137
+   i32.const 134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
   i32.const 0
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -8.38143342755525
   f64.const 0
   call $std/math/check<f64>
@@ -12194,14 +11503,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 138
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
   i32.const 1
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -13.063347163826968
   f64.const 0
   call $std/math/check<f64>
@@ -12209,14 +11518,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 139
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
   i32.const 2
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 37.06822786789034
   f64.const 0
   call $std/math/check<f64>
@@ -12224,14 +11533,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 140
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
   i32.const 3
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 5.295887184796036
   f64.const 0
   call $std/math/check<f64>
@@ -12239,14 +11548,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 141
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
   i32.const 4
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -6.505662758165685
   f64.const 0
   call $std/math/check<f64>
@@ -12254,14 +11563,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 142
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
   i32.const 5
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 17.97631187906317
   f64.const 0
   call $std/math/check<f64>
@@ -12269,14 +11578,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 143
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
   i32.const 6
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 49.545746981843436
   f64.const 0
   call $std/math/check<f64>
@@ -12284,14 +11593,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 144
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
   i32.const 7
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -86.88175393784351
   f64.const 0
   call $std/math/check<f64>
@@ -12299,14 +11608,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 145
+   i32.const 142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   i32.const 2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -12314,14 +11623,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 148
+   i32.const 145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   i32.const -2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -12329,14 +11638,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 149
+   i32.const 146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   i32.const 2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -12344,14 +11653,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 150
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   i32.const 0
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -12359,14 +11668,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 151
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   i32.const 0
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -12374,14 +11683,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 152
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   i32.const 0
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -12389,14 +11698,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 153
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   i32.const 0
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -12404,14 +11713,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 154
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   i32.const 1
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 2
   f64.const 0
   call $std/math/check<f64>
@@ -12419,14 +11728,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 155
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   i32.const -1
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 0.5
   f64.const 0
   call $std/math/check<f64>
@@ -12434,14 +11743,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 156
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   i32.const 2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -12449,14 +11758,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 157
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   i32.const 1
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -12464,14 +11773,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 158
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   i32.const 2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -12479,14 +11788,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 159
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   i32.const -2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -12494,14 +11803,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 160
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   i32.const 2147483647
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -12509,14 +11818,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 161
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8988465674311579538646525e283
   i32.const -2097
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -12524,14 +11833,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 162
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
   i32.const 2097
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 8988465674311579538646525e283
   f64.const 0
   call $std/math/check<f64>
@@ -12539,14 +11848,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 163
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.000244140625
   i32.const -1074
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -12554,14 +11863,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 164
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7499999999999999
   i32.const -1073
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -12569,14 +11878,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 165
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5000000000000012
   i32.const -1024
-  call $~lib/math/NativeMath.scalbn
+  call $~lib/util/math/scalbn64
   f64.const 2.781342323134007e-309
   f64.const 0
   call $std/math/check<f64>
@@ -12584,7 +11893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 166
+   i32.const 163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12597,7 +11906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 175
+   i32.const 172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12610,7 +11919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 176
+   i32.const 173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12623,7 +11932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 177
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12636,7 +11945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 178
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12649,7 +11958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 179
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12662,7 +11971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 180
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12675,7 +11984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 181
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12688,7 +11997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 182
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12701,7 +12010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 183
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12714,7 +12023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 184
+   i32.const 181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12727,7 +12036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 187
+   i32.const 184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12740,7 +12049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 188
+   i32.const 185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12753,7 +12062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 189
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12766,7 +12075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 190
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12779,7 +12088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 191
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12792,7 +12101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 192
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12805,7 +12114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 193
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12818,7 +12127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 194
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12831,7 +12140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 195
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12844,7 +12153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 196
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12857,7 +12166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 197
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12870,7 +12179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 198
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12883,7 +12192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 199
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12896,7 +12205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 200
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12909,7 +12218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 201
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12922,7 +12231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 202
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12935,7 +12244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 203
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12948,7 +12257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 204
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12961,7 +12270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 205
+   i32.const 202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12983,7 +12292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 217
+   i32.const 214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13005,7 +12314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 218
+   i32.const 215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13027,7 +12336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 219
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13049,7 +12358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 220
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13071,7 +12380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 221
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13093,7 +12402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 222
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13115,7 +12424,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 223
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13137,7 +12446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 224
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13159,7 +12468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 225
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13181,7 +12490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 226
+   i32.const 223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13203,7 +12512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 229
+   i32.const 226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13225,7 +12534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 230
+   i32.const 227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13247,7 +12556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 231
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13269,7 +12578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 232
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13291,7 +12600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 233
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13313,7 +12622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 234
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13335,7 +12644,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 235
+   i32.const 232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13348,7 +12657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 244
+   i32.const 241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13361,7 +12670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 245
+   i32.const 242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13374,7 +12683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 246
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13387,7 +12696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 247
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13400,7 +12709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 248
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13413,7 +12722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 249
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13426,7 +12735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 250
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13439,7 +12748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 251
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13452,7 +12761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 252
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13465,7 +12774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 253
+   i32.const 250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13478,7 +12787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 256
+   i32.const 253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13491,7 +12800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 257
+   i32.const 254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13504,7 +12813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 258
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13517,7 +12826,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 259
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13530,7 +12839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 260
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13543,7 +12852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 261
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13556,13 +12865,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 262
+   i32.const 259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13579,13 +12888,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 274
+   i32.const 271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13602,13 +12911,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 275
+   i32.const 272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13625,13 +12934,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 276
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13648,13 +12957,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 277
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13671,13 +12980,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 278
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 0.8473310828433507
   f64.const -0.41553276777267456
   call $std/math/check<f64>
@@ -13694,13 +13003,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 279
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 1.989530071088669
   f64.const 0.4973946213722229
   call $std/math/check<f64>
@@ -13717,13 +13026,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 280
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 0.9742849645674904
   f64.const -0.4428897500038147
   call $std/math/check<f64>
@@ -13740,13 +13049,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 281
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 0.6854215158636222
   f64.const -0.12589527666568756
   call $std/math/check<f64>
@@ -13763,13 +13072,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 282
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 2.316874138205964
   f64.const -0.17284949123859406
   call $std/math/check<f64>
@@ -13786,13 +13095,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 283
+   i32.const 280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 1.5707963267948966
   f64.const -0.27576595544815063
   call $std/math/check<f64>
@@ -13809,13 +13118,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 286
+   i32.const 283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 3.141592653589793
   f64.const -0.27576595544815063
   call $std/math/check<f64>
@@ -13832,13 +13141,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 287
+   i32.const 284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -13855,13 +13164,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 288
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.0000000000000002
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13878,13 +13187,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 289
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.0000000000000002
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13901,13 +13210,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 290
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13924,13 +13233,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 291
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13947,13 +13256,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 292
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -13970,13 +13279,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 293
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5309227209592985
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 2.1304853799705463
   f64.const 0.1391008496284485
   call $std/math/check<f64>
@@ -13993,13 +13302,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 294
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.4939556746399746
-  call $~lib/math/NativeMath.acos
+  call $~lib/util/math/acos64
   f64.const 1.0541629875851946
   f64.const 0.22054767608642578
   call $std/math/check<f64>
@@ -14016,301 +13325,280 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 295
+   i32.const 292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 304
+   i32.const 301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 305
+   i32.const 302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 306
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 307
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 308
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.acos
   f32.const 0.8473311066627502
   f32.const -0.13588131964206696
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 309
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.acos
   f32.const 1.989530086517334
   f32.const 0.03764917701482773
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 310
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.acos
   f32.const 0.9742849469184875
   f32.const 0.18443739414215088
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 311
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.acos
   f32.const 0.6854215264320374
   f32.const -0.29158344864845276
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 312
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.acos
   f32.const 2.3168740272521973
   f32.const -0.3795364499092102
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 313
+   i32.const 310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.acos
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 316
+   i32.const 313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.acos
   f32.const 3.1415927410125732
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 317
+   i32.const 314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.acos
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 318
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.0000001192092896
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 319
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.0000001192092896
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 320
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 321
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 322
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.acos
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 323
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.49965065717697144
-  call $~lib/math/NativeMathf.acos
   f32.const 1.0476008653640747
   f32.const -0.21161814033985138
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 324
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5051405429840088
-  call $~lib/math/NativeMathf.acos
   f32.const 2.1003410816192627
   f32.const -0.20852705836296082
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 325
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5189794898033142
-  call $~lib/math/NativeMathf.acos
   f32.const 2.116452932357788
   f32.const -0.14600826799869537
-  call $std/math/check<f32>
+  call $std/math/test_acosf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 326
+   i32.const 323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14323,7 +13611,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 338
+   i32.const 335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14336,7 +13624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 339
+   i32.const 336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14349,7 +13637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 340
+   i32.const 337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14362,7 +13650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 341
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14375,7 +13663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 342
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14388,7 +13676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 343
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14401,7 +13689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 344
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14414,7 +13702,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 345
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14427,7 +13715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 346
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14440,7 +13728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 347
+   i32.const 344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14453,7 +13741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 350
+   i32.const 347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14466,7 +13754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 351
+   i32.const 348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14479,7 +13767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 352
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14492,7 +13780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 353
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14505,7 +13793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 354
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14518,7 +13806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 355
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14531,7 +13819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 356
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14544,7 +13832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 357
+   i32.const 354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14557,7 +13845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 373
+   i32.const 370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14570,7 +13858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 375
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14583,7 +13871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 376
+   i32.const 373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14596,7 +13884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 385
+   i32.const 382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14609,7 +13897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 386
+   i32.const 383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14622,7 +13910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 387
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14635,7 +13923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 388
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14648,7 +13936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 389
+   i32.const 386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14661,7 +13949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 390
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14674,7 +13962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 391
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14687,7 +13975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 392
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14700,7 +13988,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 393
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14713,7 +14001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 394
+   i32.const 391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14726,7 +14014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 397
+   i32.const 394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14739,7 +14027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 398
+   i32.const 395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14752,7 +14040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 399
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14765,7 +14053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 400
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14778,7 +14066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 401
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14791,7 +14079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 402
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14804,7 +14092,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 403
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14817,13 +14105,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 404
+   i32.const 401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -14840,13 +14128,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 416
+   i32.const 413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -14863,13 +14151,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 417
+   i32.const 414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -14886,13 +14174,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 418
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -14909,13 +14197,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 419
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -14932,13 +14220,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 420
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 0.7234652439515459
   f64.const -0.13599912822246552
   call $std/math/check<f64>
@@ -14955,13 +14243,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 421
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const -0.41873374429377225
   f64.const -0.09264230728149414
   call $std/math/check<f64>
@@ -14978,13 +14266,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 422
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 0.5965113622274062
   f64.const -0.10864213854074478
   call $std/math/check<f64>
@@ -15001,13 +14289,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 423
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 0.8853748109312743
   f64.const -0.4256366193294525
   call $std/math/check<f64>
@@ -15024,13 +14312,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 424
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const -0.7460778114110673
   f64.const 0.13986606895923615
   call $std/math/check<f64>
@@ -15047,13 +14335,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 425
+   i32.const 422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 1.5707963267948966
   f64.const -0.27576595544815063
   call $std/math/check<f64>
@@ -15070,13 +14358,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 428
+   i32.const 425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const -1.5707963267948966
   f64.const 0.27576595544815063
   call $std/math/check<f64>
@@ -15093,13 +14381,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 429
+   i32.const 426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -15116,13 +14404,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 430
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -15139,13 +14427,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 431
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.0000000000000002
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -15162,13 +14450,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 432
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.0000000000000002
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -15185,13 +14473,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 433
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -15208,13 +14496,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 434
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -15231,13 +14519,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 435
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -15254,13 +14542,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 436
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5073043929119148
-  call $~lib/math/NativeMath.asin
+  call $~lib/util/math/asin64
   f64.const 0.5320538997772349
   f64.const -0.16157317161560059
   call $std/math/check<f64>
@@ -15277,287 +14565,267 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 437
+   i32.const 434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 446
+   i32.const 443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 447
+   i32.const 444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 448
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 449
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 450
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.asin
   f32.const 0.7234652042388916
   f32.const -0.1307632476091385
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 451
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.asin
   f32.const -0.41873374581336975
   f32.const 0.3161141574382782
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 452
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.asin
   f32.const 0.5965113639831543
   f32.const -0.4510819613933563
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 453
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.asin
   f32.const 0.8853747844696045
   f32.const 0.02493886835873127
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 454
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.asin
   f32.const -0.7460777759552002
   f32.const 0.2515012323856354
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 455
+   i32.const 452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.asin
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 458
+   i32.const 455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.asin
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 459
+   i32.const 456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.asin
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 460
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.asin
   f32.const -0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 461
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.0000001192092896
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 462
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.0000001192092896
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 463
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 464
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 465
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.asin
   f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 466
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5004770159721375
-  call $~lib/math/NativeMathf.asin
   f32.const 0.5241496562957764
   f32.const -0.29427099227905273
-  call $std/math/check<f32>
+  call $std/math/test_asinf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 467
+   i32.const 464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15570,7 +14838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 479
+   i32.const 476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15583,7 +14851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 480
+   i32.const 477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15596,7 +14864,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 481
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15609,7 +14877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 482
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15622,7 +14890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 483
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15635,7 +14903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 484
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15648,7 +14916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 485
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15661,7 +14929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 486
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15674,7 +14942,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 487
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15687,7 +14955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 488
+   i32.const 485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15700,7 +14968,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 491
+   i32.const 488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15713,7 +14981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 492
+   i32.const 489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15726,7 +14994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 493
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15739,7 +15007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 494
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15752,7 +15020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 495
+   i32.const 492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15765,7 +15033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 524
+   i32.const 521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15778,7 +15046,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 525
+   i32.const 522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15791,7 +15059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 526
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15804,7 +15072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 527
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15817,7 +15085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 528
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15830,7 +15098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 529
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15843,7 +15111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 530
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15856,7 +15124,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 531
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15869,7 +15137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 532
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15882,7 +15150,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 533
+   i32.const 530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15895,7 +15163,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 536
+   i32.const 533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15908,7 +15176,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 537
+   i32.const 534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15921,7 +15189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 538
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15934,7 +15202,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 539
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15947,13 +15215,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 540
+   i32.const 537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -1.4474613762633468
   f64.const 0.14857111871242523
   call $std/math/check<f64>
@@ -15970,13 +15238,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 552
+   i32.const 549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 1.344597927114538
   f64.const -0.08170335739850998
   call $std/math/check<f64>
@@ -15993,13 +15261,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 553
+   i32.const 550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -1.4520463463295539
   f64.const -0.07505480200052261
   call $std/math/check<f64>
@@ -16016,13 +15284,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 554
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -1.4188758658752532
   f64.const -0.057633496820926666
   call $std/math/check<f64>
@@ -16039,13 +15307,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 555
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 1.463303145448706
   f64.const 0.1606956422328949
   call $std/math/check<f64>
@@ -16062,13 +15330,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 556
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0.5847550670238325
   f64.const 0.4582556486129761
   call $std/math/check<f64>
@@ -16085,13 +15353,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 557
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -0.3861864177552131
   f64.const -0.2574281692504883
   call $std/math/check<f64>
@@ -16108,13 +15376,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 558
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0.5118269531628881
   f64.const -0.11444277316331863
   call $std/math/check<f64>
@@ -16131,13 +15399,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 559
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0.6587802431653822
   f64.const -0.11286488175392151
   call $std/math/check<f64>
@@ -16154,13 +15422,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 560
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -0.5963307826973472
   f64.const -0.2182842344045639
   call $std/math/check<f64>
@@ -16177,13 +15445,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 561
+   i32.const 558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -16200,13 +15468,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 564
+   i32.const 561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -16223,13 +15491,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 565
+   i32.const 562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0.7853981633974483
   f64.const -0.27576595544815063
   call $std/math/check<f64>
@@ -16246,13 +15514,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 566
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -0.7853981633974483
   f64.const 0.27576595544815063
   call $std/math/check<f64>
@@ -16269,13 +15537,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 567
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 1.5707963267948966
   f64.const -0.27576595544815063
   call $std/math/check<f64>
@@ -16292,13 +15560,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 568
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const -1.5707963267948966
   f64.const 0.27576595544815063
   call $std/math/check<f64>
@@ -16315,13 +15583,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 569
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -16338,13 +15606,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 570
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6929821535674624
-  call $~lib/math/NativeMath.atan
+  call $~lib/util/math/atan64
   f64.const 0.6060004555152562
   f64.const -0.17075790464878082
   call $std/math/check<f64>
@@ -16361,13 +15629,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 571
+   i32.const 568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -1.4474613666534424
   f32.const 0.12686480581760406
   call $std/math/check<f32>
@@ -16375,13 +15643,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 580
+   i32.const 577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 1.3445979356765747
   f32.const 0.16045434772968292
   call $std/math/check<f32>
@@ -16389,13 +15657,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 581
+   i32.const 578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -1.4520463943481445
   f32.const -0.39581751823425293
   call $std/math/check<f32>
@@ -16403,13 +15671,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 582
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -1.418875813484192
   f32.const 0.410570353269577
   call $std/math/check<f32>
@@ -16417,13 +15685,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 583
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 1.4633032083511353
   f32.const 0.48403501510620117
   call $std/math/check<f32>
@@ -16431,13 +15699,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 584
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 0.5847550630569458
   f32.const 0.2125193476676941
   call $std/math/check<f32>
@@ -16445,13 +15713,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 585
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -0.386186420917511
   f32.const 0.18169628083705902
   call $std/math/check<f32>
@@ -16459,13 +15727,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 586
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 0.5118269920349121
   f32.const 0.3499770760536194
   call $std/math/check<f32>
@@ -16473,13 +15741,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 587
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 0.6587802171707153
   f32.const -0.2505330741405487
   call $std/math/check<f32>
@@ -16487,13 +15755,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 588
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -0.5963307619094849
   f32.const 0.17614826560020447
   call $std/math/check<f32>
@@ -16501,13 +15769,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 589
+   i32.const 586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -16515,13 +15783,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 592
+   i32.const 589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -16529,13 +15797,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 593
+   i32.const 590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 0.7853981852531433
   f32.const 0.3666777014732361
   call $std/math/check<f32>
@@ -16543,13 +15811,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 594
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -0.7853981852531433
   f32.const -0.3666777014732361
   call $std/math/check<f32>
@@ -16557,13 +15825,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 595
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
   call $std/math/check<f32>
@@ -16571,13 +15839,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 596
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
   call $std/math/check<f32>
@@ -16585,13 +15853,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 597
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.atan
+  call $~lib/util/math/atan32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -16599,7 +15867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 598
+   i32.const 595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16612,7 +15880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 610
+   i32.const 607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16625,7 +15893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 611
+   i32.const 608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16638,7 +15906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 612
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16651,7 +15919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 613
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16664,7 +15932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 614
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16677,7 +15945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 615
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16690,7 +15958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 616
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16703,7 +15971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 617
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16716,7 +15984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 618
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16729,7 +15997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 619
+   i32.const 616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16742,7 +16010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 622
+   i32.const 619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16755,7 +16023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 623
+   i32.const 620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16768,7 +16036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 624
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16781,7 +16049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 625
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16794,7 +16062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 626
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16807,7 +16075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 627
+   i32.const 624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16820,7 +16088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 628
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16833,7 +16101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 629
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16846,7 +16114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 630
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16859,7 +16127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 631
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16872,7 +16140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 632
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16885,7 +16153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 633
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16898,7 +16166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 634
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16911,7 +16179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 635
+   i32.const 632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16924,7 +16192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 644
+   i32.const 641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16937,7 +16205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 645
+   i32.const 642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16950,7 +16218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 646
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16963,7 +16231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 647
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16976,7 +16244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 648
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16989,7 +16257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 649
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17002,7 +16270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 650
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17015,7 +16283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 651
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17028,7 +16296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 652
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17041,7 +16309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 653
+   i32.const 650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17054,7 +16322,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 656
+   i32.const 653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17067,7 +16335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 657
+   i32.const 654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17080,7 +16348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 658
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17093,7 +16361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 659
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17106,7 +16374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 660
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17119,7 +16387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 661
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17132,7 +16400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 662
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17145,7 +16413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 663
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17158,7 +16426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 664
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17171,7 +16439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 665
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17184,7 +16452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 666
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17197,7 +16465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 667
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17210,7 +16478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 668
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17223,7 +16491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 669
+   i32.const 666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17237,7 +16505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 681
+   i32.const 678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17251,7 +16519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 682
+   i32.const 679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17265,7 +16533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 683
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17279,7 +16547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 684
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17293,7 +16561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 685
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17307,7 +16575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 686
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17321,7 +16589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 687
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17335,7 +16603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 688
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17349,7 +16617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 689
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17363,7 +16631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 690
+   i32.const 687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17377,7 +16645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 693
+   i32.const 690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17391,7 +16659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 694
+   i32.const 691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17405,7 +16673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 695
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17419,7 +16687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 696
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17433,7 +16701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 697
+   i32.const 694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17447,7 +16715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 698
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17461,7 +16729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 699
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17475,7 +16743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 700
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17489,7 +16757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 701
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17503,7 +16771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 702
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17517,7 +16785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 703
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17531,7 +16799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 704
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17545,7 +16813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 705
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17559,7 +16827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 706
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17573,7 +16841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 707
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17587,7 +16855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 708
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17601,7 +16869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 709
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17615,7 +16883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 710
+   i32.const 707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17629,7 +16897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 711
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17643,7 +16911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 712
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17657,7 +16925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 713
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17671,7 +16939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 714
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17685,7 +16953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 715
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17699,7 +16967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 716
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17713,7 +16981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 717
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17727,7 +16995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 718
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17741,7 +17009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 719
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17755,7 +17023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 720
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17769,7 +17037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 721
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17783,577 +17051,539 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 722
+   i32.const 719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
   f32.const 4.535662651062012
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.0585895776748657
   f32.const -0.22352588176727295
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 731
+   i32.const 728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
   f32.const -8.887990951538086
-  call $~lib/math/NativeMathf.atan2
   f32.const 2.686873435974121
   f32.const 0.09464472532272339
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 732
+   i32.const 729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
   f32.const -2.7636072635650635
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.8893001079559326
   f32.const -0.21941901743412018
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 733
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
   f32.const 4.567535400390625
-  call $~lib/math/NativeMathf.atan2
   f32.const -0.9605468511581421
   f32.const 0.46015575528144836
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 734
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
   f32.const 4.811392307281494
-  call $~lib/math/NativeMathf.atan2
   f32.const 1.0919123888015747
   f32.const -0.05708503723144531
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 735
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.450045585632324
   f32.const 0.6620717644691467
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.4685084819793701
   f32.const 0.19611206650733948
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 736
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.858890056610107
   f32.const 0.052154526114463806
-  call $~lib/math/NativeMathf.atan2
   f32.const 1.5641601085662842
   f32.const 0.48143187165260315
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 737
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.7920545339584351
   f32.const 7.676402568817139
-  call $~lib/math/NativeMathf.atan2
   f32.const -0.10281659662723541
   f32.const -0.4216274917125702
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 738
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6157026886940002
   f32.const 2.0119025707244873
-  call $~lib/math/NativeMathf.atan2
   f32.const 0.29697975516319275
   f32.const 0.2322007566690445
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 739
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5587586760520935
   f32.const 0.03223983198404312
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.5131611824035645
   f32.const 0.16620726883411407
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 740
+   i32.const 737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 743
+   i32.const 740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -0
-  call $~lib/math/NativeMathf.atan2
   f32.const 3.1415927410125732
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 744
+   i32.const 741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -1
-  call $~lib/math/NativeMathf.atan2
   f32.const 3.1415927410125732
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 745
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 3.1415927410125732
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 746
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1
-  call $~lib/math/NativeMathf.atan2
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 747
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 748
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const -0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 749
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -0
-  call $~lib/math/NativeMathf.atan2
   f32.const -3.1415927410125732
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 750
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1
-  call $~lib/math/NativeMathf.atan2
   f32.const -3.1415927410125732
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 751
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -3.1415927410125732
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 752
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1
-  call $~lib/math/NativeMathf.atan2
   f32.const -0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 753
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 754
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 755
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -0
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 756
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 757
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -0
-  call $~lib/math/NativeMathf.atan2
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 758
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 759
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 0
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 760
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -3.1415927410125732
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 761
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 3.1415927410125732
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 762
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const 1.5707963705062866
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 763
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0
-  call $~lib/math/NativeMathf.atan2
   f32.const -1.5707963705062866
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 764
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 0.7853981852531433
   f32.const 0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 765
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const 2.356194496154785
   f32.const 0.02500828728079796
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 766
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -0.7853981852531433
   f32.const -0.3666777014732361
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 767
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -inf
-  call $~lib/math/NativeMathf.atan2
   f32.const -2.356194496154785
   f32.const -0.02500828728079796
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 768
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.877471754111438e-39
   f32.const 1
-  call $~lib/math/NativeMathf.atan2
   f32.const 5.877471754111438e-39
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 769
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 1701411834604692317316873e14
-  call $~lib/math/NativeMathf.atan2
   f32.const 5.877471754111438e-39
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_atan2f
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 770
+   i32.const 767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18366,7 +17596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 782
+   i32.const 779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18379,7 +17609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 783
+   i32.const 780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18392,7 +17622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 784
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18405,7 +17635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 785
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18418,7 +17648,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 786
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18431,7 +17661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 787
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18444,7 +17674,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 788
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18457,7 +17687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 789
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18470,7 +17700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 790
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18483,7 +17713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 791
+   i32.const 788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18496,7 +17726,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 794
+   i32.const 791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18509,7 +17739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 795
+   i32.const 792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18522,7 +17752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 796
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18535,7 +17765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 797
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18548,7 +17778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 798
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18561,7 +17791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 799
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18574,7 +17804,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 800
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18587,7 +17817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 801
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18600,7 +17830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 802
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18613,7 +17843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 803
+   i32.const 800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18626,7 +17856,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 812
+   i32.const 809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18639,7 +17869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 813
+   i32.const 810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18652,7 +17882,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 814
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18665,7 +17895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 815
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18678,7 +17908,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 816
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18691,7 +17921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 817
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18704,7 +17934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 818
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18717,7 +17947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 819
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18730,7 +17960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 820
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18743,7 +17973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 821
+   i32.const 818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18756,7 +17986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 824
+   i32.const 821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18769,7 +17999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 825
+   i32.const 822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18782,7 +18012,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 826
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18795,7 +18025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 827
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18808,7 +18038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 828
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18821,7 +18051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 829
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18834,7 +18064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 830
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18847,7 +18077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 831
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18860,7 +18090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 832
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18873,7 +18103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 833
+   i32.const 830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18895,7 +18125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 845
+   i32.const 842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18917,7 +18147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 846
+   i32.const 843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18939,7 +18169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 847
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18961,7 +18191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 848
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18983,7 +18213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 849
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19005,7 +18235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 850
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19027,7 +18257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 851
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19049,7 +18279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 852
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19071,7 +18301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 853
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19093,7 +18323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 854
+   i32.const 851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19115,7 +18345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 857
+   i32.const 854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19137,7 +18367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 858
+   i32.const 855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19159,7 +18389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 859
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19181,7 +18411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 860
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19203,7 +18433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 861
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19225,7 +18455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 862
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19247,7 +18477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 863
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19269,7 +18499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 864
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19291,7 +18521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 865
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19313,7 +18543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 866
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19335,7 +18565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 867
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19357,7 +18587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 868
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19379,7 +18609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 869
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19401,7 +18631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 870
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19423,7 +18653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 871
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19445,7 +18675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 872
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19467,7 +18697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 873
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19489,7 +18719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 874
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19511,7 +18741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 875
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19533,7 +18763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 876
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19555,7 +18785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 877
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19577,7 +18807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 878
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19599,7 +18829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 879
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19621,7 +18851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 880
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19643,7 +18873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 881
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19665,7 +18895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 882
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19687,7 +18917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 883
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19709,7 +18939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 884
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19731,7 +18961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 885
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19753,7 +18983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 886
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19775,7 +19005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 887
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19797,7 +19027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 888
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19819,7 +19049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 889
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19841,7 +19071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 890
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19863,7 +19093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 891
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19885,7 +19115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 892
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19907,7 +19137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 893
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19929,7 +19159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 894
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19951,7 +19181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 895
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19973,7 +19203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 896
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19995,7 +19225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 897
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20017,7 +19247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 898
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20039,7 +19269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 899
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20061,7 +19291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 900
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20083,7 +19313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 901
+   i32.const 898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20096,7 +19326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 910
+   i32.const 907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20109,7 +19339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 911
+   i32.const 908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20122,7 +19352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 912
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20135,7 +19365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 913
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20148,7 +19378,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 914
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20161,7 +19391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 915
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20174,7 +19404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 916
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20187,7 +19417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 917
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20200,7 +19430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 918
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20213,7 +19443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 919
+   i32.const 916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20226,7 +19456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 922
+   i32.const 919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20239,7 +19469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 923
+   i32.const 920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20252,7 +19482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 924
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20265,7 +19495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 925
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20278,7 +19508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 926
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20291,7 +19521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 927
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20304,7 +19534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 928
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20317,7 +19547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 929
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20330,7 +19560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 930
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20343,7 +19573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 931
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20356,7 +19586,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 932
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20369,7 +19599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 933
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20382,7 +19612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 934
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20395,7 +19625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 935
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20408,7 +19638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 936
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20421,7 +19651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 937
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20434,7 +19664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 938
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20447,7 +19677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 939
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20460,7 +19690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 940
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20473,7 +19703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 941
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20486,7 +19716,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 942
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20499,7 +19729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 943
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20512,7 +19742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 944
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20525,7 +19755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 945
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20538,7 +19768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 946
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20551,7 +19781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 947
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20564,7 +19794,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 948
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20577,7 +19807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 949
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20590,7 +19820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 950
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20603,7 +19833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 951
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20616,7 +19846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 952
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20629,7 +19859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 953
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20642,7 +19872,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 954
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20655,7 +19885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 955
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20668,7 +19898,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 956
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20681,7 +19911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 957
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20694,7 +19924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 958
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20707,7 +19937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 959
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20720,7 +19950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 960
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20733,7 +19963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 961
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20746,7 +19976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 962
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20759,7 +19989,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 963
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20772,7 +20002,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 964
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20785,7 +20015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 965
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20798,13 +20028,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 966
+   i32.const 963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.21126281599887137
   f64.const -0.10962469130754471
   call $std/math/check<f64>
@@ -20821,13 +20051,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 977
+   i32.const 974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.35895602297578955
   f64.const -0.10759828239679337
   call $std/math/check<f64>
@@ -20844,13 +20074,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 978
+   i32.const 975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.503333091765516
   f64.const -0.021430473774671555
   call $std/math/check<f64>
@@ -20867,13 +20097,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 979
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9692853212503283
   f64.const -0.4787876307964325
   call $std/math/check<f64>
@@ -20890,13 +20120,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 980
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9875878064788627
   f64.const 0.4880668818950653
   call $std/math/check<f64>
@@ -20913,13 +20143,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 981
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7887730869248576
   f64.const 0.12708666920661926
   call $std/math/check<f64>
@@ -20936,13 +20166,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 982
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9184692397007294
   f64.const -0.26120713353157043
   call $std/math/check<f64>
@@ -20959,13 +20189,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 983
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8463190467415896
   f64.const -0.302586168050766
   call $std/math/check<f64>
@@ -20982,13 +20212,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 984
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7150139289952383
   f64.const -0.08537746220827103
   call $std/math/check<f64>
@@ -21005,13 +20235,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 985
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7783494994757447
   f64.const 0.30890750885009766
   call $std/math/check<f64>
@@ -21028,13 +20258,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 986
+   i32.const 983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21051,13 +20281,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 989
+   i32.const 986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21074,13 +20304,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 990
+   i32.const 987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -21097,13 +20327,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 991
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -21120,13 +20350,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 992
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -21143,13 +20373,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 993
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.5403023058681398
   f64.const 0.4288286566734314
   call $std/math/check<f64>
@@ -21166,13 +20396,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 994
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.4161468365471424
   f64.const -0.35859397053718567
   call $std/math/check<f64>
@@ -21189,13 +20419,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 995
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9899924966004454
   f64.const 0.3788451552391052
   call $std/math/check<f64>
@@ -21212,13 +20442,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 996
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.6536436208636119
   f64.const -0.23280560970306396
   call $std/math/check<f64>
@@ -21235,13 +20465,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 997
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.28366218546322625
   f64.const -0.3277357816696167
   call $std/math/check<f64>
@@ -21258,13 +20488,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 998
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.1
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9950041652780258
   f64.const 0.49558526277542114
   call $std/math/check<f64>
@@ -21281,13 +20511,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 999
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.2
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9800665778412416
   f64.const -0.02407640963792801
   call $std/math/check<f64>
@@ -21304,13 +20534,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1000
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.3
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.955336489125606
   f64.const -0.37772229313850403
   call $std/math/check<f64>
@@ -21327,13 +20557,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1001
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.4
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9210609940028851
   f64.const 0.25818485021591187
   call $std/math/check<f64>
@@ -21350,13 +20580,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1002
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8775825618903728
   f64.const 0.3839152157306671
   call $std/math/check<f64>
@@ -21373,13 +20603,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1003
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3641409746639015e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21396,13 +20626,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1004
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1820704873319507e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21419,13 +20649,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1005
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21442,13 +20672,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1006
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5e-324
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -21465,13 +20695,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1007
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -3.14
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9999987317275395
   f64.const 0.3855516016483307
   call $std/math/check<f64>
@@ -21488,13 +20718,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1008
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8988465674311579538646525e283
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.826369834614148
   f64.const -0.3695965111255646
   call $std/math/check<f64>
@@ -21511,13 +20741,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1009
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1797693134862315708145274e284
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9999876894265599
   f64.const 0.23448343575000763
   call $std/math/check<f64>
@@ -21534,13 +20764,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1010
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8988465674311579538646525e283
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.826369834614148
   f64.const -0.3695965111255646
   call $std/math/check<f64>
@@ -21557,13 +20787,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1011
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.14
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9999987317275395
   f64.const 0.3855516016483307
   call $std/math/check<f64>
@@ -21580,13 +20810,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1012
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.1415
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9999999957076562
   f64.const -0.30608975887298584
   call $std/math/check<f64>
@@ -21603,13 +20833,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1013
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9999999999997864
   f64.const 0.15403328835964203
   call $std/math/check<f64>
@@ -21626,13 +20856,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1014
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.14159265
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -1
   f64.const -0.02901807427406311
   call $std/math/check<f64>
@@ -21649,13 +20879,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1015
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.1415926535
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -1
   f64.const -1.8155848010792397e-05
   call $std/math/check<f64>
@@ -21672,13 +20902,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1016
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592653589
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -1
   f64.const -1.4169914130945926e-09
   call $std/math/check<f64>
@@ -21695,13 +20925,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1017
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.14159265358979
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -1
   f64.const -2.350864897985184e-14
   call $std/math/check<f64>
@@ -21718,13 +20948,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1018
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592653589793
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -1
   f64.const -3.377158741883318e-17
   call $std/math/check<f64>
@@ -21741,13 +20971,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1019
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.57
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 7.963267107332633e-04
   f64.const 0.2968159317970276
   call $std/math/check<f64>
@@ -21764,13 +20994,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1020
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.570796
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 3.2679489653813835e-07
   f64.const -0.32570895552635193
   call $std/math/check<f64>
@@ -21787,13 +21017,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1021
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 9.489659630678013e-11
   f64.const -0.27245646715164185
   call $std/math/check<f64>
@@ -21810,13 +21040,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1022
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.57079632679489
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 6.722570487708307e-15
   f64.const -0.10747683793306351
   call $std/math/check<f64>
@@ -21833,13 +21063,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1023
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 6.123233995736766e-17
   f64.const 0.12148229777812958
   call $std/math/check<f64>
@@ -21856,13 +21086,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1024
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6700635199486106
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7837822193016158
   f64.const -0.07278502732515335
   call $std/math/check<f64>
@@ -21879,13 +21109,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1025
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5343890189437553
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8605799719039517
   f64.const -0.48434028029441833
   call $std/math/check<f64>
@@ -21902,13 +21132,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1026
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.43999702754890085
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9047529293001976
   f64.const 0.029777472838759422
   call $std/math/check<f64>
@@ -21925,13 +21155,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1027
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.9902840844687313
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.5484523364480768
   f64.const 0.19765280187129974
   call $std/math/check<f64>
@@ -21948,13 +21178,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1028
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.45381447534338915
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8987813902263783
   f64.const -0.017724866047501564
   call $std/math/check<f64>
@@ -21971,13 +21201,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1029
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.4609888813583589
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8956130474713057
   f64.const 0.36449819803237915
   call $std/math/check<f64>
@@ -21994,13 +21224,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1030
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.9285434097956422
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.5990009794292984
   f64.const -0.2899416387081146
   call $std/math/check<f64>
@@ -22017,13 +21247,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1031
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.9109092124488352
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.6130276692774378
   f64.const -0.49353134632110596
   call $std/math/check<f64>
@@ -22040,13 +21270,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1032
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.8328600650359556
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.6727624710046357
   f64.const -0.36606088280677795
   call $std/math/check<f64>
@@ -22063,13 +21293,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1033
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.9536201252203433
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.5787346183487084
   f64.const -0.17089833319187164
   call $std/math/check<f64>
@@ -22086,13 +21316,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1034
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.8726590065457699
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.6427919144259047
   f64.const -0.2744986116886139
   call $std/math/check<f64>
@@ -22109,13 +21339,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1035
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.18100447535968447
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9836633656884893
   f64.const 3.0195272993296385e-03
   call $std/math/check<f64>
@@ -22132,13 +21362,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1036
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.356194490349839
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067812979126
   f64.const -0.48278746008872986
   call $std/math/check<f64>
@@ -22155,13 +21385,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1037
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.356194490372272
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067813137752
   f64.const -0.4866050183773041
   call $std/math/check<f64>
@@ -22178,13 +21408,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1038
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3561944902251115
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.707106781209717
   f64.const -0.3533952236175537
   call $std/math/check<f64>
@@ -22201,13 +21431,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1039
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3561944903149996
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067812732775
   f64.const -0.41911986470222473
   call $std/math/check<f64>
@@ -22224,13 +21454,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1040
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3561944903603527
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.707106781305347
   f64.const -0.4706200063228607
   call $std/math/check<f64>
@@ -22247,13 +21477,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1041
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3561944903826197
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067813210922
   f64.const -0.30618351697921753
   call $std/math/check<f64>
@@ -22270,13 +21500,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1042
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.356194490371803
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067813134436
   f64.const -0.30564820766448975
   call $std/math/check<f64>
@@ -22293,13 +21523,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1043
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.356194490399931
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067813333329
   f64.const -0.38845571875572205
   call $std/math/check<f64>
@@ -22316,13 +21546,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1044
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.356194490260191
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.707106781234522
   f64.const -0.23796851933002472
   call $std/math/check<f64>
@@ -22339,13 +21569,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1045
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3561944904043153
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067813364332
   f64.const -0.3274589478969574
   call $std/math/check<f64>
@@ -22362,13 +21592,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1046
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951024759446
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000716629
   f64.const -0.41711342334747314
   call $std/math/check<f64>
@@ -22385,13 +21615,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1047
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.09439510243324
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000346797
   f64.const -0.3566164970397949
   call $std/math/check<f64>
@@ -22408,13 +21638,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1048
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951025133885
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000001040902
   f64.const -0.2253485918045044
   call $std/math/check<f64>
@@ -22431,13 +21661,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1049
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951025466707
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000001329135
   f64.const -0.12982259690761566
   call $std/math/check<f64>
@@ -22454,13 +21684,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1050
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.094395102413896
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000179272
   f64.const -0.15886764228343964
   call $std/math/check<f64>
@@ -22477,13 +21707,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1051
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951024223404
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000252403
   f64.const -0.266656756401062
   call $std/math/check<f64>
@@ -22500,13 +21730,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1052
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951024960477
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000890726
   f64.const -0.4652077853679657
   call $std/math/check<f64>
@@ -22523,13 +21753,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1053
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.0943951025173315
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.500000000107505
   f64.const -0.46710994839668274
   call $std/math/check<f64>
@@ -22546,13 +21776,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1054
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.094395102405924
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.5000000000110234
   f64.const -0.2469603717327118
   call $std/math/check<f64>
@@ -22569,13 +21799,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1055
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.094395102428558
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.500000000030625
   f64.const -0.3799441158771515
   call $std/math/check<f64>
@@ -22592,13 +21822,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1056
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.513210770864056
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.6125076939987759
   f64.const 0.4989966154098511
   call $std/math/check<f64>
@@ -22615,13 +21845,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1057
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 6.802886129801017
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8679677961345452
   f64.const 0.4972165524959564
   call $std/math/check<f64>
@@ -22638,13 +21868,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1058
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.171925393086408
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9682027440424544
   f64.const -0.49827584624290466
   call $std/math/check<f64>
@@ -22661,13 +21891,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1059
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.854690112888573
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.8418535663818527
   f64.const 0.4974979758262634
   call $std/math/check<f64>
@@ -22684,13 +21914,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1060
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.213510813859608
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9777659802838506
   f64.const -0.4995604455471039
   call $std/math/check<f64>
@@ -22707,13 +21937,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1061
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.782449081542151
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.07147156381293339
   f64.const 0.49858126044273376
   call $std/math/check<f64>
@@ -22730,13 +21960,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1062
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.500261332273616
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.34639017633458113
   f64.const -0.4996210038661957
   call $std/math/check<f64>
@@ -22753,13 +21983,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1063
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.121739418731588
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.9544341297541811
   f64.const 0.4982815086841583
   call $std/math/check<f64>
@@ -22776,13 +22006,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1064
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 6.784954020476316
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8767332233166646
   f64.const -0.4988083839416504
   call $std/math/check<f64>
@@ -22799,13 +22029,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1065
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.770846542666664
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7936984117400705
   f64.const 0.4999682903289795
   call $std/math/check<f64>
@@ -22822,13 +22052,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1066
+   i32.const 1063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.313225746154785e-10
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0.001953125
   call $std/math/check<f64>
@@ -22845,13 +22075,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1069
+   i32.const 1066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -9.313225746154785e-10
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0.001953125
   call $std/math/check<f64>
@@ -22868,13 +22098,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1070
+   i32.const 1067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072014e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -22891,13 +22121,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1071
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072014e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -22914,13 +22144,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1072
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -22937,13 +22167,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1073
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5e-324
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -22960,13 +22190,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1074
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -22983,13 +22213,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1075
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23006,13 +22236,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1076
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1e-323
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23029,13 +22259,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1077
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4e-323
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23052,13 +22282,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1078
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.562684646268003e-309
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23075,13 +22305,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1079
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1125369292536007e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23098,13 +22328,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1080
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072004e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23121,13 +22351,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1081
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507201e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23144,13 +22374,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1082
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507202e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23167,13 +22397,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1083
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072024e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23190,13 +22420,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1084
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4501477170144003e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23213,13 +22443,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1085
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014403e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23236,13 +22466,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1086
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014406e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23259,13 +22489,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1087
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.900295434028806e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23282,13 +22512,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1088
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.450580596923828e-09
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0.125
   call $std/math/check<f64>
@@ -23305,13 +22535,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1089
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.4901161193847656e-08
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9999999999999999
   f64.const -1.850372590034581e-17
   call $std/math/check<f64>
@@ -23328,13 +22558,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1090
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.470348358154297e-08
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.999999999999999
   f64.const -1.4988010832439613e-15
   call $std/math/check<f64>
@@ -23351,13 +22581,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1091
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1e-323
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23374,13 +22604,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1092
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4e-323
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23397,13 +22627,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1093
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5.562684646268003e-309
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23420,13 +22650,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1094
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.1125369292536007e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23443,13 +22673,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1095
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072004e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23466,13 +22696,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1096
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507201e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23489,13 +22719,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1097
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507202e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23512,13 +22742,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1098
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072024e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23535,13 +22765,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1099
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4501477170144003e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23558,13 +22788,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1100
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014403e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23581,13 +22811,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1101
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014406e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23604,13 +22834,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1102
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.900295434028806e-308
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -23627,13 +22857,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1103
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -7.450580596923828e-09
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.const 0.125
   call $std/math/check<f64>
@@ -23650,13 +22880,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1104
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.4901161193847656e-08
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9999999999999999
   f64.const -1.850372590034581e-17
   call $std/math/check<f64>
@@ -23673,13 +22903,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1105
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.470348358154297e-08
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.999999999999999
   f64.const -1.4988010832439613e-15
   call $std/math/check<f64>
@@ -23696,268 +22926,268 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1106
+   i32.const 1103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1.5707963267948966
   call $~lib/bindings/dom/Math.cos
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1108
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592653589793
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 3.141592653589793
   call $~lib/bindings/dom/Math.cos
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1109
+   i32.const 1106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3141592653589793231804887e66
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 3141592653589793231804887e66
   call $~lib/bindings/dom/Math.cos
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1110
+   i32.const 1107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1114
+   i32.const 1111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1115
+   i32.const 1112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.15707963267948966
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9876883405951378
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1118
+   i32.const 1115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7812504768371582
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7100335477927638
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1120
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.78125
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7100338835660797
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1121
+   i32.const 1118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9238795325112867
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1124
+   i32.const 1121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.39269908169872414
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9238795325112867
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1126
+   i32.const 1123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.725290298461914e-09
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1129
+   i32.const 1126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.25
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9689124217106447
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1131
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.8775825618903728
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1132
+   i32.const 1129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.785
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7073882691671998
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1133
+   i32.const 1130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 6.123233995736766e-17
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1135
+   i32.const 1132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.497787143782138
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7071067811865474
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1137
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.0685834705770345
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.7071067811865477
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1138
+   i32.const 1135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.63937979737193
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067811865467
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1139
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 10.210176124166829
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -0.7071067811865471
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1140
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1e6
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const 0.9367521275331447
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1141
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1647097.7583689587
-  call $~lib/math/NativeMath.cos
+  call $~lib/util/math/cos64
   f64.const -3.435757038074824e-12
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 1142
+   i32.const 1139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.21126316487789154
   f32.const 0.48328569531440735
   call $std/math/check<f32>
@@ -23965,13 +23195,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1151
+   i32.const 1148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.3589562177658081
   f32.const 0.042505208402872086
   call $std/math/check<f32>
@@ -23979,13 +23209,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1152
+   i32.const 1149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.5033331513404846
   f32.const -0.1386195719242096
   call $std/math/check<f32>
@@ -23993,13 +23223,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1153
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9692853689193726
   f32.const 0.1786951720714569
   call $std/math/check<f32>
@@ -24007,13 +23237,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1154
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.9875878691673279
   f32.const 0.1389600932598114
   call $std/math/check<f32>
@@ -24021,13 +23251,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1155
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.7887731194496155
   f32.const 0.2989593744277954
   call $std/math/check<f32>
@@ -24035,13 +23265,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1156
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.918469250202179
   f32.const 0.24250665307044983
   call $std/math/check<f32>
@@ -24049,13 +23279,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1157
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.8463190197944641
   f32.const -0.24033240973949432
   call $std/math/check<f32>
@@ -24063,13 +23293,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1158
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.7150139212608337
   f32.const -0.3372635245323181
   call $std/math/check<f32>
@@ -24077,13 +23307,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1159
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.7783495187759399
   f32.const 0.16550153493881226
   call $std/math/check<f32>
@@ -24091,13 +23321,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1160
+   i32.const 1157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24105,13 +23335,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1163
+   i32.const 1160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24119,13 +23349,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1164
+   i32.const 1161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -24133,13 +23363,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1165
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -24147,13 +23377,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1166
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -24161,13 +23391,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1167
+   i32.const 1164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.862645149230957e-09
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 1.4551915228366852e-11
   call $std/math/check<f32>
@@ -24175,13 +23405,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1170
+   i32.const 1167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.862645149230957e-09
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 1.4551915228366852e-11
   call $std/math/check<f32>
@@ -24189,13 +23419,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1171
+   i32.const 1168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24203,13 +23433,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1172
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754943508222875e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24217,13 +23447,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1173
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24231,13 +23461,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1174
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24245,13 +23475,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1175
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.802596928649634e-45
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24259,13 +23489,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1176
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.2611686178923354e-44
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24273,13 +23503,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1177
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.938735877055719e-39
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24287,13 +23517,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1178
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.877471754111438e-39
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24301,13 +23531,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1179
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754940705625946e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24315,13 +23545,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1180
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754942106924411e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24329,13 +23559,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1181
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.175494490952134e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24343,13 +23573,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1182
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754946310819804e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24357,13 +23587,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1183
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509880009953429e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24371,13 +23601,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1184
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.350988701644575e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24385,13 +23615,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1185
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509895424236536e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24399,13 +23629,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1186
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.70197740328915e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24413,13 +23643,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1187
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.450580596923828e-09
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 2.3283064365386963e-10
   call $std/math/check<f32>
@@ -24427,13 +23657,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1188
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.000244140625
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0.25
   call $std/math/check<f32>
@@ -24441,13 +23671,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1189
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.00048828125
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9999998807907104
   f32.const -3.973643103449831e-08
   call $std/math/check<f32>
@@ -24455,13 +23685,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1190
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.0009765625
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9999995231628418
   f32.const -6.357828397085541e-07
   call $std/math/check<f32>
@@ -24469,13 +23699,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1191
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.802596928649634e-45
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24483,13 +23713,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1192
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.2611686178923354e-44
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24497,13 +23727,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1193
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.938735877055719e-39
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24511,13 +23741,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1194
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -5.877471754111438e-39
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24525,13 +23755,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1195
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754940705625946e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24539,13 +23769,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1196
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754942106924411e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24553,13 +23783,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1197
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.175494490952134e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24567,13 +23797,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1198
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754946310819804e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24581,13 +23811,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1199
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509880009953429e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24595,13 +23825,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1200
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.350988701644575e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24609,13 +23839,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1201
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509895424236536e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24623,13 +23853,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1202
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -4.70197740328915e-38
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -24637,13 +23867,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1203
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -7.450580596923828e-09
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 2.3283064365386963e-10
   call $std/math/check<f32>
@@ -24651,13 +23881,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1204
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.000244140625
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 1
   f32.const 0.25
   call $std/math/check<f32>
@@ -24665,13 +23895,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1205
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.00048828125
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9999998807907104
   f32.const -3.973643103449831e-08
   call $std/math/check<f32>
@@ -24679,13 +23909,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1206
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.0009765625
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9999995231628418
   f32.const -6.357828397085541e-07
   call $std/math/check<f32>
@@ -24693,13 +23923,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1207
+   i32.const 1204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 255.99993896484375
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.03985174745321274
   f32.const 0
   call $std/math/check<f32>
@@ -24707,13 +23937,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1210
+   i32.const 1207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5033165
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.8471871614456177
   f32.const 0
   call $std/math/check<f32>
@@ -24721,13 +23951,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1211
+   i32.const 1208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 421657440
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.6728929281234741
   f32.const 0
   call $std/math/check<f32>
@@ -24735,13 +23965,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1212
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2147483392
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9610780477523804
   f32.const 0
   call $std/math/check<f32>
@@ -24749,13 +23979,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1213
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 68719476736
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.1694190502166748
   f32.const 0
   call $std/math/check<f32>
@@ -24763,13 +23993,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1214
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 549755813888
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.20735950767993927
   f32.const 0
   call $std/math/check<f32>
@@ -24777,13 +24007,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1215
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402823466385288598117041e14
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.8530210256576538
   f32.const 0
   call $std/math/check<f32>
@@ -24791,13 +24021,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1216
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -255.99993896484375
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const -0.03985174745321274
   f32.const 0
   call $std/math/check<f32>
@@ -24805,13 +24035,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1217
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -5033165
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.8471871614456177
   f32.const 0
   call $std/math/check<f32>
@@ -24819,13 +24049,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1218
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -421657440
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.6728929281234741
   f32.const 0
   call $std/math/check<f32>
@@ -24833,13 +24063,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1219
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2147483392
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.9610780477523804
   f32.const 0
   call $std/math/check<f32>
@@ -24847,13 +24077,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1220
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -68719476736
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.1694190502166748
   f32.const 0
   call $std/math/check<f32>
@@ -24861,13 +24091,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1221
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -549755813888
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.20735950767993927
   f32.const 0
   call $std/math/check<f32>
@@ -24875,13 +24105,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1222
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -3402823466385288598117041e14
-  call $~lib/math/NativeMathf.cos
+  call $~lib/util/math/cos32
   f32.const 0.8530210256576538
   f32.const 0
   call $std/math/check<f32>
@@ -24889,7 +24119,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1223
+   i32.const 1220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24902,7 +24132,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1234
+   i32.const 1231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24915,7 +24145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1235
+   i32.const 1232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24928,7 +24158,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1236
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24941,7 +24171,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1237
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24954,7 +24184,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1238
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24967,7 +24197,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1239
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24980,7 +24210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1240
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24993,7 +24223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1241
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25006,7 +24236,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1242
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25019,7 +24249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1243
+   i32.const 1240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25032,7 +24262,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1246
+   i32.const 1243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25045,7 +24275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1247
+   i32.const 1244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25058,7 +24288,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1248
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25071,7 +24301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1249
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25084,7 +24314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1250
+   i32.const 1247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25097,7 +24327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1259
+   i32.const 1256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25110,7 +24340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1260
+   i32.const 1257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25123,7 +24353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1261
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25136,7 +24366,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1262
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25149,7 +24379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1263
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25162,7 +24392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1264
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25175,7 +24405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1265
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25188,7 +24418,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1266
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25201,7 +24431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1267
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25214,7 +24444,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1268
+   i32.const 1265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25227,7 +24457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1271
+   i32.const 1268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25240,7 +24470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1272
+   i32.const 1269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25253,7 +24483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1273
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25266,7 +24496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1274
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25279,13 +24509,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1275
+   i32.const 1272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 3.137706068161745e-04
   f64.const -0.2599197328090668
   call $std/math/check<f64>
@@ -25302,13 +24532,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1287
+   i32.const 1284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 77.11053017112141
   f64.const -0.02792675793170929
   call $std/math/check<f64>
@@ -25325,13 +24555,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1288
+   i32.const 1285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.290813384916323e-04
   f64.const -0.24974334239959717
   call $std/math/check<f64>
@@ -25348,13 +24578,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1289
+   i32.const 1286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1.4565661260931588e-03
   f64.const -0.4816822409629822
   call $std/math/check<f64>
@@ -25371,13 +24601,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1290
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 10583.558245524993
   f64.const 0.17696762084960938
   call $std/math/check<f64>
@@ -25394,13 +24624,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1291
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1.9386384525571998
   f64.const -0.4964246451854706
   call $std/math/check<f64>
@@ -25417,13 +24647,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1292
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.6659078892838025
   f64.const -0.10608318448066711
   call $std/math/check<f64>
@@ -25440,13 +24670,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1293
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1.7537559518626311
   f64.const -0.39162111282348633
   call $std/math/check<f64>
@@ -25463,13 +24693,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1294
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.1687528885129246
   f64.const -0.2996125817298889
   call $std/math/check<f64>
@@ -25486,13 +24716,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1295
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.5072437089402843
   f64.const 0.47261738777160645
   call $std/math/check<f64>
@@ -25509,13 +24739,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1296
+   i32.const 1293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -25532,13 +24762,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1299
+   i32.const 1296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -25555,13 +24785,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1300
+   i32.const 1297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.718281828459045
   f64.const -0.3255307376384735
   call $std/math/check<f64>
@@ -25578,13 +24808,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1301
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.36787944117144233
   f64.const 0.22389651834964752
   call $std/math/check<f64>
@@ -25601,13 +24831,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1302
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -25624,13 +24854,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1303
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -25647,13 +24877,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1304
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -25670,13 +24900,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1305
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.0397214889526365
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.828429155876411
   f64.const 0.18803080916404724
   call $std/math/check<f64>
@@ -25693,13 +24923,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1306
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.0397214889526365
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.35355313670217847
   f64.const 0.2527272403240204
   call $std/math/check<f64>
@@ -25716,13 +24946,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1307
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.0397210121154785
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.8284278071766122
   f64.const -0.4184139370918274
   call $std/math/check<f64>
@@ -25739,13 +24969,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1308
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.0397214889526367
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.8284291558764116
   f64.const -0.22618377208709717
   call $std/math/check<f64>
@@ -25762,13 +24992,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1309
+   i32.const 1306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -25785,13 +25015,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1312
+   i32.const 1309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5e-324
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1
   f64.const 0
   call $std/math/check<f64>
@@ -25808,13 +25038,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1313
+   i32.const 1310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 709.782712893384
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1797693134862273196746681e284
   f64.const -0.10568465292453766
   call $std/math/check<f64>
@@ -25831,13 +25061,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1315
+   i32.const 1312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 709.7827128933841
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -25854,13 +25084,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1322
+   i32.const 1319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -745.1332191019411
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 5e-324
   f64.const 0.5
   call $std/math/check<f64>
@@ -25877,13 +25107,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1323
+   i32.const 1320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -745.1332191019412
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0
   f64.const -0.5
   call $std/math/check<f64>
@@ -25900,13 +25130,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1330
+   i32.const 1327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -708.3964185322641
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.2250738585072626e-308
   f64.const 0.26172348856925964
   call $std/math/check<f64>
@@ -25923,13 +25153,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1337
+   i32.const 1334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -708.3964185322642
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.2250738585070097e-308
   f64.const 2.2250738585070097e-308
   call $std/math/check<f64>
@@ -25946,13 +25176,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1344
+   i32.const 1341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5006933289508785
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1.6498647732549399
   f64.const 0.5
   call $std/math/check<f64>
@@ -25969,13 +25199,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1351
+   i32.const 1348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.628493326460252
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1.8747837631658781
   f64.const 0.5
   call $std/math/check<f64>
@@ -25992,13 +25222,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1358
+   i32.const 1355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.837522455340574
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.3106351774748006
   f64.const -0.5
   call $std/math/check<f64>
@@ -26015,13 +25245,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1365
+   i32.const 1362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.8504909932810999
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 2.3407958848710777
   f64.const 0.5
   call $std/math/check<f64>
@@ -26038,13 +25268,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1371
+   i32.const 1368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.6270060846924657
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 5.088617001442459
   f64.const 0.5
   call $std/math/check<f64>
@@ -26061,13 +25291,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1377
+   i32.const 1374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.6744336219614115
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 5.335772228886831
   f64.const 0.5
   call $std/math/check<f64>
@@ -26084,13 +25314,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1383
+   i32.const 1380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 6.657914718791208
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 778.924964819056
   f64.const 0.5
   call $std/math/check<f64>
@@ -26107,13 +25337,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1390
+   i32.const 1387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 11.022872793631722
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 61259.41271820104
   f64.const 0.5
   call $std/math/check<f64>
@@ -26130,13 +25360,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1397
+   i32.const 1394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 11.411195701885317
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 90327.36165653409
   f64.const 0.5
   call $std/math/check<f64>
@@ -26153,13 +25383,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1404
+   i32.const 1401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 11.794490387560606
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 132520.20290772576
   f64.const 0.5
   call $std/math/check<f64>
@@ -26176,13 +25406,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1411
+   i32.const 1408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 412.83872756953286
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 1965989977109266413433084e155
   f64.const 0.5
   call $std/math/check<f64>
@@ -26199,13 +25429,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1418
+   i32.const 1415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 510.87569028483415
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 7421526272656495968225491e197
   f64.const -0.5
   call $std/math/check<f64>
@@ -26222,13 +25452,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1425
+   i32.const 1422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.6589841439772853e-14
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.9999999999999735
   f64.const 0.5
   call $std/math/check<f64>
@@ -26245,13 +25475,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1432
+   i32.const 1429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.7144952952085447e-14
-  call $~lib/math/NativeMath.exp
+  call $~lib/util/math/exp64
   f64.const 0.9999999999999728
   f64.const -0.5
   call $std/math/check<f64>
@@ -26268,13 +25498,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1439
+   i32.const 1436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 3.1377049162983894e-04
   f32.const -0.030193336308002472
   call $std/math/check<f32>
@@ -26282,13 +25512,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1453
+   i32.const 1450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 77.11051177978516
   f32.const -0.2875460684299469
   call $std/math/check<f32>
@@ -26296,13 +25526,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1454
+   i32.const 1451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 2.2908132814336568e-04
   f32.const 0.2237040400505066
   call $std/math/check<f32>
@@ -26310,13 +25540,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1455
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.4565663877874613e-03
   f32.const 0.36469703912734985
   call $std/math/check<f32>
@@ -26324,13 +25554,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1456
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 10583.5634765625
   f32.const 0.45962104201316833
   call $std/math/check<f32>
@@ -26338,13 +25568,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1457
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.93863844871521
   f32.const 0.3568260967731476
   call $std/math/check<f32>
@@ -26352,13 +25582,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1458
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 0.6659078598022461
   f32.const -0.38294991850852966
   call $std/math/check<f32>
@@ -26366,13 +25596,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1459
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.753756046295166
   f32.const 0.44355490803718567
   call $std/math/check<f32>
@@ -26380,13 +25610,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1460
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 2.168752908706665
   f32.const 0.24562469124794006
   call $std/math/check<f32>
@@ -26394,13 +25624,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1461
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 0.5072436928749084
   f32.const -0.3974292278289795
   call $std/math/check<f32>
@@ -26408,13 +25638,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1462
+   i32.const 1459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -26422,13 +25652,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1465
+   i32.const 1462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -26436,13 +25666,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1466
+   i32.const 1463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 2.7182817459106445
   f32.const -0.3462330996990204
   call $std/math/check<f32>
@@ -26450,13 +25680,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1467
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 0.3678794503211975
   f32.const 0.3070148527622223
   call $std/math/check<f32>
@@ -26464,13 +25694,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1468
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -26478,13 +25708,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1469
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -26492,13 +25722,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1470
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -26506,13 +25736,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1471
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 88.72283172607422
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 340279851902147610656242e15
   f32.const -0.09067153930664062
   call $std/math/check<f32>
@@ -26520,13 +25750,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1472
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 88.72283935546875
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -26534,13 +25764,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1473
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -103.97207641601562
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.401298464324817e-45
   f32.const 0.49999967217445374
   call $std/math/check<f32>
@@ -26548,13 +25778,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1474
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -103.97208404541016
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 0
   f32.const -0.49999651312828064
   call $std/math/check<f32>
@@ -26562,13 +25792,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1475
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.3465735614299774
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.4142135381698608
   f32.const 0.13922421634197235
   call $std/math/check<f32>
@@ -26576,13 +25806,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1476
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.3465735912322998
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.4142135381698608
   f32.const -0.21432916820049286
   call $std/math/check<f32>
@@ -26590,13 +25820,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1477
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.3465736210346222
-  call $~lib/math/NativeMathf.exp
+  call $~lib/util/math/exp32
   f32.const 1.4142136573791504
   f32.const 0.43211743235588074
   call $std/math/check<f32>
@@ -26604,13 +25834,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1478
+   i32.const 1475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.9996862293931839
   f64.const -0.2760058343410492
   call $std/math/check<f64>
@@ -26627,13 +25857,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1490
+   i32.const 1487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 76.11053017112141
   f64.const -0.02792675793170929
   call $std/math/check<f64>
@@ -26650,13 +25880,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1491
+   i32.const 1488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.9997709186615084
   f64.const 0.10052496194839478
   call $std/math/check<f64>
@@ -26673,13 +25903,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1492
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.9985434338739069
   f64.const -0.27437829971313477
   call $std/math/check<f64>
@@ -26696,13 +25926,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1493
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 10582.558245524993
   f64.const 0.17696762084960938
   call $std/math/check<f64>
@@ -26719,13 +25949,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1494
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 0.9386384525571999
   f64.const 0.007150684483349323
   call $std/math/check<f64>
@@ -26742,13 +25972,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1495
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.3340921107161975
   f64.const -0.21216636896133423
   call $std/math/check<f64>
@@ -26765,13 +25995,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1496
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 0.7537559518626312
   f64.const 0.21675777435302734
   call $std/math/check<f64>
@@ -26788,13 +26018,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1497
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 1.1687528885129248
   f64.const 0.4007748067378998
   call $std/math/check<f64>
@@ -26811,13 +26041,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1498
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.4927562910597158
   f64.const -0.05476519837975502
   call $std/math/check<f64>
@@ -26834,13 +26064,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1499
+   i32.const 1496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -26857,13 +26087,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1502
+   i32.const 1499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -26880,13 +26110,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1503
+   i32.const 1500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 1.7182818284590453
   f64.const 0.348938524723053
   call $std/math/check<f64>
@@ -26903,13 +26133,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1504
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -0.6321205588285577
   f64.const 0.11194825917482376
   call $std/math/check<f64>
@@ -26926,13 +26156,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1505
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -26949,13 +26179,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1506
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -1
   f64.const 0
   call $std/math/check<f64>
@@ -26972,13 +26202,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1507
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -26995,13 +26225,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1508
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507201e-308
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const 2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -27018,13 +26248,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1509
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507201e-308
-  call $~lib/math/NativeMath.expm1
+  call $~lib/util/math/expm1_64
   f64.const -2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -27041,13 +26271,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1510
+   i32.const 1507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.9996862411499023
   f32.const -0.19532723724842072
   call $std/math/check<f32>
@@ -27055,13 +26285,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1519
+   i32.const 1516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 76.11051177978516
   f32.const -0.2875460684299469
   call $std/math/check<f32>
@@ -27069,13 +26299,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1520
+   i32.const 1517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.9997709393501282
   f32.const -0.34686920046806335
   call $std/math/check<f32>
@@ -27083,13 +26313,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1521
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.9985434412956238
   f32.const -0.1281939446926117
   call $std/math/check<f32>
@@ -27097,13 +26327,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1522
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 10582.5634765625
   f32.const 0.45962104201316833
   call $std/math/check<f32>
@@ -27111,13 +26341,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1523
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 0.9386383891105652
   f32.const -0.28634780645370483
   call $std/math/check<f32>
@@ -27125,13 +26355,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1524
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.3340921103954315
   f32.const 0.23410017788410187
   call $std/math/check<f32>
@@ -27139,13 +26369,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1525
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 0.7537559866905212
   f32.const -0.11289017647504807
   call $std/math/check<f32>
@@ -27153,13 +26383,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1526
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 1.168752908706665
   f32.const 0.4912493824958801
   call $std/math/check<f32>
@@ -27167,13 +26397,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1527
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.49275627732276917
   f32.const 0.20514154434204102
   call $std/math/check<f32>
@@ -27181,13 +26411,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1528
+   i32.const 1525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -27195,13 +26425,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1531
+   i32.const 1528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -27209,13 +26439,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1532
+   i32.const 1529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const 1.718281865119934
   f32.const 0.3075338304042816
   call $std/math/check<f32>
@@ -27223,13 +26453,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1533
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -0.6321205496788025
   f32.const 0.15350742638111115
   call $std/math/check<f32>
@@ -27237,13 +26467,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1534
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -27251,13 +26481,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1535
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const -1
   f32.const 0
   call $std/math/check<f32>
@@ -27265,13 +26495,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1536
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.expm1
+  call $~lib/util/math/expm1_32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -27279,7 +26509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1537
+   i32.const 1534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27292,7 +26522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1549
+   i32.const 1546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27305,7 +26535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1550
+   i32.const 1547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27318,7 +26548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1551
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27331,7 +26561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1552
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27344,7 +26574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1553
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27357,7 +26587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1554
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27370,7 +26600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1555
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27383,7 +26613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1556
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27396,7 +26626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1557
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27409,7 +26639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1558
+   i32.const 1555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27422,7 +26652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1561
+   i32.const 1558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27435,7 +26665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1562
+   i32.const 1559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27448,7 +26678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1563
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27461,7 +26691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1564
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27474,7 +26704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1565
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27487,7 +26717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1566
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27500,7 +26730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1567
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27513,7 +26743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1568
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27526,7 +26756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1569
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27539,7 +26769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1570
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27552,7 +26782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1571
+   i32.const 1568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27565,7 +26795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1572
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27578,7 +26808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1573
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27591,7 +26821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1574
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27604,7 +26834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1575
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27617,7 +26847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1576
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27630,7 +26860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1577
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27643,7 +26873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1578
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27656,7 +26886,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1579
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27669,7 +26899,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1580
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27682,7 +26912,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1581
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27695,7 +26925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1582
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27708,7 +26938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1583
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27721,7 +26951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1584
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27734,7 +26964,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1585
+   i32.const 1582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27747,7 +26977,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1596
+   i32.const 1593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27760,7 +26990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1597
+   i32.const 1594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27773,7 +27003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1598
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27786,7 +27016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1599
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27799,7 +27029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1600
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27812,7 +27042,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1601
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27825,7 +27055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1602
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27838,7 +27068,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1603
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27851,7 +27081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1604
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27864,7 +27094,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1605
+   i32.const 1602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27886,7 +27116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1617
+   i32.const 1614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27908,7 +27138,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1618
+   i32.const 1615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27930,7 +27160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1619
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27952,7 +27182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1620
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27974,7 +27204,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1621
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27996,7 +27226,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1622
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28018,7 +27248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1623
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28040,7 +27270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1624
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28062,7 +27292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1625
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28084,7 +27314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1626
+   i32.const 1623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28106,7 +27336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1629
+   i32.const 1626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28128,7 +27358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1630
+   i32.const 1627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28150,7 +27380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1631
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28172,7 +27402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1632
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28194,7 +27424,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1633
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28216,7 +27446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1634
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28238,7 +27468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1635
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28260,7 +27490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1636
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28282,7 +27512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1637
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28304,7 +27534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1638
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28326,7 +27556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1639
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28348,7 +27578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1640
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28370,7 +27600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1641
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28392,7 +27622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1642
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28414,7 +27644,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1643
+   i32.const 1640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28427,7 +27657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1652
+   i32.const 1649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28440,7 +27670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1653
+   i32.const 1650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28453,7 +27683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1654
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28466,7 +27696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1655
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28479,7 +27709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1656
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28492,7 +27722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1657
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28505,7 +27735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1658
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28518,7 +27748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1659
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28531,7 +27761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1660
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28544,7 +27774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1661
+   i32.const 1658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28557,7 +27787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1664
+   i32.const 1661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28570,7 +27800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1665
+   i32.const 1662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28583,7 +27813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1666
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28596,7 +27826,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1667
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28609,7 +27839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1668
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28622,7 +27852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1669
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28635,7 +27865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1670
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28648,7 +27878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1671
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28661,7 +27891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1672
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28674,7 +27904,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1673
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28687,7 +27917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1674
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28700,7 +27930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1675
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28713,7 +27943,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1676
+   i32.const 1673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28726,7 +27956,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1677
+   i32.const 1674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28739,7 +27969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1678
+   i32.const 1675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28753,7 +27983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1692
+   i32.const 1689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28767,7 +27997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1693
+   i32.const 1690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28781,7 +28011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1694
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28795,7 +28025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1695
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28809,7 +28039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1696
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28823,7 +28053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1697
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28837,7 +28067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1698
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28851,7 +28081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1699
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28865,7 +28095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1700
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28879,7 +28109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1701
+   i32.const 1698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28893,7 +28123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1704
+   i32.const 1701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28907,7 +28137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1705
+   i32.const 1702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28921,7 +28151,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1706
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28935,7 +28165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1707
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28949,7 +28179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1708
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28963,7 +28193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1709
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28977,7 +28207,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1710
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28991,7 +28221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1711
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29005,7 +28235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1712
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29019,7 +28249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1713
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29033,7 +28263,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1714
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29047,7 +28277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1715
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29061,7 +28291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1716
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29075,7 +28305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1717
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29089,7 +28319,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1718
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29103,7 +28333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1719
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29117,7 +28347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1720
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29131,7 +28361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1721
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29145,7 +28375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1722
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29159,7 +28389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1723
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29173,7 +28403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1724
+   i32.const 1721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29187,7 +28417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1733
+   i32.const 1730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29201,7 +28431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1734
+   i32.const 1731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29215,7 +28445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1735
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29229,7 +28459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1736
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29243,7 +28473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1737
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29257,7 +28487,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1738
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29271,7 +28501,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1739
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29285,7 +28515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1740
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29299,7 +28529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1741
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29313,7 +28543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1742
+   i32.const 1739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29327,7 +28557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1745
+   i32.const 1742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29341,7 +28571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1746
+   i32.const 1743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29355,7 +28585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1747
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29369,7 +28599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1748
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29383,7 +28613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1749
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29397,7 +28627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1750
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29411,7 +28641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1751
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29425,7 +28655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1752
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29439,7 +28669,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1753
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29453,7 +28683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1754
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29467,7 +28697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1755
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29481,7 +28711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1756
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29495,7 +28725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1757
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29509,7 +28739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1758
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29523,7 +28753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1759
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29537,7 +28767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1760
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29551,7 +28781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1761
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29565,7 +28795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1762
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29579,13 +28809,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1763
+   i32.const 1760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29602,13 +28832,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1775
+   i32.const 1772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const 1.4690809584224322
   f64.const -0.3412533402442932
   call $std/math/check<f64>
@@ -29625,13 +28855,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1776
+   i32.const 1773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29648,13 +28878,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1777
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29671,13 +28901,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1778
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const 2.2264658498795615
   f64.const 0.3638114035129547
   call $std/math/check<f64>
@@ -29694,13 +28924,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1779
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const -0.4125110252365137
   f64.const -0.29108747839927673
   call $std/math/check<f64>
@@ -29717,13 +28947,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1780
+   i32.const 1777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29740,13 +28970,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1781
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const -0.5766810183195862
   f64.const -0.10983199626207352
   call $std/math/check<f64>
@@ -29763,13 +28993,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1782
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const -0.2559866591263865
   f64.const -0.057990044355392456
   call $std/math/check<f64>
@@ -29786,13 +29016,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1783
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29809,13 +29039,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1784
+   i32.const 1781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -29832,13 +29062,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1787
+   i32.const 1784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -29855,13 +29085,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1788
+   i32.const 1785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -7.888609052210118e-31
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29878,13 +29108,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1789
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -29901,13 +29131,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1790
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29924,13 +29154,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1791
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -29947,13 +29177,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1792
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29970,13 +29200,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1793
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.log
+  call $~lib/util/math/log64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -29993,13 +29223,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1794
+   i32.const 1791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -30007,13 +29237,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1803
+   i32.const 1800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -30021,13 +29251,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1804
+   i32.const 1801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -7.888609052210118e-31
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30035,13 +29265,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1805
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -30049,13 +29279,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1806
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30063,13 +29293,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1807
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -30077,13 +29307,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1808
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30091,13 +29321,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1809
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30105,13 +29335,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1810
+   i32.const 1807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -30119,13 +29349,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1813
+   i32.const 1810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -30133,13 +29363,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1814
+   i32.const 1811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -7.888609052210118e-31
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30147,13 +29377,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1815
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -30161,13 +29391,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1816
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30175,13 +29405,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1817
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -30189,13 +29419,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1818
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30203,13 +29433,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1819
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.log
+  call $~lib/util/math/log32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -30217,7 +29447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1820
+   i32.const 1817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30230,7 +29460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1832
+   i32.const 1829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30243,7 +29473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1833
+   i32.const 1830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30256,7 +29486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1834
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30269,7 +29499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1835
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30282,7 +29512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1836
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30295,7 +29525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1837
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30308,7 +29538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1838
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30321,7 +29551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1839
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30334,7 +29564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1840
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30347,7 +29577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1841
+   i32.const 1838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30360,7 +29590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1844
+   i32.const 1841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30373,7 +29603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1845
+   i32.const 1842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30386,7 +29616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1846
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30399,7 +29629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1847
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30412,7 +29642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1848
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30425,7 +29655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1849
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30438,7 +29668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1850
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30451,7 +29681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1851
+   i32.const 1848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30464,7 +29694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1860
+   i32.const 1857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30477,7 +29707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1861
+   i32.const 1858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30490,7 +29720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1862
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30503,7 +29733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1863
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30516,7 +29746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1864
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30529,7 +29759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1865
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30542,7 +29772,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1866
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30555,7 +29785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1867
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30568,7 +29798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1868
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30581,7 +29811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1869
+   i32.const 1866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30594,7 +29824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1872
+   i32.const 1869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30607,7 +29837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1873
+   i32.const 1870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30620,7 +29850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1874
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30633,7 +29863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1875
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30646,7 +29876,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1876
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30659,7 +29889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1877
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30672,7 +29902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1878
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30685,13 +29915,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1879
+   i32.const 1876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -30708,13 +29938,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1891
+   i32.const 1888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 1.6762064170601734
   f64.const 0.46188199520111084
   call $std/math/check<f64>
@@ -30731,13 +29961,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1892
+   i32.const 1889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -30754,13 +29984,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1893
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -30777,13 +30007,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1894
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 2.3289404168523826
   f64.const -0.411114901304245
   call $std/math/check<f64>
@@ -30800,13 +30030,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1895
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 0.5080132114992477
   f64.const -0.29306045174598694
   call $std/math/check<f64>
@@ -30823,13 +30053,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1896
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const -0.5218931811663979
   f64.const -0.25825726985931396
   call $std/math/check<f64>
@@ -30846,13 +30076,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1897
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 0.4458132279488102
   f64.const -0.13274887204170227
   call $std/math/check<f64>
@@ -30869,13 +30099,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1898
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 0.5733227294648414
   f64.const 0.02716583013534546
   call $std/math/check<f64>
@@ -30892,13 +30122,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1899
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const -1.1355782978128564
   f64.const 0.2713092863559723
   call $std/math/check<f64>
@@ -30915,13 +30145,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1900
+   i32.const 1897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -30938,13 +30168,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1903
+   i32.const 1900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -30961,13 +30191,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1904
+   i32.const 1901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -7.888609052210118e-31
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const -7.888609052210118e-31
   f64.const 1.7763568394002505e-15
   call $std/math/check<f64>
@@ -30984,13 +30214,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1905
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const 0.6931471805599453
   f64.const -0.2088811695575714
   call $std/math/check<f64>
@@ -31007,13 +30237,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1906
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -31030,13 +30260,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1907
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -31053,13 +30283,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1908
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31076,13 +30306,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1909
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.log1p
+  call $~lib/util/math/log1p64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31099,13 +30329,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1910
+   i32.const 1907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -31113,13 +30343,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1919
+   i32.const 1916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 1.676206350326538
   f32.const -0.23014859855175018
   call $std/math/check<f32>
@@ -31127,13 +30357,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1920
+   i32.const 1917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -31141,13 +30371,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1921
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -31155,13 +30385,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1922
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 2.3289403915405273
   f32.const -0.29075589776039124
   call $std/math/check<f32>
@@ -31169,13 +30399,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1923
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 0.5080131888389587
   f32.const -0.1386766880750656
   call $std/math/check<f32>
@@ -31183,13 +30413,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1924
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -0.5218932032585144
   f32.const -0.08804433047771454
   call $std/math/check<f32>
@@ -31197,13 +30427,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1925
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 0.44581323862075806
   f32.const -0.15101368725299835
   call $std/math/check<f32>
@@ -31211,13 +30441,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1926
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 0.5733227133750916
   f32.const -0.10264533013105392
   call $std/math/check<f32>
@@ -31225,13 +30455,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1927
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -1.1355782747268677
   f32.const -0.19879481196403503
   call $std/math/check<f32>
@@ -31239,13 +30469,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1928
+   i32.const 1925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -31253,13 +30483,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1931
+   i32.const 1928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -31267,13 +30497,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1932
+   i32.const 1929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -7.888609052210118e-31
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -7.888609052210118e-31
   f32.const 3.308722450212111e-24
   call $std/math/check<f32>
@@ -31281,13 +30511,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1933
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const 0.6931471824645996
   f32.const 0.031954795122146606
   call $std/math/check<f32>
@@ -31295,13 +30525,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1934
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -31309,13 +30539,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1935
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -31323,13 +30553,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1936
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -31337,13 +30567,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1937
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -31351,13 +30581,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1938
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754942106924411e-38
-  call $~lib/math/NativeMathf.log1p
+  call $~lib/util/math/log1p32
   f32.const -1.1754942106924411e-38
   f32.const 4.930380657631324e-32
   call $std/math/check<f32>
@@ -31365,13 +30595,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1939
+   i32.const 1936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31388,13 +30618,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1951
+   i32.const 1948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const 2.1194358133804485
   f64.const -0.10164877772331238
   call $std/math/check<f64>
@@ -31411,13 +30641,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1952
+   i32.const 1949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31434,13 +30664,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1953
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31457,13 +30687,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1954
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const 3.2121112403298744
   f64.const -0.15739446878433228
   call $std/math/check<f64>
@@ -31480,13 +30710,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1955
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const -0.5951276104207402
   f64.const 0.3321485221385956
   call $std/math/check<f64>
@@ -31503,13 +30733,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1956
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31526,13 +30756,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1957
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const -0.8319748453044644
   f64.const 0.057555437088012695
   call $std/math/check<f64>
@@ -31549,13 +30779,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1958
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const -0.36931068365537134
   f64.const -0.19838279485702515
   call $std/math/check<f64>
@@ -31572,13 +30802,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1959
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31595,13 +30825,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1960
+   i32.const 1957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -31618,13 +30848,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1963
+   i32.const 1960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const -inf
   f64.const 0
   call $std/math/check<f64>
@@ -31641,13 +30871,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1964
+   i32.const 1961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -7.888609052210118e-31
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31664,13 +30894,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1965
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -31687,13 +30917,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1966
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31710,13 +30940,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1967
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const inf
   f64.const 0
   call $std/math/check<f64>
@@ -31733,13 +30963,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1968
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31756,13 +30986,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1969
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.log2
+  call $~lib/util/math/log2_64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -31779,7 +31009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1970
+   i32.const 1967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31792,7 +31022,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1979
+   i32.const 1976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31805,7 +31035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1980
+   i32.const 1977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31818,7 +31048,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1981
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31831,7 +31061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1982
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31844,7 +31074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1983
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31857,7 +31087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1984
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31870,7 +31100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1985
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31883,7 +31113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1986
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31896,7 +31126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1987
+   i32.const 1984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31909,7 +31139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1988
+   i32.const 1985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31922,7 +31152,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1991
+   i32.const 1988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31935,7 +31165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1992
+   i32.const 1989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31948,7 +31178,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1993
+   i32.const 1990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31961,7 +31191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1994
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31974,7 +31204,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1995
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31987,7 +31217,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1996
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32000,7 +31230,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1997
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32013,7 +31243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1998
+   i32.const 1995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32026,7 +31256,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2010
+   i32.const 2007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32039,7 +31269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2011
+   i32.const 2008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32052,7 +31282,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2012
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32065,7 +31295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2013
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32078,7 +31308,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2014
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32091,7 +31321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2015
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32104,7 +31334,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2016
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32117,7 +31347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2017
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32130,7 +31360,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2018
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32143,7 +31373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2019
+   i32.const 2016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32156,7 +31386,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2022
+   i32.const 2019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32169,7 +31399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2023
+   i32.const 2020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32182,7 +31412,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2024
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32195,7 +31425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2025
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32208,7 +31438,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2026
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32221,7 +31451,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2027
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32234,7 +31464,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2028
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32247,7 +31477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2029
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32260,7 +31490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2030
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32273,7 +31503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2031
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32286,7 +31516,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2032
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32299,7 +31529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2033
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32312,7 +31542,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2034
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32325,7 +31555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2035
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32338,7 +31568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2036
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32351,7 +31581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2037
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32364,7 +31594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2038
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32377,7 +31607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2039
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32390,7 +31620,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2040
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32403,7 +31633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2041
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32416,7 +31646,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2042
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32429,7 +31659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2043
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32442,7 +31672,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2044
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32455,7 +31685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2045
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32468,7 +31698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2046
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32481,7 +31711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2047
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32494,7 +31724,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2048
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32507,7 +31737,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2049
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32520,7 +31750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2050
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32533,7 +31763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2051
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32546,7 +31776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2052
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32559,7 +31789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2053
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32572,7 +31802,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2054
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32585,7 +31815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2055
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32598,7 +31828,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2056
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32611,7 +31841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2057
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32624,7 +31854,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2058
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32637,7 +31867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2059
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32650,7 +31880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2060
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32663,7 +31893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2061
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32676,7 +31906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2062
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32689,7 +31919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2063
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32702,7 +31932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2064
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32715,7 +31945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2065
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32728,7 +31958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2066
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32741,7 +31971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2067
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32754,7 +31984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2068
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32767,7 +31997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2069
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32780,7 +32010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2070
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32793,7 +32023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2071
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32806,7 +32036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2072
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32819,7 +32049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2073
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32832,7 +32062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2074
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32845,7 +32075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2075
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32858,7 +32088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2076
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32871,7 +32101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2077
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32884,7 +32114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2078
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32897,7 +32127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2079
+   i32.const 2076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32910,7 +32140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2088
+   i32.const 2085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32923,7 +32153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2089
+   i32.const 2086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32936,7 +32166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2090
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32949,7 +32179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2091
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32962,7 +32192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2092
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32975,7 +32205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2093
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32988,7 +32218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2094
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33001,7 +32231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2095
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33014,7 +32244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2096
+   i32.const 2093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33024,6 +32254,19 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2094
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -33037,6 +32280,32 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2098
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2099
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -33071,45 +32340,6 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2103
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2104
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2105
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f32.const inf
   f32.const inf
   f32.const 0
@@ -33118,7 +32348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2106
+   i32.const 2103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33131,7 +32361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2107
+   i32.const 2104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33144,7 +32374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2108
+   i32.const 2105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33157,7 +32387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2109
+   i32.const 2106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33170,7 +32400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2110
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33183,7 +32413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2111
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33196,7 +32426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2112
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33209,7 +32439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2113
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33222,7 +32452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2114
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33235,7 +32465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2115
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33248,7 +32478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2116
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33261,7 +32491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2117
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33274,7 +32504,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2118
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33287,7 +32517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2119
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33300,7 +32530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2120
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33313,7 +32543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2121
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33326,7 +32556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2122
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33339,7 +32569,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2123
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33352,7 +32582,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2124
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33365,7 +32595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2125
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33378,7 +32608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2126
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33391,7 +32621,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2127
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33404,7 +32634,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2128
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33417,7 +32647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2129
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33430,7 +32660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2130
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33443,7 +32673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2131
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33456,7 +32686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2132
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33469,7 +32699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2133
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33482,7 +32712,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2134
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33495,7 +32725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2135
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33508,7 +32738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2136
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33521,7 +32751,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2137
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33534,7 +32764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2138
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33547,7 +32777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2139
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33560,7 +32790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2140
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33573,7 +32803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2141
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33586,7 +32816,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2142
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33599,7 +32829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2143
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33612,7 +32842,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2144
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33625,7 +32855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2145
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33638,7 +32868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2146
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33651,7 +32881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2147
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33664,7 +32894,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2148
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33677,7 +32907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2149
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33690,7 +32920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2150
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33703,7 +32933,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2151
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33716,7 +32946,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2152
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33729,7 +32959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2153
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33742,7 +32972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2154
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33755,7 +32985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2155
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33768,7 +32998,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2156
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33781,7 +33011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2157
+   i32.const 2154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33794,7 +33024,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2169
+   i32.const 2166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33807,7 +33037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2170
+   i32.const 2167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33820,7 +33050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2171
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33833,7 +33063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2172
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33846,7 +33076,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2173
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33859,7 +33089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2174
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33872,7 +33102,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2175
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33885,7 +33115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2176
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33898,7 +33128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2177
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33911,7 +33141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2178
+   i32.const 2175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33924,7 +33154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2181
+   i32.const 2178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33937,7 +33167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2182
+   i32.const 2179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33950,7 +33180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2183
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33963,7 +33193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2184
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33976,7 +33206,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2185
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33989,7 +33219,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2186
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34002,7 +33232,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2187
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34015,7 +33245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2188
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34028,7 +33258,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2189
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34041,7 +33271,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2190
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34054,7 +33284,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2191
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34067,7 +33297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2192
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34080,7 +33310,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2193
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34093,7 +33323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2194
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34106,7 +33336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2195
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34119,7 +33349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2196
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34132,7 +33362,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2197
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34145,7 +33375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2198
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34158,7 +33388,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2199
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34171,7 +33401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2200
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34184,7 +33414,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2201
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34197,7 +33427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2202
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34210,7 +33440,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2203
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34223,7 +33453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2204
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34236,7 +33466,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2205
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34249,7 +33479,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2206
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34262,7 +33492,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2207
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34275,7 +33505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2208
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34288,7 +33518,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2209
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34301,7 +33531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2210
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34314,7 +33544,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2211
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34327,7 +33557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2212
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34340,7 +33570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2213
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34353,7 +33583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2214
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34366,7 +33596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2215
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34379,7 +33609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2216
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34392,7 +33622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2217
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34405,7 +33635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2218
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34418,7 +33648,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2219
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34431,7 +33661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2220
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34444,7 +33674,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2221
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34457,7 +33687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2222
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34470,7 +33700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2223
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34483,7 +33713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2224
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34496,7 +33726,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2225
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34509,7 +33739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2226
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34522,7 +33752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2227
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34535,7 +33765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2228
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34548,7 +33778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2229
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34561,7 +33791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2230
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34574,7 +33804,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2231
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34587,7 +33817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2232
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34600,7 +33830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2233
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34613,7 +33843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2234
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34626,7 +33856,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2235
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34639,7 +33869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2236
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34652,7 +33882,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2237
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34665,7 +33895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2238
+   i32.const 2235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34678,7 +33908,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2247
+   i32.const 2244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34691,7 +33921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2248
+   i32.const 2245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34704,7 +33934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2249
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34717,7 +33947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2250
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34730,7 +33960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2251
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34743,7 +33973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2252
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34756,7 +33986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2253
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34769,7 +33999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2254
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34782,7 +34012,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2255
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34795,7 +34025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2256
+   i32.const 2253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34808,7 +34038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2259
+   i32.const 2256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34821,7 +34051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2260
+   i32.const 2257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34834,7 +34064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2261
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34847,7 +34077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2262
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34860,7 +34090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2263
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34873,7 +34103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2264
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34886,7 +34116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2265
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34899,7 +34129,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2266
+   i32.const 2263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34909,6 +34139,45 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2264
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2265
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2266
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -34969,45 +34238,6 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2272
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2273
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2274
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f32.const -inf
   f32.const -inf
   f32.const 0
@@ -35016,7 +34246,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2275
+   i32.const 2272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35029,7 +34259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2276
+   i32.const 2273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35042,7 +34272,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2277
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35055,7 +34285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2278
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35068,7 +34298,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2279
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35081,7 +34311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2280
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35094,7 +34324,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2281
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35107,7 +34337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2282
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35120,7 +34350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2283
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35133,7 +34363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2284
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35146,7 +34376,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2285
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35159,7 +34389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2286
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35172,7 +34402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2287
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35185,7 +34415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2288
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35198,7 +34428,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2289
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35211,7 +34441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2290
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35224,7 +34454,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2291
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35237,7 +34467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2292
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35250,7 +34480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2293
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35263,7 +34493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2294
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35276,7 +34506,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2295
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35289,7 +34519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2296
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35302,7 +34532,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2297
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35315,7 +34545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2298
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35328,7 +34558,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2299
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35341,7 +34571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2300
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35354,7 +34584,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2301
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35367,7 +34597,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2302
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35380,7 +34610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2303
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35393,7 +34623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2304
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35406,7 +34636,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2305
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35419,7 +34649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2306
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35432,7 +34662,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2307
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35445,7 +34675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2308
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35458,7 +34688,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2309
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35471,7 +34701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2310
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35484,7 +34714,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2311
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35497,7 +34727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2312
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35510,7 +34740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2313
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35523,7 +34753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2314
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35536,7 +34766,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2315
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35549,7 +34779,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2316
+   i32.const 2313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35562,7 +34792,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2330
+   i32.const 2327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35575,7 +34805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2331
+   i32.const 2328
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35588,7 +34818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2332
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35601,7 +34831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2333
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35614,7 +34844,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2334
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35627,7 +34857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2335
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35640,7 +34870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2336
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35653,7 +34883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2337
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35666,7 +34896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2338
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35679,7 +34909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2339
+   i32.const 2336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35692,7 +34922,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2342
+   i32.const 2339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35705,7 +34935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2343
+   i32.const 2340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35718,7 +34948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2344
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35731,7 +34961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2345
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35744,7 +34974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2346
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35757,7 +34987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2347
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35770,7 +35000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2348
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35783,7 +35013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2349
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35796,7 +35026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2350
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35809,7 +35039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2351
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35822,7 +35052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2352
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35835,7 +35065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2353
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35848,7 +35078,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2354
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35861,7 +35091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2355
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35874,7 +35104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2356
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35887,7 +35117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2357
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35900,7 +35130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2358
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35913,7 +35143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2359
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35926,7 +35156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2360
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35939,7 +35169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2361
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35952,7 +35182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2362
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35965,7 +35195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2363
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35978,7 +35208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2364
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35991,7 +35221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2365
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36004,7 +35234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2366
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36017,7 +35247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2367
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36030,7 +35260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2368
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36043,7 +35273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2369
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36056,7 +35286,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2370
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36069,7 +35299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2371
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36082,7 +35312,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2372
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36095,7 +35325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2373
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36108,7 +35338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2374
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36121,7 +35351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2375
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36134,7 +35364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2376
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36147,7 +35377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2377
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36160,7 +35390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2378
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36173,7 +35403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2379
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36186,7 +35416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2380
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36199,7 +35429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2381
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36212,7 +35442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2382
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36225,7 +35455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2383
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36238,7 +35468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2384
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36251,7 +35481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2385
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36264,7 +35494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2386
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36277,7 +35507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2387
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36290,7 +35520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2388
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36303,7 +35533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2389
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36316,7 +35546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2390
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36329,7 +35559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2391
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36342,7 +35572,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2392
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36355,7 +35585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2393
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36368,7 +35598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2394
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36381,7 +35611,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2395
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36394,7 +35624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2396
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36407,7 +35637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2397
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36420,7 +35650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2398
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36433,7 +35663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2399
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36446,7 +35676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2400
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36459,7 +35689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2401
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36472,7 +35702,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2402
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36485,7 +35715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2403
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36498,7 +35728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2404
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36511,7 +35741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2405
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36524,7 +35754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2406
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36537,7 +35767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2407
+   i32.const 2404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36550,7 +35780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2410
+   i32.const 2407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36563,7 +35793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2411
+   i32.const 2408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36576,7 +35806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2412
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36589,7 +35819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2413
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36602,7 +35832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2414
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36615,7 +35845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2415
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36628,7 +35858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2416
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36641,7 +35871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2417
+   i32.const 2414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36654,7 +35884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2420
+   i32.const 2417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36667,7 +35897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2421
+   i32.const 2418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36680,7 +35910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2422
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36693,7 +35923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2423
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36706,7 +35936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2424
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36719,7 +35949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2425
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36732,7 +35962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2426
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36745,7 +35975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2427
+   i32.const 2424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36758,7 +35988,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2430
+   i32.const 2427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36771,7 +36001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2431
+   i32.const 2428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36784,7 +36014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2433
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36797,7 +36027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2434
+   i32.const 2431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36810,7 +36040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2436
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36823,7 +36053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2437
+   i32.const 2434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36836,7 +36066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2439
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36849,7 +36079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2440
+   i32.const 2437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36862,7 +36092,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2442
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36875,7 +36105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2443
+   i32.const 2440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36888,7 +36118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2445
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36901,7 +36131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2446
+   i32.const 2443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36914,7 +36144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2448
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36927,7 +36157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2449
+   i32.const 2446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36940,7 +36170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2451
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36953,7 +36183,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2452
+   i32.const 2449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36966,7 +36196,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2454
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36979,7 +36209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2455
+   i32.const 2452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36992,7 +36222,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2457
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37005,7 +36235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2458
+   i32.const 2455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37018,7 +36248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2459
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37031,7 +36261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2460
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37044,7 +36274,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2461
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37057,7 +36287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2462
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37070,7 +36300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2463
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37083,7 +36313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2464
+   i32.const 2461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37096,7 +36326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2466
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37109,7 +36339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2467
+   i32.const 2464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37122,7 +36352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2468
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37135,7 +36365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2469
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37148,7 +36378,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2470
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37161,7 +36391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2471
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37174,7 +36404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2472
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37187,7 +36417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2473
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37200,7 +36430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2474
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37213,7 +36443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2475
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37226,7 +36456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2476
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37239,7 +36469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2477
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37252,7 +36482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2478
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37265,7 +36495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2479
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37278,7 +36508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2480
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37291,7 +36521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2481
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37304,7 +36534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2482
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37317,7 +36547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2483
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37330,7 +36560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2484
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37343,14 +36573,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2485
+   i32.const 2482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
   f32.const 4.535662651062012
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -3.531186103820801
   f32.const 0
   call $std/math/check<f32>
@@ -37358,14 +36588,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2494
+   i32.const 2491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
   f32.const -8.887990951538086
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 4.345239639282227
   f32.const 0
   call $std/math/check<f32>
@@ -37373,14 +36603,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2495
+   i32.const 2492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
   f32.const -2.7636072635650635
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.09061169624328613
   f32.const 0
   call $std/math/check<f32>
@@ -37388,14 +36618,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2496
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
   f32.const 4.567535400390625
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -1.9641380310058594
   f32.const 0
   call $std/math/check<f32>
@@ -37403,14 +36633,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2497
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
   f32.const 4.811392307281494
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 4.455665111541748
   f32.const 0
   call $std/math/check<f32>
@@ -37418,14 +36648,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2498
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.450045585632324
   f32.const 0.6620717644691467
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.49139970541000366
   f32.const 0
   call $std/math/check<f32>
@@ -37433,14 +36663,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2499
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.858890056610107
   f32.const 0.052154526114463806
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.0357111394405365
   f32.const 0
   call $std/math/check<f32>
@@ -37448,14 +36678,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2500
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.7920545339584351
   f32.const 7.676402568817139
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.7920545339584351
   f32.const 0
   call $std/math/check<f32>
@@ -37463,14 +36693,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2501
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6157026886940002
   f32.const 2.0119025707244873
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.6157026886940002
   f32.const 0
   call $std/math/check<f32>
@@ -37478,14 +36708,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2502
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5587586760520935
   f32.const 0.03223983198404312
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.010681532323360443
   f32.const 0
   call $std/math/check<f32>
@@ -37493,14 +36723,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2503
+   i32.const 2500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37508,14 +36738,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2506
+   i32.const 2503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37523,14 +36753,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2507
+   i32.const 2504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37538,14 +36768,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2508
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37553,14 +36783,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2509
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37568,14 +36798,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2510
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37583,14 +36813,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2511
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.5
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37598,14 +36828,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2512
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.5
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37613,14 +36843,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2513
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37628,14 +36858,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2514
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37643,14 +36873,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2515
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37658,14 +36888,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2516
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37673,14 +36903,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2517
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37688,14 +36918,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2518
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37703,14 +36933,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2519
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37718,14 +36948,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2520
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37733,14 +36963,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2521
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37748,14 +36978,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2522
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37763,14 +36993,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2523
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37778,14 +37008,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2524
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.5
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37793,14 +37023,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2525
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.5
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.5
   f32.const 0
   call $std/math/check<f32>
@@ -37808,14 +37038,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2526
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37823,14 +37053,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2527
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -37838,14 +37068,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2528
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37853,14 +37083,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2529
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37868,14 +37098,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2530
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const -1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37883,14 +37113,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2531
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37898,14 +37128,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2532
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37913,14 +37143,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2533
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37928,14 +37158,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2534
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -37943,14 +37173,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2535
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37958,14 +37188,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2536
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37973,14 +37203,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2537
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -37988,14 +37218,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2538
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -38003,14 +37233,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2539
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -38018,14 +37248,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2540
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38033,14 +37263,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2541
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38048,14 +37278,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2542
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38063,14 +37293,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2543
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38078,14 +37308,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2544
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38093,14 +37323,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2545
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38108,14 +37338,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2546
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38123,14 +37353,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2547
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38138,14 +37368,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2548
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38153,14 +37383,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2549
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const -0
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38168,14 +37398,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2550
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 2
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38183,14 +37413,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2551
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38198,14 +37428,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2552
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38213,14 +37443,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2553
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 2
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38228,14 +37458,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2554
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38243,14 +37473,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2555
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38258,14 +37488,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2556
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38273,14 +37503,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2557
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38288,14 +37518,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2558
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38303,14 +37533,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2559
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -38318,14 +37548,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2560
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -1
   f32.const 0
   call $std/math/check<f32>
@@ -38333,14 +37563,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2561
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38348,14 +37578,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2562
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38363,14 +37593,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2563
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -38378,14 +37608,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2564
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -1
   f32.const 0
   call $std/math/check<f32>
@@ -38393,14 +37623,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2565
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38408,14 +37638,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2566
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -inf
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -38423,14 +37653,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2567
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.75
   f32.const 0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.25
   f32.const 0
   call $std/math/check<f32>
@@ -38438,14 +37668,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2568
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.75
   f32.const 0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.25
   f32.const 0
   call $std/math/check<f32>
@@ -38453,14 +37683,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2569
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.75
   f32.const -0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0.25
   f32.const 0
   call $std/math/check<f32>
@@ -38468,14 +37698,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2570
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.75
   f32.const -0.5
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const -0.25
   f32.const 0
   call $std/math/check<f32>
@@ -38483,7 +37713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2571
+   i32.const 2568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38497,7 +37727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2583
+   i32.const 2580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38511,7 +37741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2584
+   i32.const 2581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38525,7 +37755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2585
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38539,7 +37769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2586
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38553,7 +37783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2587
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38567,7 +37797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2588
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38581,7 +37811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2589
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38595,7 +37825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2590
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38609,7 +37839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2591
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38623,7 +37853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2592
+   i32.const 2589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38637,7 +37867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2595
+   i32.const 2592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38651,7 +37881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2596
+   i32.const 2593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38665,7 +37895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2597
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38679,7 +37909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2598
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38693,7 +37923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2599
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38707,7 +37937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2600
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38721,7 +37951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2601
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38735,7 +37965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2602
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38749,7 +37979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2603
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38763,7 +37993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2604
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38777,7 +38007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2605
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38791,7 +38021,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2606
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38805,7 +38035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2607
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38819,7 +38049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2608
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38833,7 +38063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2609
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38847,7 +38077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2610
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38861,7 +38091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2611
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38875,7 +38105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2612
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38889,7 +38119,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2613
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38903,7 +38133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2614
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38917,7 +38147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2615
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38931,7 +38161,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2616
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38945,7 +38175,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2617
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38959,7 +38189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2618
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38973,7 +38203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2619
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38987,7 +38217,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2620
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39001,7 +38231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2621
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39015,7 +38245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2622
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39029,7 +38259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2623
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39043,7 +38273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2624
+   i32.const 2621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39057,7 +38287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2625
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39071,7 +38301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2626
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39085,7 +38315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2627
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39099,7 +38329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2628
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39113,7 +38343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2629
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39127,7 +38357,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2630
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39141,7 +38371,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2631
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39155,7 +38385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2632
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39169,7 +38399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2633
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39183,7 +38413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2634
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39197,7 +38427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2635
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39211,7 +38441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2636
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39225,7 +38455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2637
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39239,7 +38469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2638
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39253,7 +38483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2639
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39267,7 +38497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2640
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39281,7 +38511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2641
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39295,7 +38525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2642
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39309,7 +38539,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2643
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39323,7 +38553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2644
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39337,7 +38567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2645
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39351,7 +38581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2646
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39365,7 +38595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2647
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39379,7 +38609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2648
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39393,7 +38623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2649
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39407,7 +38637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2650
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39421,7 +38651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2651
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39435,7 +38665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2652
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39449,7 +38679,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2653
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39463,7 +38693,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2654
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39477,7 +38707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2655
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39491,7 +38721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2656
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39505,7 +38735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2657
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39519,7 +38749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2658
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39533,7 +38763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2659
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39547,7 +38777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2660
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39561,7 +38791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2661
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39575,7 +38805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2662
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39589,7 +38819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2663
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39603,7 +38833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2664
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39617,7 +38847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2665
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39631,7 +38861,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2666
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39645,7 +38875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2667
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39659,7 +38889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2668
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39673,7 +38903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2669
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39687,7 +38917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2670
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39701,7 +38931,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2671
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39715,7 +38945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2672
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39729,7 +38959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2673
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39743,7 +38973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2674
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39757,7 +38987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2675
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39771,7 +39001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2676
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39785,7 +39015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2677
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39799,7 +39029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2678
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39813,7 +39043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2679
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39827,7 +39057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2680
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39841,7 +39071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2681
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39855,7 +39085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2682
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39869,7 +39099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2683
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39883,7 +39113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2684
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39897,7 +39127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2685
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39911,513 +39141,513 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2686
+   i32.const 2683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2689
+   i32.const 2686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2690
+   i32.const 2687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const -0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2691
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2692
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2693
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2694
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2695
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 0
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2696
+   i32.const 2693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2698
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2699
+   i32.const 2696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2700
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2701
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   f64.const 1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2702
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 1
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
+  call $~lib/util/math/pow64
+  local.tee $1
+  local.get $1
   f64.eq
   if
    i32.const 0
    i32.const 1056
-   i32.const 2703
+   i32.const 2700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2705
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2706
+   i32.const 2703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2707
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 2
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2708
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2709
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2710
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const -0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2711
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const -1
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
+  call $~lib/util/math/pow64
+  local.tee $1
+  local.get $1
   f64.eq
   if
    i32.const 0
    i32.const 1056
-   i32.const 2712
+   i32.const 2709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2714
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2715
+   i32.const 2712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2716
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0.25
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2717
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2718
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2719
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   f64.const 2
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2720
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 2
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
+  call $~lib/util/math/pow64
+  local.tee $1
+  local.get $1
   f64.eq
   if
    i32.const 0
    i32.const 1056
-   i32.const 2721
+   i32.const 2718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2723
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2724
+   i32.const 2721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
+  call $~lib/util/math/pow64
+  local.tee $1
+  local.get $1
   f64.eq
   if
    i32.const 0
    i32.const 1056
-   i32.const 2725
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 2
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2726
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2727
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2728
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 2729
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
-  local.tee $0
-  local.get $0
+  call $~lib/util/math/pow64
+  local.tee $1
+  local.get $1
   f64.eq
   if
    i32.const 0
    i32.const 1056
-   i32.const 2730
+   i32.const 2727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
   f32.const 4.535662651062012
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40425,14 +39655,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2739
+   i32.const 2736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
   f32.const -8.887990951538086
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.134714122803416e-06
   f32.const 0.1436440795660019
   call $std/math/check<f32>
@@ -40440,14 +39670,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2740
+   i32.const 2737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
   f32.const -2.7636072635650635
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40455,14 +39685,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2741
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
   f32.const 4.567535400390625
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40470,14 +39700,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2742
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
   f32.const 4.811392307281494
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 44909.33203125
   f32.const -0.05356409028172493
   call $std/math/check<f32>
@@ -40485,14 +39715,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2743
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.450045585632324
   f32.const 0.6620717644691467
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40500,14 +39730,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2744
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.858890056610107
   f32.const 0.052154526114463806
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1.1135177612304688
   f32.const 0.19122089445590973
   call $std/math/check<f32>
@@ -40515,14 +39745,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2745
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.7920545339584351
   f32.const 7.676402568817139
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40530,14 +39760,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2746
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6157026886940002
   f32.const 2.0119025707244873
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.3769077658653259
   f32.const 0.337149053812027
   call $std/math/check<f32>
@@ -40545,14 +39775,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2747
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5587586760520935
   f32.const 0.03223983198404312
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40560,14 +39790,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2748
+   i32.const 2745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40575,14 +39805,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2751
+   i32.const 2748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40590,14 +39820,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2752
+   i32.const 2749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40605,14 +39835,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2753
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40620,14 +39850,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2754
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40635,14 +39865,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2755
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40650,14 +39880,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2756
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -40665,14 +39895,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2757
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -40680,14 +39910,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2758
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40695,14 +39925,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2759
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40710,14 +39940,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2760
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40725,14 +39955,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2761
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40740,14 +39970,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2762
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -4
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40755,14 +39985,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2763
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40770,14 +40000,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2764
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -40785,14 +40015,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2765
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40800,14 +40030,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2766
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -40815,14 +40045,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2767
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40830,14 +40060,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2768
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -40845,14 +40075,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2769
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -40860,14 +40090,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2770
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -40875,14 +40105,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2771
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -40890,14 +40120,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2772
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40905,14 +40135,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2773
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -40920,14 +40150,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2774
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40935,14 +40165,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2775
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -40950,14 +40180,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2776
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -4
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40965,14 +40195,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2777
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -40980,14 +40210,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2778
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -40995,14 +40225,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2779
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41010,14 +40240,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2780
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41025,14 +40255,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2781
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41040,14 +40270,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2782
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41055,14 +40285,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2783
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41070,14 +40300,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2784
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41085,14 +40315,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2785
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41100,14 +40330,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2786
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41115,14 +40345,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2787
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41130,14 +40360,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2788
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41145,14 +40375,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2789
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const -0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41160,14 +40390,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2790
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41175,14 +40405,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2791
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41190,14 +40420,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2792
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41205,14 +40435,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2793
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41220,14 +40450,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2794
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -1
   f32.const 0
   call $std/math/check<f32>
@@ -41235,14 +40465,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2795
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41250,14 +40480,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2796
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const -3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -1
   f32.const 0
   call $std/math/check<f32>
@@ -41265,14 +40495,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2797
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41280,14 +40510,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2798
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41295,14 +40525,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2799
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41310,14 +40540,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2800
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41325,14 +40555,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2801
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41340,14 +40570,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2802
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41355,14 +40585,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2803
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41370,14 +40600,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2804
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const -3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -41385,14 +40615,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2805
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41400,14 +40630,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2806
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 1.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41415,14 +40645,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2807
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.25
   f32.const 0
   call $std/math/check<f32>
@@ -41430,14 +40660,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2808
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0.125
   f32.const 0
   call $std/math/check<f32>
@@ -41445,14 +40675,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2809
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41460,14 +40690,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2810
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41475,14 +40705,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2811
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.5
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41490,14 +40720,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2812
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41505,14 +40735,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2813
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41520,14 +40750,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2814
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41535,14 +40765,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2815
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.5
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41550,14 +40780,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2816
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.5
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41565,14 +40795,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2817
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.5
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41580,14 +40810,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2818
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41595,14 +40825,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2819
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41610,14 +40840,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2820
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41625,14 +40855,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2821
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41640,14 +40870,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2822
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41655,14 +40885,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2823
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41670,14 +40900,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2824
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41685,14 +40915,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2825
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41700,14 +40930,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2826
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41715,14 +40945,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2827
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41730,14 +40960,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2828
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41745,14 +40975,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2829
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41760,14 +40990,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2830
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41775,14 +41005,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2831
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -41790,14 +41020,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2832
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41805,14 +41035,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2833
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -41820,14 +41050,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2834
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -41835,14 +41065,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2835
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41850,14 +41080,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2836
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -41865,14 +41095,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2837
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41880,14 +41110,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2838
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41895,14 +41125,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2839
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -41910,14 +41140,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2840
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -2
   f32.const 0
   call $std/math/check<f32>
@@ -41925,14 +41155,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2841
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0.5
   f32.const 0
   call $std/math/check<f32>
@@ -41940,14 +41170,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2842
+   i32.const 2839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -41955,14 +41185,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2845
+   i32.const 2842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -41970,14 +41200,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2846
+   i32.const 2843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -41985,14 +41215,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2847
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754943508222875e-38
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -42000,14 +41230,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2848
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402823466385288598117041e14
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 3402823466385288598117041e14
   f32.const 0
   call $std/math/check<f32>
@@ -42015,14 +41245,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2849
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -3402823466385288598117041e14
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -3402823466385288598117041e14
   f32.const 0
   call $std/math/check<f32>
@@ -42030,14 +41260,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2850
+   i32.const 2847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42045,14 +41275,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2852
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1.1754943508222875e-38
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42060,14 +41290,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2853
+   i32.const 2850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42075,14 +41305,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2854
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 17
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -42090,14 +41320,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2855
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42105,14 +41335,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2856
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1.1754943508222875e-38
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42120,14 +41350,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2857
+   i32.const 2854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.100000023841858
   f32.const 101
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -15158.70703125
   f32.const -0.2798735499382019
   call $std/math/check<f32>
@@ -42135,14 +41365,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2859
+   i32.const 2856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 19
   f32.const 5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2476099
   f32.const 0
   call $std/math/check<f32>
@@ -42150,14 +41380,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2861
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -19
   f32.const 5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -2476099
   f32.const 0
   call $std/math/check<f32>
@@ -42165,14 +41395,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2862
+   i32.const 2859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -193
   f32.const 3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -7189057
   f32.const 0
   call $std/math/check<f32>
@@ -42180,14 +41410,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2863
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1201
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1442401
   f32.const 0
   call $std/math/check<f32>
@@ -42195,14 +41425,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2864
+   i32.const 2861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.312918663024902
   f32.const 17.122268676757812
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 624013315407872
   f32.const -0.14995409548282623
   call $std/math/check<f32>
@@ -42210,14 +41440,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2866
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 18.804489135742188
   f32.const 3.3214492797851562
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 17076.3515625
   f32.const 0.3042995035648346
   call $std/math/check<f32>
@@ -42225,14 +41455,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2867
+   i32.const 2864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 7.290969371795654
   f32.const 9.60707950592041
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 194467360
   f32.const -0.10728006064891815
   call $std/math/check<f32>
@@ -42240,14 +41470,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2868
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 15.783316612243652
   f32.const 18.55087661743164
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 16889945384019652771840
   f32.const 0.09180249273777008
   call $std/math/check<f32>
@@ -42255,14 +41485,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2869
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 8.319306373596191
   f32.const 0.4197559952735901
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.43339204788208
   f32.const 0.009661106392741203
   call $std/math/check<f32>
@@ -42270,14 +41500,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2870
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.831245422363281
   f32.const 10.462174415588379
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 102690080
   f32.const -1.4237762661650777e-03
   call $std/math/check<f32>
@@ -42285,14 +41515,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2871
+   i32.const 2868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.415773391723633
   f32.const 17.12181282043457
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 3619232.25
   f32.const 0.2961936891078949
   call $std/math/check<f32>
@@ -42300,14 +41530,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2872
+   i32.const 2869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.03832307085394859
   f32.const 0.011254354380071163
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.9639571905136108
   f32.const -0.4840981066226959
   call $std/math/check<f32>
@@ -42315,14 +41545,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2873
+   i32.const 2870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.4462971687316895
   f32.const 15.814705848693848
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 437749907456
   f32.const -0.40305933356285095
   call $std/math/check<f32>
@@ -42330,14 +41560,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2874
+   i32.const 2871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 12.87027645111084
   f32.const 14.93734359741211
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 37522809982812160
   f32.const 0.10445278882980347
   call $std/math/check<f32>
@@ -42345,14 +41575,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2875
+   i32.const 2872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42360,14 +41590,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2877
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42375,14 +41605,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2878
+   i32.const 2875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42390,14 +41620,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2879
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42405,14 +41635,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2880
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.401298464324817e-45
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42420,14 +41650,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2881
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
   f32.const 0
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1
   f32.const 0
   call $std/math/check<f32>
@@ -42435,14 +41665,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2882
+   i32.const 2879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42450,14 +41680,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2884
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42465,14 +41695,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2885
+   i32.const 2882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42480,14 +41710,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2886
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -42495,14 +41725,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2887
+   i32.const 2884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42510,14 +41740,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2889
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42525,14 +41755,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2890
+   i32.const 2887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42540,14 +41770,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2891
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42555,14 +41785,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2892
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42570,14 +41800,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2893
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42585,14 +41815,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2894
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -42600,14 +41830,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2895
+   i32.const 2892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.0000001192092896
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42615,14 +41845,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2897
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42630,14 +41860,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2898
+   i32.const 2895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.0000001192092896
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42645,14 +41875,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2899
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42660,14 +41890,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2900
+   i32.const 2897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.0000001192092896
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42675,14 +41905,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2902
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42690,14 +41920,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2903
+   i32.const 2900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.0000001192092896
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42705,14 +41935,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2904
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42720,14 +41950,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2905
+   i32.const 2902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.9999999403953552
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42735,14 +41965,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2907
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.401298464324817e-45
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42750,14 +41980,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2908
+   i32.const 2905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42765,14 +41995,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2909
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.9999999403953552
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42780,14 +42010,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2910
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42795,14 +42025,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2911
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42810,14 +42040,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2912
+   i32.const 2909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42825,14 +42055,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2914
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42840,14 +42070,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2915
+   i32.const 2912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42855,14 +42085,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2917
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42870,14 +42100,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2918
+   i32.const 2915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42885,14 +42115,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2919
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42900,14 +42130,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2920
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42915,14 +42145,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2921
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -42930,14 +42160,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2922
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
   f32.const -17
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -42945,14 +42175,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2923
+   i32.const 2920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42960,14 +42190,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2925
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -42975,14 +42205,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2926
+   i32.const 2923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -42990,14 +42220,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2928
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43005,14 +42235,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2929
+   i32.const 2926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -3402823466385288598117041e14
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -43020,14 +42250,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2930
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -43035,14 +42265,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2931
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -43050,14 +42280,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2932
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -43065,14 +42295,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2933
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 6
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43080,14 +42310,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2934
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const -6
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -43095,14 +42325,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2935
+   i32.const 2932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 2.000000238418579
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43110,14 +42340,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2937
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1
   f32.const 1.0000001192092896
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -43125,14 +42355,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2938
+   i32.const 2935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
   f32.const -1.9999998807907104
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -43140,14 +42370,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2939
+   i32.const 2936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -10
   f32.const 309
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -inf
   f32.const 0
   call $std/math/check<f32>
@@ -43155,14 +42385,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2941
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43170,14 +42400,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2942
+   i32.const 2939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.802596928649634e-45
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 5.293955920339377e-23
   f32.const 0
   call $std/math/check<f32>
@@ -43185,14 +42415,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2944
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1210387714598537e-44
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1.0587911840678754e-22
   f32.const 0
   call $std/math/check<f32>
@@ -43200,14 +42430,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2945
+   i32.const 2942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.938735877055719e-39
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 5.421010862427522e-20
   f32.const 0
   call $std/math/check<f32>
@@ -43215,14 +42445,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2946
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.877471754111438e-39
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1701411834604692317316873e14
   f32.const 0
   call $std/math/check<f32>
@@ -43230,14 +42460,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2947
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1.0842021724855044e-19
   f32.const 0
   call $std/math/check<f32>
@@ -43245,14 +42475,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2948
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 8507059173023461586584365e13
   f32.const 0
   call $std/math/check<f32>
@@ -43260,14 +42490,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2949
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.350988701644575e-38
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 4253529586511730793292182e13
   f32.const 0
   call $std/math/check<f32>
@@ -43275,14 +42505,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2950
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.70197740328915e-38
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.168404344971009e-19
   f32.const 0
   call $std/math/check<f32>
@@ -43290,14 +42520,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2951
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.70197740328915e-38
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2126764793255865396646091e13
   f32.const 0
   call $std/math/check<f32>
@@ -43305,14 +42535,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2952
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.293955920339377e-23
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.802596928649634e-45
   f32.const 0
   call $std/math/check<f32>
@@ -43320,14 +42550,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2953
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.168404344971009e-19
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 4.656612873077393e-10
   f32.const 0
   call $std/math/check<f32>
@@ -43335,14 +42565,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2954
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3283064365386963e-10
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 5.421010862427522e-20
   f32.const 0
   call $std/math/check<f32>
@@ -43350,14 +42580,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2955
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.656612873077393e-10
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.168404344971009e-19
   f32.const 0
   call $std/math/check<f32>
@@ -43365,14 +42595,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2956
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1920928955078125e-07
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 8388608
   f32.const 0
   call $std/math/check<f32>
@@ -43380,14 +42610,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2957
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.000034332275390625
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.005859375
   f32.const 0
   call $std/math/check<f32>
@@ -43395,14 +42625,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2958
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.00006103515625
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.0078125
   f32.const 0
   call $std/math/check<f32>
@@ -43410,14 +42640,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2959
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.00390625
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.0625
   f32.const 0
   call $std/math/check<f32>
@@ -43425,14 +42655,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2960
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.03515625
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.1875
   f32.const 0
   call $std/math/check<f32>
@@ -43440,14 +42670,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2961
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.0625
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.25
   f32.const 0
   call $std/math/check<f32>
@@ -43455,14 +42685,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2962
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.25
   f32.const 2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0.0625
   f32.const 0
   call $std/math/check<f32>
@@ -43470,14 +42700,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2963
+   i32.const 2960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2126764793255865396646091e13
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 4611686018427387904
   f32.const 0
   call $std/math/check<f32>
@@ -43485,14 +42715,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2965
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2126764793255865396646091e13
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 4.70197740328915e-38
   f32.const 0
   call $std/math/check<f32>
@@ -43500,14 +42730,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2966
+   i32.const 2963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4253529586511730793292182e13
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43515,14 +42745,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2967
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4253529586511730793292182e13
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.350988701644575e-38
   f32.const 0
   call $std/math/check<f32>
@@ -43530,14 +42760,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2968
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4253529586511730793292182e13
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -43545,14 +42775,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2969
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 8507059173023461586584365e13
   f32.const 0.5
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 9223372036854775808
   f32.const 0
   call $std/math/check<f32>
@@ -43560,14 +42790,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2970
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 8507059173023461586584365e13
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -43575,14 +42805,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2971
+   i32.const 2968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402823466385288598117041e14
   f32.const inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const inf
   f32.const 0
   call $std/math/check<f32>
@@ -43590,14 +42820,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2973
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402823466385288598117041e14
   f32.const -inf
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -43605,14 +42835,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2974
+   i32.const 2971
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -2.465190328815662e-32
   call $std/math/check<f32>
@@ -43620,14 +42850,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2976
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -3
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43635,14 +42865,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2977
+   i32.const 2974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -255
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43650,14 +42880,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2978
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -256
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43665,14 +42895,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2979
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -257
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43680,14 +42910,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2980
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -260
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43695,14 +42925,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2981
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -261
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43710,14 +42940,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2982
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -32767
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43725,14 +42955,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2983
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1701411834604692317316873e14
   f32.const -32768
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43740,14 +42970,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2984
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402822046616616342500112e14
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 2.938737278354183e-39
   f32.const -4.768373855768004e-07
   call $std/math/check<f32>
@@ -43755,14 +42985,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2985
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402822046616616342500112e14
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -6.162981699510909e-33
   call $std/math/check<f32>
@@ -43770,14 +43000,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2986
+   i32.const 2983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1701411834604692317316873e14
   f32.const -32767
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -43785,14 +43015,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2988
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1701411834604692317316873e14
   f32.const -32768
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -0
   call $std/math/check<f32>
@@ -43800,14 +43030,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2989
+   i32.const 2986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -3402822046616616342500112e14
   f32.const -1
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const -2.938737278354183e-39
   f32.const 4.768373855768004e-07
   call $std/math/check<f32>
@@ -43815,14 +43045,14 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2990
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -3402822046616616342500112e14
   f32.const -2
-  call $~lib/math/NativeMathf.pow
+  call $~lib/util/math/pow32
   f32.const 0
   f32.const -6.162981699510909e-33
   call $std/math/check<f32>
@@ -43830,16 +43060,66 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2991
+   i32.const 2988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   call $~lib/bindings/dom/Math.random
   i64.reinterpret_f64
-  call $~lib/math/NativeMath.seedRandom
+  local.tee $0
+  i64.eqz
+  if
+   i64.const -7046029254386353131
+   local.set $0
+  end
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  local.get $0
+  i64.xor
+  i64.const -49064778989728563
+  i64.mul
+  local.tee $0
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  i64.xor
+  i64.const -4265267296055464877
+  i64.mul
+  local.tee $0
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  i64.xor
+  global.set $~lib/math/random_state0_64
+  global.get $~lib/math/random_state0_64
+  i64.const -1
+  i64.xor
+  local.tee $0
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  i64.xor
+  i64.const -49064778989728563
+  i64.mul
+  local.tee $0
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  i64.xor
+  i64.const -4265267296055464877
+  i64.mul
+  local.tee $0
+  local.get $0
+  i64.const 33
+  i64.shr_u
+  i64.xor
+  global.set $~lib/math/random_state1_64
+  i32.const 1
+  global.set $~lib/math/random_seeded
   loop $for-loop|0
-   local.get $1
+   local.get $2
    f64.convert_i32_s
    f64.const 1e6
    f64.lt
@@ -43849,31 +43129,81 @@
     if
      call $~lib/builtins/seed
      i64.reinterpret_f64
-     call $~lib/math/NativeMath.seedRandom
+     local.tee $0
+     i64.eqz
+     if
+      i64.const -7046029254386353131
+      local.set $0
+     end
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     local.get $0
+     i64.xor
+     i64.const -49064778989728563
+     i64.mul
+     local.tee $0
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     i64.xor
+     i64.const -4265267296055464877
+     i64.mul
+     local.tee $0
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     i64.xor
+     global.set $~lib/math/random_state0_64
+     global.get $~lib/math/random_state0_64
+     i64.const -1
+     i64.xor
+     local.tee $0
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     i64.xor
+     i64.const -49064778989728563
+     i64.mul
+     local.tee $0
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     i64.xor
+     i64.const -4265267296055464877
+     i64.mul
+     local.tee $0
+     local.get $0
+     i64.const 33
+     i64.shr_u
+     i64.xor
+     global.set $~lib/math/random_state1_64
+     i32.const 1
+     global.set $~lib/math/random_seeded
     end
     global.get $~lib/math/random_state0_64
-    local.set $6
+    local.set $3
     global.get $~lib/math/random_state1_64
-    local.tee $2
+    local.tee $0
     global.set $~lib/math/random_state0_64
-    local.get $2
-    local.get $6
-    local.get $6
+    local.get $0
+    local.get $3
+    local.get $3
     i64.const 23
     i64.shl
     i64.xor
-    local.tee $6
+    local.tee $3
     i64.const 17
     i64.shr_u
-    local.get $6
+    local.get $3
     i64.xor
     i64.xor
-    local.get $2
+    local.get $0
     i64.const 26
     i64.shr_u
     i64.xor
     global.set $~lib/math/random_state1_64
-    local.get $2
+    local.get $0
     i64.const 12
     i64.shr_u
     i64.const 4607182418800017408
@@ -43881,10 +43211,10 @@
     f64.reinterpret_i64
     f64.const 1
     f64.sub
-    local.tee $0
+    local.tee $1
     f64.const 1
     f64.lt
-    local.get $0
+    local.get $1
     f64.const 0
     f64.ge
     i32.and
@@ -43892,91 +43222,18 @@
     if
      i32.const 0
      i32.const 1056
-     i32.const 3000
+     i32.const 2997
      i32.const 3
      call $~lib/builtins/abort
      unreachable
     end
-    local.get $1
+    local.get $2
     i32.const 1
     i32.add
-    local.set $1
+    local.set $2
     br $for-loop|0
    end
   end
-  call $~lib/bindings/dom/Math.random
-  i64.reinterpret_f64
-  call $~lib/math/NativeMath.seedRandom
-  i32.const 0
-  local.set $1
-  loop $for-loop|1
-   local.get $1
-   f64.convert_i32_s
-   f64.const 1e6
-   f64.lt
-   if
-    global.get $~lib/math/random_seeded
-    i32.eqz
-    if
-     call $~lib/builtins/seed
-     i64.reinterpret_f64
-     call $~lib/math/NativeMath.seedRandom
-    end
-    global.get $~lib/math/random_state0_32
-    local.tee $4
-    global.get $~lib/math/random_state1_32
-    i32.xor
-    local.tee $3
-    local.get $4
-    i32.const 26
-    i32.rotl
-    i32.xor
-    local.get $3
-    i32.const 9
-    i32.shl
-    i32.xor
-    global.set $~lib/math/random_state0_32
-    local.get $3
-    i32.const 13
-    i32.rotl
-    global.set $~lib/math/random_state1_32
-    local.get $4
-    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
-    local.tee $5
-    f32.const 1
-    f32.lt
-    local.get $5
-    f32.const 0
-    f32.ge
-    i32.and
-    i32.eqz
-    if
-     i32.const 0
-     i32.const 1056
-     i32.const 3008
-     i32.const 3
-     call $~lib/builtins/abort
-     unreachable
-    end
-    local.get $1
-    i32.const 1
-    i32.add
-    local.set $1
-    br $for-loop|1
-   end
-  end
   f64.const -8.06684839057968
   f64.const -8
   call $std/math/test_round
@@ -43984,7 +43241,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3022
+   i32.const 3011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43996,7 +43253,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3023
+   i32.const 3012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44008,7 +43265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3024
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44020,7 +43277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3025
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44032,7 +43289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3026
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44044,7 +43301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3027
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44056,7 +43313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3028
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44068,7 +43325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3029
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44080,7 +43337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3030
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44092,7 +43349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3031
+   i32.const 3020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44104,7 +43361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3034
+   i32.const 3023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44116,7 +43373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3035
+   i32.const 3024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44128,7 +43385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3036
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44140,7 +43397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3037
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44152,7 +43409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3038
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44164,7 +43421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3039
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44176,7 +43433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3040
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44188,7 +43445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3041
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44200,7 +43457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3042
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44212,7 +43469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3043
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44224,7 +43481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3044
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44236,7 +43493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3045
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44248,2911 +43505,601 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3046
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.9999923706054688
-  f64.const 1
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3047
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.9999923706054688
-  f64.const -1
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3048
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 7.888609052210118e-31
-  f64.const 0
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3049
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -7.888609052210118e-31
-  f64.const -0
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3050
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.066848754882812
-  f32.const -8
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3065
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 4.345239639282227
-  f32.const 4
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3066
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.381433486938477
-  f32.const -8
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3067
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -6.531673431396484
-  f32.const -7
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3068
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 9.267057418823242
-  f32.const 9
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3069
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.6619858741760254
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3070
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.40660393238067627
-  f32.const -0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3071
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5617597699165344
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3072
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.7741522789001465
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3073
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.6787636876106262
-  f32.const -1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3074
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3077
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const inf
-  f32.const inf
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3078
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -inf
-  f32.const -inf
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3079
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0
-  f32.const 0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3080
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0
-  f32.const -0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3081
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3082
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3083
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3084
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.5
-  f32.const -0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3085
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.5
-  f64.const 2
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3086
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.5
-  f64.const -1
-  call $std/math/test_round
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3087
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1.0000152587890625
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3088
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1.0000152587890625
-  f32.const -1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3089
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.9999923706054688
-  f32.const 1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3090
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.9999923706054688
-  f32.const -1
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3091
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 7.888609052210118e-31
-  f32.const 0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3092
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -7.888609052210118e-31
-  f32.const -0
-  call $std/math/test_roundf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3093
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const 0
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3104
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const -0
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3105
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const 1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3106
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 2
-  f64.const 1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3107
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3108
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -2
-  f64.const -1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3109
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const 1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3110
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const -1
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3111
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  call $std/math/test_sign
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3112
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0
-  f32.const 0
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3120
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0
-  f32.const -0
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3121
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3122
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 2
-  f32.const 1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3123
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3124
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -2
-  f32.const -1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3125
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const inf
-  f32.const 1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3126
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -inf
-  f32.const -1
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3127
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  call $std/math/test_signf
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3128
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -8.06684839057968
-  f64.const 4.535662560676869
-  call $~lib/math/NativeMath.rem
-  f64.const 1.0044767307740567
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3165
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 4.345239849338305
-  f64.const -8.88799136300345
-  call $~lib/math/NativeMath.rem
-  f64.const 4.345239849338305
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3166
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -8.38143342755525
-  f64.const -2.763607337379588
-  call $~lib/math/NativeMath.rem
-  f64.const -0.09061141541648476
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3167
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -6.531673581913484
-  f64.const 4.567535276842744
-  call $~lib/math/NativeMath.rem
-  f64.const -1.9641383050707404
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3168
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 9.267056966972586
-  f64.const 4.811392084359796
-  call $~lib/math/NativeMath.rem
-  f64.const -0.35572720174700656
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3169
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -6.450045556060236
-  f64.const 0.6620717923376739
-  call $~lib/math/NativeMath.rem
-  f64.const 0.17067236731650248
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3170
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 7.858890253041697
-  f64.const 0.05215452675006225
-  call $~lib/math/NativeMath.rem
-  f64.const -0.016443286217702822
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3171
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.792054511984896
-  f64.const 7.67640268511754
-  call $~lib/math/NativeMath.rem
-  f64.const -0.792054511984896
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3172
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.615702673197924
-  f64.const 2.0119025790324803
-  call $~lib/math/NativeMath.rem
-  f64.const 0.615702673197924
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3173
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.5587586823609152
-  f64.const 0.03223983060263804
-  call $~lib/math/NativeMath.rem
-  f64.const -0.0106815621160685
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3174
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3177
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3178
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.5
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const 0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3179
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.5
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const -0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3180
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3181
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3182
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.5
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const -0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3183
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.5
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const 0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3184
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 2
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3185
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -2
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3186
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3187
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3188
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const 1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3189
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3190
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3191
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0.5
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const 0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3192
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0.5
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const -0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3193
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3194
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3195
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.5
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const -0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3196
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.5
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const 0.5
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3197
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 2
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3198
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -2
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3199
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3200
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3201
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const -1
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3202
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3203
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3204
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3205
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const 0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3206
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 0
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3207
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3208
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3209
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3210
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const -0
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3211
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -0
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3212
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3213
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3214
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3215
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3216
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3217
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3218
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3219
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3220
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const -0
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3221
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const 2
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3222
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const -0.5
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3223
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3224
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const 2
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3225
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const -0.5
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3226
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3227
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const nan:0x8000000000000
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3228
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3229
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3230
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const 1
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3231
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const -1
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3232
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3233
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3234
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const 1
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3235
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const -1
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3236
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const inf
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3237
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -inf
-  f64.const -inf
-  call $~lib/math/NativeMath.rem
-  f64.const nan:0x8000000000000
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3238
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.75
-  f64.const 0.5
-  call $~lib/math/NativeMath.rem
-  f64.const -0.25
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3239
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.75
-  f64.const 0.5
-  call $~lib/math/NativeMath.rem
-  f64.const 0.25
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3240
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.75
-  f64.const -0.5
-  call $~lib/math/NativeMath.rem
-  f64.const -0.25
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3241
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const -1.75
-  f64.const -0.5
-  call $~lib/math/NativeMath.rem
-  f64.const 0.25
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3242
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 8e-323
-  f64.const inf
-  call $~lib/math/NativeMath.rem
-  f64.const 8e-323
-  f64.const 0
-  call $std/math/check<f64>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3243
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.066848754882812
-  f32.const 4.535662651062012
-  call $~lib/math/NativeMathf.rem
-  f32.const 1.004476547241211
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3252
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 4.345239639282227
-  f32.const -8.887990951538086
-  call $~lib/math/NativeMathf.rem
-  f32.const 4.345239639282227
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3253
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -8.381433486938477
-  f32.const -2.7636072635650635
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.09061169624328613
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3254
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -6.531673431396484
-  f32.const 4.567535400390625
-  call $~lib/math/NativeMathf.rem
-  f32.const -1.9641380310058594
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3255
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 9.267057418823242
-  f32.const 4.811392307281494
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.3557271957397461
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3256
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -6.450045585632324
-  f32.const 0.6620717644691467
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.17067205905914307
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3257
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 7.858890056610107
-  f32.const 0.052154526114463806
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.016443386673927307
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3258
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.7920545339584351
-  f32.const 7.676402568817139
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.7920545339584351
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3259
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.6157026886940002
-  f32.const 2.0119025707244873
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.6157026886940002
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3260
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.5587586760520935
-  f32.const 0.03223983198404312
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.010681532323360443
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3261
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3264
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3265
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3266
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.5
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3267
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3268
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3269
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1.5
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3270
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1.5
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3271
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 2
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3272
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -2
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3273
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const inf
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3274
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -inf
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3275
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const nan:0x400000
-  f32.const 1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3276
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3277
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3278
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0.5
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3279
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -0.5
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.5
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3280
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 3281
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 0.9999923706054688
+  f64.const 1
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3282
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.5
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.5
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -0.9999923706054688
+  f64.const -1
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3283
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.5
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.5
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 7.888609052210118e-31
+  f64.const 0
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3284
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 2
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -7.888609052210118e-31
+  f64.const -0
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3285
+   i32.const 3039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -2
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -8.066848754882812
+  f32.const -8
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3286
+   i32.const 3054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 4.345239639282227
+  f32.const 4
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3287
+   i32.const 3055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -8.381433486938477
+  f32.const -8
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3288
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -1
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -6.531673431396484
+  f32.const -7
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3289
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 9.267057418823242
+  f32.const 9
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3290
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 0.6619858741760254
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3291
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0.40660393238067627
+  f32.const -0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3292
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 0.5617597699165344
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3293
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 0
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 0.7741522789001465
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3294
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0.6787636876106262
+  f32.const -1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3295
+   i32.const 3063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
   f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const nan:0x400000
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3296
+   i32.const 3066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
   f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const inf
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3297
+   i32.const 3067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
   f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const -0
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -inf
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3298
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -0
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
   f32.const 0
-  call $std/math/check<f32>
+  f32.const 0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3299
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0
+  f32.const -0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3300
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 1
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3301
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -1
+  f32.const -1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3302
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 0.5
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3303
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const 0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0.5
+  f32.const -0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3304
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 1.5
+  f64.const 2
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3305
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -1.5
+  f64.const -1
+  call $std/math/test_round
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3306
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 1.0000152587890625
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3307
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const -0
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -1.0000152587890625
+  f32.const -1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3308
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const 2
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 0.9999923706054688
+  f32.const 1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3309
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0.9999923706054688
+  f32.const -1
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3310
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
+  f32.const 7.888609052210118e-31
   f32.const 0
-  call $std/math/check<f32>
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3311
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const 2
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -7.888609052210118e-31
+  f32.const -0
+  call $std/math/test_roundf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3312
+   i32.const 3082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const -0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 0
+  f64.const 0
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3313
+   i32.const 3093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -0
+  f64.const -0
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3314
+   i32.const 3094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const nan:0x400000
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 1
+  f64.const 1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3315
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const 2
+  f64.const 1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3316
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const nan:0x400000
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -1
+  f64.const -1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3317
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -2
+  f64.const -1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3318
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const inf
+  f64.const 1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3319
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const -inf
+  f64.const -1
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3320
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f64.const nan:0x8000000000000
+  f64.const nan:0x8000000000000
+  call $std/math/test_sign
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3321
+   i32.const 3101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const 1
   f32.const 0
-  call $std/math/check<f32>
+  f32.const 0
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3322
+   i32.const 3109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -0
+  f32.const -0
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3323
+   i32.const 3110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 1
+  f32.const 1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3324
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -inf
-  f32.const -inf
-  call $~lib/math/NativeMathf.rem
-  f32.const nan:0x400000
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const 2
+  f32.const 1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3325
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.75
-  f32.const 0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.25
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -1
+  f32.const -1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3326
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.75
-  f32.const 0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.25
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -2
+  f32.const -1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3327
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1.75
-  f32.const -0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const -0.25
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const inf
+  f32.const 1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3328
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1.75
-  f32.const -0.5
-  call $~lib/math/NativeMathf.rem
-  f32.const 0.25
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const -inf
+  f32.const -1
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3329
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 5.877471754111438e-39
-  f32.const inf
-  call $~lib/math/NativeMathf.rem
-  f32.const 5.877471754111438e-39
-  f32.const 0
-  call $std/math/check<f32>
+  f32.const nan:0x400000
+  f32.const nan:0x400000
+  call $std/math/test_signf
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 3330
+   i32.const 3117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.9774292928781227
   f64.const -0.14564912021160126
   call $std/math/check<f64>
@@ -47169,13 +44116,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3342
+   i32.const 3155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.9333544736965718
   f64.const -0.08813747018575668
   call $std/math/check<f64>
@@ -47192,13 +44139,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3343
+   i32.const 3156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.8640924711706304
   f64.const -0.11743883043527603
   call $std/math/check<f64>
@@ -47215,13 +44162,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3344
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.24593894772615374
   f64.const -0.12697851657867432
   call $std/math/check<f64>
@@ -47238,13 +44185,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3345
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.15706789772028007
   f64.const -0.029550159350037575
   call $std/math/check<f64>
@@ -47261,13 +44208,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3346
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.6146844860113447
   f64.const -0.09976737946271896
   call $std/math/check<f64>
@@ -47284,13 +44231,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3347
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.39549242182823696
   f64.const -0.3668774962425232
   call $std/math/check<f64>
@@ -47307,13 +44254,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3348
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.5326763286672376
   f64.const -0.3550407588481903
   call $std/math/check<f64>
@@ -47330,13 +44277,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3349
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.6991102068649779
   f64.const -0.427672415971756
   call $std/math/check<f64>
@@ -47353,13 +44300,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3350
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.6278312326301215
   f64.const -0.3828115463256836
   call $std/math/check<f64>
@@ -47376,13 +44323,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3351
+   i32.const 3164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.313225746154785e-10
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 9.313225746154785e-10
   f64.const 6.510416860692203e-04
   call $std/math/check<f64>
@@ -47399,13 +44346,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3354
+   i32.const 3167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -9.313225746154785e-10
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -9.313225746154785e-10
   f64.const -6.510416860692203e-04
   call $std/math/check<f64>
@@ -47422,13 +44369,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3355
+   i32.const 3168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072014e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.2250738585072014e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47445,13 +44392,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3356
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072014e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.2250738585072014e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47468,13 +44415,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3357
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -47491,13 +44438,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3358
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5e-324
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -47514,13 +44461,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3359
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -47537,13 +44484,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3360
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -47560,13 +44507,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3361
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507202e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.225073858507202e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47583,13 +44530,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3362
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072024e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.2250738585072024e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47606,13 +44553,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3363
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4501477170144003e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 4.4501477170144003e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47629,13 +44576,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3364
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014403e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 4.450147717014403e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47652,13 +44599,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3365
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014406e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 4.450147717014406e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47675,13 +44622,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3366
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.900295434028806e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 8.900295434028806e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47698,13 +44645,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3367
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1175870895385742e-08
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1.1175870895385742e-08
   f64.const 0.140625
   call $std/math/check<f64>
@@ -47721,13 +44668,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3368
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.4901161193847656e-08
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1.4901161193847656e-08
   f64.const 0.1666666716337204
   call $std/math/check<f64>
@@ -47744,13 +44691,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3369
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507202e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.225073858507202e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47767,13 +44714,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3370
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072024e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.2250738585072024e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47790,13 +44737,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3371
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4501477170144003e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -4.4501477170144003e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47813,13 +44760,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3372
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014403e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -4.450147717014403e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47836,13 +44783,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3373
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014406e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -4.450147717014406e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47859,13 +44806,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3374
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.900295434028806e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -8.900295434028806e-308
   f64.const 0
   call $std/math/check<f64>
@@ -47882,13 +44829,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3375
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.1175870895385742e-08
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1.1175870895385742e-08
   f64.const -0.140625
   call $std/math/check<f64>
@@ -47905,13 +44852,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3376
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.4901161193847656e-08
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1.4901161193847656e-08
   f64.const -0.1666666716337204
   call $std/math/check<f64>
@@ -47928,13 +44875,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3377
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.4901161193847656e-08
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1.4901161193847656e-08
   f64.const -0.1666666716337204
   call $std/math/check<f64>
@@ -47951,13 +44898,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3378
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1e-323
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1e-323
   f64.const 0
   call $std/math/check<f64>
@@ -47974,13 +44921,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3379
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4e-323
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 4.4e-323
   f64.const 0
   call $std/math/check<f64>
@@ -47997,13 +44944,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3380
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.562684646268003e-309
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 5.562684646268003e-309
   f64.const 0
   call $std/math/check<f64>
@@ -48020,13 +44967,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3381
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1125369292536007e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1.1125369292536007e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48043,13 +44990,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3382
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072004e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.2250738585072004e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48066,13 +45013,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3383
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507201e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48089,13 +45036,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3384
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1e-323
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1e-323
   f64.const 0
   call $std/math/check<f64>
@@ -48112,13 +45059,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3385
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4e-323
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -4.4e-323
   f64.const 0
   call $std/math/check<f64>
@@ -48135,13 +45082,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3386
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5.562684646268003e-309
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -5.562684646268003e-309
   f64.const 0
   call $std/math/check<f64>
@@ -48158,13 +45105,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3387
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.1125369292536007e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1.1125369292536007e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48181,13 +45128,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3388
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072004e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.2250738585072004e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48204,13 +45151,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3389
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507201e-308
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -48227,13 +45174,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3390
+   i32.const 3203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -48250,13 +45197,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3393
+   i32.const 3206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -48273,13 +45220,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3394
+   i32.const 3207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -48296,13 +45243,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3395
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -48319,13 +45266,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3396
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -48342,243 +45289,243 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3397
+   i32.const 3210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1.5707963267948966
   call $~lib/bindings/dom/Math.sin
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3400
+   i32.const 3213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592653589793
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 3.141592653589793
   call $~lib/bindings/dom/Math.sin
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3401
+   i32.const 3214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 2.3283064365386963e-10
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3404
+   i32.const 3217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -2.3283064365386963e-10
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3405
+   i32.const 3218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.3826834323650898
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3407
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.39269908169872414
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.3826834323650898
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3408
+   i32.const 3221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.479425538604203
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3411
+   i32.const 3224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.5
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.479425538604203
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3412
+   i32.const 3225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3413
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.5707963267948966
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3414
+   i32.const 3227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.141592653589793
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 1.2246467991473532e-16
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3416
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 6911.503837897545
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -7.047032979958965e-14
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3417
+   i32.const 3230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.497787143782138
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.7071067811865477
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3419
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.0685834705770345
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.7071067811865474
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3420
+   i32.const 3233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.63937979737193
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.7071067811865483
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3421
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 10.210176124166829
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.7071067811865479
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3422
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 823549.6645826427
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -3.2103381051568376e-11
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3423
+   i32.const 3236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1329227995784915872903807e12
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const 0.377820109360752
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3426
+   i32.const 3239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1329227995784915872903807e12
-  call $~lib/math/NativeMath.sin
+  call $~lib/util/math/sin64
   f64.const -0.377820109360752
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3427
+   i32.const 3240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.977429211139679
   f32.const 0.0801057294011116
   call $std/math/check<f32>
@@ -48586,13 +45533,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3436
+   i32.const 3249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.933354377746582
   f32.const 0.34475627541542053
   call $std/math/check<f32>
@@ -48600,13 +45547,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3437
+   i32.const 3250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.8640924692153931
   f32.const -0.468659907579422
   call $std/math/check<f32>
@@ -48614,13 +45561,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3438
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.24593880772590637
   f32.const -0.3955177664756775
   call $std/math/check<f32>
@@ -48628,13 +45575,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3439
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.1570674479007721
   f32.const -0.24006809294223785
   call $std/math/check<f32>
@@ -48642,13 +45589,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3440
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.6146844625473022
   f32.const -0.07707194238901138
   call $std/math/check<f32>
@@ -48656,13 +45603,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3441
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.39549243450164795
   f32.const -0.11720617115497589
   call $std/math/check<f32>
@@ -48670,13 +45617,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3442
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.5326763391494751
   f32.const -0.16059114038944244
   call $std/math/check<f32>
@@ -48684,13 +45631,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3443
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.699110209941864
   f32.const 0.26384368538856506
   call $std/math/check<f32>
@@ -48698,13 +45645,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3444
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.627831220626831
   f32.const 0.005127954296767712
   call $std/math/check<f32>
@@ -48712,13 +45659,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3445
+   i32.const 3258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -48726,13 +45673,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3448
+   i32.const 3261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -48740,13 +45687,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3449
+   i32.const 3262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -48754,13 +45701,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3450
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -48768,13 +45715,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3451
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -48782,13 +45729,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3452
+   i32.const 3265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.862645149230957e-09
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.862645149230957e-09
   f32.const 4.850638554015907e-12
   call $std/math/check<f32>
@@ -48796,13 +45743,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3455
+   i32.const 3268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.862645149230957e-09
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.862645149230957e-09
   f32.const -4.850638554015907e-12
   call $std/math/check<f32>
@@ -48810,13 +45757,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3456
+   i32.const 3269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48824,13 +45771,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3457
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754943508222875e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48838,13 +45785,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3458
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.401298464324817e-45
   f32.const 0
   call $std/math/check<f32>
@@ -48852,13 +45799,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3459
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.401298464324817e-45
   f32.const 0
   call $std/math/check<f32>
@@ -48866,13 +45813,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3460
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.175494490952134e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.175494490952134e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48880,13 +45827,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3461
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754946310819804e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.1754946310819804e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48894,13 +45841,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3462
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509880009953429e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 2.3509880009953429e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48908,13 +45855,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3463
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.350988701644575e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 2.350988701644575e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48922,13 +45869,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3464
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509895424236536e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 2.3509895424236536e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48936,13 +45883,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3465
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.70197740328915e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 4.70197740328915e-38
   f32.const 0
   call $std/math/check<f32>
@@ -48950,13 +45897,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3466
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1175870895385742e-08
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.1175870895385742e-08
   f32.const 2.6193447411060333e-10
   call $std/math/check<f32>
@@ -48964,13 +45911,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3467
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.4901161193847656e-08
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.4901161193847656e-08
   f32.const 3.1044086745701804e-10
   call $std/math/check<f32>
@@ -48978,13 +45925,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3468
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.000244140625
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.000244140625
   f32.const 0.0833333358168602
   call $std/math/check<f32>
@@ -48992,13 +45939,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3469
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.0003662109375
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.0003662109375
   f32.const 0.28125
   call $std/math/check<f32>
@@ -49006,13 +45953,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3470
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.175494490952134e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.175494490952134e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49020,13 +45967,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3471
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754946310819804e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.1754946310819804e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49034,13 +45981,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3472
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509880009953429e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -2.3509880009953429e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49048,13 +45995,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3473
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.350988701644575e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -2.350988701644575e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49062,13 +46009,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3474
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509895424236536e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -2.3509895424236536e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49076,13 +46023,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3475
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -4.70197740328915e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -4.70197740328915e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49090,13 +46037,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3476
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1175870895385742e-08
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.1175870895385742e-08
   f32.const -2.6193447411060333e-10
   call $std/math/check<f32>
@@ -49104,13 +46051,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3477
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.4901161193847656e-08
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.4901161193847656e-08
   f32.const -3.1044086745701804e-10
   call $std/math/check<f32>
@@ -49118,13 +46065,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3478
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.000244140625
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.000244140625
   f32.const -0.0833333358168602
   call $std/math/check<f32>
@@ -49132,13 +46079,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3479
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.0003662109375
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.0003662109375
   f32.const -0.28125
   call $std/math/check<f32>
@@ -49146,13 +46093,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3480
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.802596928649634e-45
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 2.802596928649634e-45
   f32.const 0
   call $std/math/check<f32>
@@ -49160,13 +46107,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3481
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.2611686178923354e-44
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.2611686178923354e-44
   f32.const 0
   call $std/math/check<f32>
@@ -49174,13 +46121,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3482
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.938735877055719e-39
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 2.938735877055719e-39
   f32.const 0
   call $std/math/check<f32>
@@ -49188,13 +46135,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3483
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.877471754111438e-39
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 5.877471754111438e-39
   f32.const 0
   call $std/math/check<f32>
@@ -49202,13 +46149,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3484
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754940705625946e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.1754940705625946e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49216,13 +46163,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3485
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754942106924411e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 1.1754942106924411e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49230,13 +46177,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3486
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.802596928649634e-45
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -2.802596928649634e-45
   f32.const 0
   call $std/math/check<f32>
@@ -49244,13 +46191,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3487
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.2611686178923354e-44
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.2611686178923354e-44
   f32.const 0
   call $std/math/check<f32>
@@ -49258,13 +46205,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3488
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.938735877055719e-39
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -2.938735877055719e-39
   f32.const 0
   call $std/math/check<f32>
@@ -49272,13 +46219,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3489
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -5.877471754111438e-39
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -5.877471754111438e-39
   f32.const 0
   call $std/math/check<f32>
@@ -49286,13 +46233,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3490
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754940705625946e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.1754940705625946e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49300,13 +46247,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3491
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754942106924411e-38
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -1.1754942106924411e-38
   f32.const 0
   call $std/math/check<f32>
@@ -49314,13 +46261,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3492
+   i32.const 3305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 255.99993896484375
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.9992055892944336
   f32.const 0
   call $std/math/check<f32>
@@ -49328,13 +46275,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3495
+   i32.const 3308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5033165
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.5312945246696472
   f32.const 0
   call $std/math/check<f32>
@@ -49342,13 +46289,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3496
+   i32.const 3309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 421657440
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.7397398948669434
   f32.const 0
   call $std/math/check<f32>
@@ -49356,13 +46303,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3497
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2147483392
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.2762770354747772
   f32.const 0
   call $std/math/check<f32>
@@ -49370,13 +46317,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3498
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 68719476736
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.9855440855026245
   f32.const 0
   call $std/math/check<f32>
@@ -49384,13 +46331,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3499
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 549755813888
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.9782648086547852
   f32.const 0
   call $std/math/check<f32>
@@ -49398,13 +46345,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3500
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 3402823466385288598117041e14
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.5218765139579773
   f32.const 0
   call $std/math/check<f32>
@@ -49412,13 +46359,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3501
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -255.99993896484375
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.9992055892944336
   f32.const 0
   call $std/math/check<f32>
@@ -49426,13 +46373,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3502
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -5033165
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.5312945246696472
   f32.const 0
   call $std/math/check<f32>
@@ -49440,13 +46387,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3503
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -421657440
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.7397398948669434
   f32.const 0
   call $std/math/check<f32>
@@ -49454,13 +46401,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3504
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2147483392
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.2762770354747772
   f32.const 0
   call $std/math/check<f32>
@@ -49468,13 +46415,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3505
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -68719476736
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const -0.9855440855026245
   f32.const 0
   call $std/math/check<f32>
@@ -49482,13 +46429,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3506
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -549755813888
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.9782648086547852
   f32.const 0
   call $std/math/check<f32>
@@ -49496,13 +46443,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3507
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -3402823466385288598117041e14
-  call $~lib/math/NativeMathf.sin
+  call $~lib/util/math/sin32
   f32.const 0.5218765139579773
   f32.const 0
   call $std/math/check<f32>
@@ -49510,7 +46457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3508
+   i32.const 3321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49523,7 +46470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3520
+   i32.const 3333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49536,7 +46483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3521
+   i32.const 3334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49549,7 +46496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3522
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49562,7 +46509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3523
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49575,7 +46522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3524
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49588,7 +46535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3525
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49601,7 +46548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3526
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49614,7 +46561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3527
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49627,7 +46574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3528
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49640,7 +46587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3529
+   i32.const 3342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49653,7 +46600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3532
+   i32.const 3345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49666,7 +46613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3533
+   i32.const 3346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49679,7 +46626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3534
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49692,7 +46639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3535
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49705,7 +46652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3536
+   i32.const 3349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49718,7 +46665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3545
+   i32.const 3358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49731,7 +46678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3546
+   i32.const 3359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49744,7 +46691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3547
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49757,7 +46704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3548
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49770,7 +46717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3549
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49783,7 +46730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3550
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49796,7 +46743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3551
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49809,7 +46756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3552
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49822,7 +46769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3553
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49835,7 +46782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3554
+   i32.const 3367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49848,7 +46795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3557
+   i32.const 3370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49861,7 +46808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3558
+   i32.const 3371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49874,7 +46821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3559
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49887,7 +46834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3560
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49900,7 +46847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3561
+   i32.const 3374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49922,7 +46869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3573
+   i32.const 3386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49944,7 +46891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3574
+   i32.const 3387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49966,7 +46913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3575
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49988,7 +46935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3576
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50010,7 +46957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3577
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50032,7 +46979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3578
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50054,7 +47001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3579
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50076,7 +47023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3580
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50098,7 +47045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3581
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50120,7 +47067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3582
+   i32.const 3395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50142,7 +47089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3585
+   i32.const 3398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50164,7 +47111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3586
+   i32.const 3399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50186,7 +47133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3587
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50208,7 +47155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3588
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50230,7 +47177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3589
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50252,7 +47199,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3590
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50274,7 +47221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3591
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50296,7 +47243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3592
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50318,7 +47265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3593
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50340,7 +47287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3594
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50362,7 +47309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3595
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50384,7 +47331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3596
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50406,7 +47353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3597
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50428,7 +47375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3598
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50450,7 +47397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3599
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50472,7 +47419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3600
+   i32.const 3413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50494,7 +47441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3601
+   i32.const 3414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50516,7 +47463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3602
+   i32.const 3415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50538,7 +47485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3603
+   i32.const 3416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50560,7 +47507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3604
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50582,7 +47529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3605
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50604,7 +47551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3606
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50626,7 +47573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3607
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50648,7 +47595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3608
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50670,7 +47617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3609
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50692,7 +47639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3610
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50714,7 +47661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3611
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50736,7 +47683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3612
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50758,7 +47705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3613
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50780,7 +47727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3614
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50802,7 +47749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3615
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50824,7 +47771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3616
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50846,7 +47793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3617
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50868,7 +47815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3618
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50890,7 +47837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3619
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50912,7 +47859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3620
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50934,7 +47881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3621
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50956,7 +47903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3622
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50978,7 +47925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3623
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51000,7 +47947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3624
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51022,7 +47969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3625
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51044,7 +47991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3626
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51066,7 +48013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3627
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51088,7 +48035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3628
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51110,7 +48057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3629
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51132,7 +48079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3630
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51154,7 +48101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3631
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51176,7 +48123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3632
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51198,7 +48145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3633
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51220,7 +48167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3634
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51242,7 +48189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3635
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51264,7 +48211,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3636
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51286,7 +48233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3637
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51308,7 +48255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3638
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51330,7 +48277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3639
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51352,7 +48299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3640
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51374,7 +48321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3641
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51396,7 +48343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3642
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51418,7 +48365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3643
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51440,7 +48387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3644
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51462,7 +48409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3645
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51484,7 +48431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3646
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51506,7 +48453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3647
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51528,7 +48475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3648
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51550,7 +48497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3649
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51572,7 +48519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3650
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51594,7 +48541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3651
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51616,7 +48563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3652
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51638,7 +48585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3653
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51660,7 +48607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3654
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51682,7 +48629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3655
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51704,7 +48651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3656
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51726,7 +48673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3657
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51748,7 +48695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3658
+   i32.const 3471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51761,7 +48708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3667
+   i32.const 3480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51774,7 +48721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3668
+   i32.const 3481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51787,7 +48734,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3669
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51800,7 +48747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3670
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51813,7 +48760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3671
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51826,7 +48773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3672
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51839,7 +48786,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3673
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51852,7 +48799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3674
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51865,7 +48812,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3675
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51878,7 +48825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3676
+   i32.const 3489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51891,7 +48838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3679
+   i32.const 3492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51904,7 +48851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3680
+   i32.const 3493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51917,7 +48864,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3681
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51930,7 +48877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3682
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51943,7 +48890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3683
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51956,7 +48903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3684
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51969,7 +48916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3685
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51982,7 +48929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3686
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51995,7 +48942,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3687
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52008,7 +48955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3688
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52021,7 +48968,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3689
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52034,7 +48981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3690
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52047,7 +48994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3691
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52060,7 +49007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3692
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52073,7 +49020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3693
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52086,7 +49033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3694
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52099,7 +49046,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3695
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52112,7 +49059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3696
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52125,7 +49072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3697
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52138,7 +49085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3698
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52151,7 +49098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3699
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52164,13 +49111,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3700
+   i32.const 3513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.06684839057968
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 4.626603542401633
   f64.const -0.2727603316307068
   call $std/math/check<f64>
@@ -52187,13 +49134,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3712
+   i32.const 3525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.345239849338305
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.600191705822202
   f64.const 0.2651003301143646
   call $std/math/check<f64>
@@ -52210,13 +49157,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3713
+   i32.const 3526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.38143342755525
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.7167408328741052
   f64.const -0.24687519669532776
   call $std/math/check<f64>
@@ -52233,13 +49180,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3714
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -6.531673581913484
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.2537322523453725
   f64.const -0.4679703712463379
   call $std/math/check<f64>
@@ -52256,13 +49203,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3715
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.267056966972586
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.15904195727191958
   f64.const -0.06704077869653702
   call $std/math/check<f64>
@@ -52279,13 +49226,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3716
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6619858980995045
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.7792919106910434
   f64.const -0.038056135177612305
   call $std/math/check<f64>
@@ -52302,13 +49249,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3717
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.4066039223853553
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.43059952879543656
   f64.const -0.09242714196443558
   call $std/math/check<f64>
@@ -52325,13 +49272,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3718
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5617597462207241
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.62940368731874
   f64.const -0.321913480758667
   call $std/math/check<f64>
@@ -52348,13 +49295,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3719
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7741522965913037
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.9777574652949645
   f64.const -0.1966651827096939
   call $std/math/check<f64>
@@ -52371,13 +49318,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3720
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6787637026394024
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.8066186630209123
   f64.const -0.067665696144104
   call $std/math/check<f64>
@@ -52394,13 +49341,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3721
+   i32.const 3534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 9.313225746154785e-10
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 9.313225746154785e-10
   f64.const -1.3020833721384406e-03
   call $std/math/check<f64>
@@ -52417,13 +49364,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3724
+   i32.const 3537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -9.313225746154785e-10
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -9.313225746154785e-10
   f64.const 1.3020833721384406e-03
   call $std/math/check<f64>
@@ -52440,13 +49387,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3725
+   i32.const 3538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072014e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.2250738585072014e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52463,13 +49410,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3726
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072014e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.2250738585072014e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52486,13 +49433,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3727
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5e-324
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -52509,13 +49456,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3728
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5e-324
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -5e-324
   f64.const 0
   call $std/math/check<f64>
@@ -52532,13 +49479,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3729
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -52555,13 +49502,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3730
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -52578,13 +49525,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3731
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.7853981633974483
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.9999999999999999
   f64.const -0.4484681189060211
   call $std/math/check<f64>
@@ -52601,13 +49548,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3732
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.7853981633974483
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.9999999999999999
   f64.const 0.4484681189060211
   call $std/math/check<f64>
@@ -52624,13 +49571,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3733
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507202e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.225073858507202e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52647,13 +49594,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3734
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072024e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.2250738585072024e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52670,13 +49617,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3735
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4501477170144003e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 4.4501477170144003e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52693,13 +49640,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3736
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014403e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 4.450147717014403e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52716,13 +49663,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3737
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.450147717014406e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 4.450147717014406e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52739,13 +49686,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3738
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 8.900295434028806e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 8.900295434028806e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52762,13 +49709,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3739
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1175870895385742e-08
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.1175870895385742e-08
   f64.const -0.28125
   call $std/math/check<f64>
@@ -52785,13 +49732,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3740
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.4901161193847656e-08
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.4901161193847656e-08
   f64.const -0.3333333432674408
   call $std/math/check<f64>
@@ -52808,13 +49755,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3741
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507202e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.225073858507202e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52831,13 +49778,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3742
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072024e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.2250738585072024e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52854,13 +49801,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3743
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4501477170144003e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -4.4501477170144003e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52877,13 +49824,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3744
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014403e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -4.450147717014403e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52900,13 +49847,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3745
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.450147717014406e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -4.450147717014406e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52923,13 +49870,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3746
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -8.900295434028806e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -8.900295434028806e-308
   f64.const 0
   call $std/math/check<f64>
@@ -52946,13 +49893,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3747
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.1175870895385742e-08
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -1.1175870895385742e-08
   f64.const 0.28125
   call $std/math/check<f64>
@@ -52969,13 +49916,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3748
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.4901161193847656e-08
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -1.4901161193847656e-08
   f64.const 0.3333333432674408
   call $std/math/check<f64>
@@ -52992,13 +49939,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3749
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1e-323
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1e-323
   f64.const 0
   call $std/math/check<f64>
@@ -53015,13 +49962,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3750
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4.4e-323
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 4.4e-323
   f64.const 0
   call $std/math/check<f64>
@@ -53038,13 +49985,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3751
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.562684646268003e-309
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 5.562684646268003e-309
   f64.const 0
   call $std/math/check<f64>
@@ -53061,13 +50008,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3752
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.1125369292536007e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.1125369292536007e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53084,13 +50031,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3753
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.2250738585072004e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.2250738585072004e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53107,13 +50054,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3754
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.225073858507201e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53130,13 +50077,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3755
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1e-323
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -1e-323
   f64.const 0
   call $std/math/check<f64>
@@ -53153,13 +50100,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3756
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -4.4e-323
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -4.4e-323
   f64.const 0
   call $std/math/check<f64>
@@ -53176,13 +50123,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3757
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -5.562684646268003e-309
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -5.562684646268003e-309
   f64.const 0
   call $std/math/check<f64>
@@ -53199,13 +50146,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3758
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.1125369292536007e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -1.1125369292536007e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53222,13 +50169,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3759
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.2250738585072004e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.2250738585072004e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53245,13 +50192,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3760
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.225073858507201e-308
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.225073858507201e-308
   f64.const 0
   call $std/math/check<f64>
@@ -53268,221 +50215,221 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3761
+   i32.const 3574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 2.3283064365386963e-10
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 2.3283064365386963e-10
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3764
+   i32.const 3577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2.3283064365386963e-10
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -2.3283064365386963e-10
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3765
+   i32.const 3578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6875
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.6875
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3766
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0.6875
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0.6875
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3767
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.39269908169872414
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.39269908169872414
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3768
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.6743358
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.6743358
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3769
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 3.725290298461914e-09
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 3.725290298461914e-09
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3770
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.5707963267948966
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.5707963267948966
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3771
+   i32.const 3584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0.5
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0.5
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3773
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.107148717794091
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1.107148717794091
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3774
+   i32.const 3587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 5.497787143782138
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 5.497787143782138
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3775
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 7.0685834705770345
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 7.0685834705770345
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3776
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1647099.3291652855
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1647099.3291652855
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3777
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1647097.7583689587
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1647097.7583689587
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3778
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1329227995784915872903807e12
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 1329227995784915872903807e12
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3779
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1329227995784915872903807e12
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -1329227995784915872903807e12
   call $~lib/bindings/dom/Math.tan
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 3780
+   i32.const 3593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const 0
   f64.const 0
   call $std/math/check<f64>
@@ -53499,13 +50446,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3783
+   i32.const 3596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -0
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const -0
   f64.const 0
   call $std/math/check<f64>
@@ -53522,13 +50469,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3784
+   i32.const 3597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const inf
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -53545,13 +50492,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3785
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -inf
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -53568,13 +50515,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3786
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
-  call $~lib/math/NativeMath.tan
+  call $~lib/util/math/tan64
   f64.const nan:0x8000000000000
   f64.const 0
   call $std/math/check<f64>
@@ -53591,13 +50538,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3787
+   i32.const 3600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.066848754882812
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 4.626595497131348
   f32.const 0.2455666959285736
   call $std/math/check<f32>
@@ -53605,13 +50552,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3796
+   i32.const 3609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.345239639282227
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.6001901626586914
   f32.const 0.3652407228946686
   call $std/math/check<f32>
@@ -53619,13 +50566,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3797
+   i32.const 3610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -8.381433486938477
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.716740608215332
   f32.const 0.08169349282979965
   call $std/math/check<f32>
@@ -53633,13 +50580,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3798
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -6.531673431396484
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0.2537320852279663
   f32.const 0.23186513781547546
   call $std/math/check<f32>
@@ -53647,13 +50594,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3799
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 9.267057418823242
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0.15904149413108826
   f32.const -0.009332014247775078
   call $std/math/check<f32>
@@ -53661,13 +50608,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3800
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.6619858741760254
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 0.7792918682098389
   f32.const -0.06759700924158096
   call $std/math/check<f32>
@@ -53675,13 +50622,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3801
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.40660393238067627
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0.43059954047203064
   f32.const 0.005771996453404427
   call $std/math/check<f32>
@@ -53689,13 +50636,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3802
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.5617597699165344
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 0.6294037103652954
   f32.const -0.16838163137435913
   call $std/math/check<f32>
@@ -53703,13 +50650,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3803
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.7741522789001465
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 0.977757453918457
   f32.const 0.38969388604164124
   call $std/math/check<f32>
@@ -53717,13 +50664,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3804
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.6787636876106262
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0.8066186308860779
   f32.const 0.12294059991836548
   call $std/math/check<f32>
@@ -53731,13 +50678,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3805
+   i32.const 3618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 0
   f32.const 0
   call $std/math/check<f32>
@@ -53745,13 +50692,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3808
+   i32.const 3621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0
   f32.const 0
   call $std/math/check<f32>
@@ -53759,13 +50706,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3809
+   i32.const 3622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const inf
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -53773,13 +50720,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3810
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -inf
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -53787,13 +50734,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3811
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const nan:0x400000
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const nan:0x400000
   f32.const 0
   call $std/math/check<f32>
@@ -53801,13 +50748,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3812
+   i32.const 3625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.862645149230957e-09
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.862645149230957e-09
   f32.const -9.701277108031814e-12
   call $std/math/check<f32>
@@ -53815,13 +50762,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3815
+   i32.const 3628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.862645149230957e-09
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.862645149230957e-09
   f32.const 9.701277108031814e-12
   call $std/math/check<f32>
@@ -53829,13 +50776,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3816
+   i32.const 3629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754943508222875e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53843,13 +50790,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3817
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754943508222875e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.1754943508222875e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53857,13 +50804,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3818
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.401298464324817e-45
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.401298464324817e-45
   f32.const 0
   call $std/math/check<f32>
@@ -53871,13 +50818,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3819
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.401298464324817e-45
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.401298464324817e-45
   f32.const 0
   call $std/math/check<f32>
@@ -53885,13 +50832,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3820
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.175494490952134e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.175494490952134e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53899,13 +50846,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3821
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754946310819804e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.1754946310819804e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53913,13 +50860,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3822
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509880009953429e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.3509880009953429e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53927,13 +50874,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3823
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.350988701644575e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.350988701644575e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53941,13 +50888,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3824
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.3509895424236536e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.3509895424236536e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53955,13 +50902,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3825
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 4.70197740328915e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 4.70197740328915e-38
   f32.const 0
   call $std/math/check<f32>
@@ -53969,13 +50916,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3826
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1175870895385742e-08
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.1175870895385742e-08
   f32.const -5.238689482212067e-10
   call $std/math/check<f32>
@@ -53983,13 +50930,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3827
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.4901161193847656e-08
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.4901161193847656e-08
   f32.const -6.208817349140361e-10
   call $std/math/check<f32>
@@ -53997,13 +50944,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3828
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 0.000244140625
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 0.000244140625
   f32.const -0.1666666716337204
   call $std/math/check<f32>
@@ -54011,13 +50958,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3829
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.175494490952134e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.175494490952134e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54025,13 +50972,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3830
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754946310819804e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.1754946310819804e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54039,13 +50986,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3831
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509880009953429e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -2.3509880009953429e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54053,13 +51000,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3832
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.350988701644575e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.350988701644575e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54067,13 +51014,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3833
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.3509895424236536e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -2.3509895424236536e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54081,13 +51028,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3834
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -4.70197740328915e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -4.70197740328915e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54095,13 +51042,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3835
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1175870895385742e-08
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.1175870895385742e-08
   f32.const 5.238689482212067e-10
   call $std/math/check<f32>
@@ -54109,13 +51056,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3836
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.4901161193847656e-08
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.4901161193847656e-08
   f32.const 6.208817349140361e-10
   call $std/math/check<f32>
@@ -54123,13 +51070,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3837
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -0.000244140625
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -0.000244140625
   f32.const 0.1666666716337204
   call $std/math/check<f32>
@@ -54137,13 +51084,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3838
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.802596928649634e-45
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.802596928649634e-45
   f32.const 0
   call $std/math/check<f32>
@@ -54151,13 +51098,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3839
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.2611686178923354e-44
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.2611686178923354e-44
   f32.const 0
   call $std/math/check<f32>
@@ -54165,13 +51112,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3840
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 2.938735877055719e-39
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 2.938735877055719e-39
   f32.const 0
   call $std/math/check<f32>
@@ -54179,13 +51126,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3841
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 5.877471754111438e-39
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 5.877471754111438e-39
   f32.const 0
   call $std/math/check<f32>
@@ -54193,13 +51140,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3842
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754940705625946e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.1754940705625946e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54207,13 +51154,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3843
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const 1.1754942106924411e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const 1.1754942106924411e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54221,13 +51168,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3844
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.802596928649634e-45
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -2.802596928649634e-45
   f32.const 0
   call $std/math/check<f32>
@@ -54235,13 +51182,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3845
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.2611686178923354e-44
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.2611686178923354e-44
   f32.const 0
   call $std/math/check<f32>
@@ -54249,13 +51196,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3846
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -2.938735877055719e-39
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -2.938735877055719e-39
   f32.const 0
   call $std/math/check<f32>
@@ -54263,13 +51210,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3847
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -5.877471754111438e-39
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -5.877471754111438e-39
   f32.const 0
   call $std/math/check<f32>
@@ -54277,13 +51224,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3848
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754940705625946e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.1754940705625946e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54291,13 +51238,13 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3849
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f32.const -1.1754942106924411e-38
-  call $~lib/math/NativeMathf.tan
+  call $~lib/util/math/tan32
   f32.const -1.1754942106924411e-38
   f32.const 0
   call $std/math/check<f32>
@@ -54305,7 +51252,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3850
+   i32.const 3663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54318,7 +51265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3862
+   i32.const 3675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54331,7 +51278,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3863
+   i32.const 3676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54344,7 +51291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3864
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54357,7 +51304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3865
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54370,7 +51317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3866
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54383,7 +51330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3867
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54396,7 +51343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3868
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54409,7 +51356,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3869
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54422,7 +51369,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3870
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54435,7 +51382,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3871
+   i32.const 3684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54448,7 +51395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3874
+   i32.const 3687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54461,7 +51408,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3875
+   i32.const 3688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54474,7 +51421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3876
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54487,7 +51434,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3877
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54500,7 +51447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3878
+   i32.const 3691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54513,7 +51460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3887
+   i32.const 3700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54526,7 +51473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3888
+   i32.const 3701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54539,7 +51486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3889
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54552,7 +51499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3890
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54565,7 +51512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3891
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54578,7 +51525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3892
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54591,7 +51538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3893
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54604,7 +51551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3894
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54617,7 +51564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3895
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54630,7 +51577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3896
+   i32.const 3709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54643,7 +51590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3899
+   i32.const 3712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54656,7 +51603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3900
+   i32.const 3713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54669,7 +51616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3901
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54682,7 +51629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3902
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54695,7 +51642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3903
+   i32.const 3716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54717,7 +51664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3915
+   i32.const 3728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54739,7 +51686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3916
+   i32.const 3729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54761,7 +51708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3917
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54783,7 +51730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3918
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54805,7 +51752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3919
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54827,7 +51774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3920
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54849,7 +51796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3921
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54871,7 +51818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3922
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54893,7 +51840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3923
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54915,7 +51862,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3924
+   i32.const 3737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54937,7 +51884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3927
+   i32.const 3740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54959,7 +51906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3928
+   i32.const 3741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54981,7 +51928,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3929
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55003,7 +51950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3930
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55025,7 +51972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3931
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55047,7 +51994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3932
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55069,7 +52016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3933
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55091,7 +52038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3934
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55113,7 +52060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3935
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55135,7 +52082,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3936
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55157,7 +52104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3937
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55179,7 +52126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3938
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55201,7 +52148,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3939
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55223,7 +52170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3940
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55245,7 +52192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3941
+   i32.const 3754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55258,7 +52205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3950
+   i32.const 3763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55271,7 +52218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3951
+   i32.const 3764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55284,7 +52231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3952
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55297,7 +52244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3953
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55310,7 +52257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3954
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55323,7 +52270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3955
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55336,7 +52283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3956
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55349,7 +52296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3957
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55362,7 +52309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3958
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55375,7 +52322,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3959
+   i32.const 3772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55388,7 +52335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3962
+   i32.const 3775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55401,7 +52348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3963
+   i32.const 3776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55414,7 +52361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3964
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55427,7 +52374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3965
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55440,7 +52387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3966
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55453,7 +52400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3967
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55466,7 +52413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3968
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55479,7 +52426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3969
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55492,7 +52439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3970
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55505,7 +52452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3971
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55518,7 +52465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3972
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55531,7 +52478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3973
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55544,7 +52491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3974
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55557,7 +52504,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3975
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55570,7 +52517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3976
+   i32.const 3789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55637,572 +52584,572 @@
   call $std/math/test_sincos
   f64.const 2
   f64.const 4
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 8
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4017
+   i32.const 3830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1
   f64.const 8
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -8
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4018
+   i32.const 3831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -2
   f64.const -2
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 4
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4019
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967295
   f64.const 5
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -5
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4020
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 4294967294
   f64.const 5
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -10
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4021
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+60
   f64.const 1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4022
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+60
   f64.const -1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4023
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const -1.e+60
   f64.const -1.e+60
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4024
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1.e+24
   f64.const 100
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const -2147483648
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4025
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const nan:0x8000000000000
   f64.const 1
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4026
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const inf
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4027
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1797693134862315708145274e284
   f64.const 1797693134862315708145274e284
-  call $~lib/math/NativeMath.imul
+  call $~lib/math/NativeMath.imul<f64>
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4028
+   i32.const 3841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4051
+   i32.const 3864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4052
+   i32.const 3865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4053
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 0
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4054
+   i32.const 3867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4056
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4057
+   i32.const 3870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4058
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4059
+   i32.const 3872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4061
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 2
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4062
+   i32.const 3875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 4
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4063
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 8
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4064
+   i32.const 3877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4066
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4067
+   i32.const 3880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4068
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -1
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4069
+   i32.const 3882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 0
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4071
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -2
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4072
+   i32.const 3885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 2
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 4
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4073
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const -2
   i64.const 3
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -8
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4074
+   i32.const 3887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 63
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -9223372036854775808
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4076
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 40
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -6289078614652622815
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4077
+   i32.const 3890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 64
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4078
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 41
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -420491770248316829
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4079
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 3
   i64.const 128
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const -9204772141784466943
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4080
+   i32.const 3893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 1
   i64.const -1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.const 1
   i64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4082
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const -1
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4083
+   i32.const 3896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 64
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4084
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   i64.const 2
   i64.const 128
-  call $~lib/math/ipow64
+  call $~lib/util/math/ipow64
   i64.eqz
   i32.eqz
   if
    i32.const 0
    i32.const 1056
-   i32.const 4085
+   i32.const 3898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 1
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 1
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4129
+   i32.const 3942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const 0.5
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const 0
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4130
+   i32.const 3943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
   end
   f64.const 0
   f64.const -1
-  call $~lib/math/NativeMath.pow
+  call $~lib/util/math/pow64
   f64.const inf
   f64.ne
   if
    i32.const 0
    i32.const 1056
-   i32.const 4131
+   i32.const 3944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts
index 80880dd99b..2eab118334 100644
--- a/tests/compiler/std/math.ts
+++ b/tests/compiler/std/math.ts
@@ -30,6 +30,12 @@
   and src/math/crlibm/* for details
 */
 
+import {
+  scalbn32,
+  scalbn64,
+  ipow64
+} from "util/math";
+
 const js = true; // also test, and thus compare to, JS math?
 
 // these flags are unused, but kept in case these might just so happen to become useful
@@ -60,7 +66,7 @@ function ulperr(got: f64, want: f64, dwant: f64): f64 {
     got = copysign<f64>(Ox1p1023, got);
     want *= 0.5;
   }
-  return NativeMath.scalbn(got - want, -eulp(want)) + dwant;
+  return scalbn64(got - want, -eulp(want)) + dwant;
 }
 
 function eulpf(x: f32): i32 {
@@ -74,22 +80,22 @@ function ulperrf(got: f32, want: f32, dwant: f32): f32 {
   const Ox1p127f = reinterpret<f32>(0x7F000000);
   if (isNaN(got) && isNaN(want)) return 0;
   if (got == want) {
-    if (NativeMathf.signbit(got) == NativeMathf.signbit(want)) return dwant;
+    if (NativeMath.signbit(got) == NativeMath.signbit(want)) return dwant;
     return Infinity;
   }
   if (!isFinite(got)) {
     got = copysign<f32>(Ox1p127f, got);
     want *= 0.5;
   }
-  return NativeMathf.scalbn(got - want, -eulpf(want)) + dwant;
+  return scalbn32(got - want, -eulpf(want)) + dwant;
 }
 
-function check<T>(actual: T, expected: T, dy: T, flags: i32): bool {
+function check<T extends number>(actual: T, expected: T, dy: T, flags: i32): bool {
   if (actual == expected) return true;
   if (isNaN(expected)) return isNaN(actual);
   var d: T;
-  if (sizeof<T>() == 8) d = ulperr(actual, expected, dy);
-  else if (sizeof<T>() == 4) d = ulperrf(actual, expected, dy);
+  if (sizeof<T>() == 8) d = <T>ulperr(actual, expected, dy);
+  else if (sizeof<T>() == 4) d = <T>ulperrf(actual, expected, dy);
   else return false;
   if (abs<T>(d) >= 1.5) {
     return false;
@@ -102,7 +108,6 @@ function check<T>(actual: T, expected: T, dy: T, flags: i32): bool {
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 assert(Math.E == NativeMath.E);
-assert(Mathf.E == NativeMathf.E);
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Constants
@@ -116,20 +121,12 @@ assert(check<f64>(NativeMath.PI, JSMath.PI, 0.0, 0));
 assert(check<f64>(NativeMath.SQRT1_2, JSMath.SQRT1_2, 0.0, 0));
 assert(check<f64>(NativeMath.SQRT2, JSMath.SQRT2, 0.0, 0));
 
-assert(check<f32>(NativeMathf.E, <f32>JSMath.E, 0.0, 0));
-assert(check<f32>(NativeMathf.LN2, <f32>JSMath.LN2, 0.0, 0));
-assert(check<f32>(NativeMathf.LN10, <f32>JSMath.LN10, 0.0, 0));
-assert(check<f32>(NativeMathf.LOG2E, <f32>JSMath.LOG2E, 0.0, 0));
-assert(check<f32>(NativeMathf.PI, <f32>JSMath.PI, 0.0, 0));
-assert(check<f32>(NativeMathf.SQRT1_2, <f32>JSMath.SQRT1_2, 0.0, 0));
-assert(check<f32>(NativeMathf.SQRT2, <f32>JSMath.SQRT2, 0.0, 0));
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Internal scalbn
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 function test_scalbn(value: f64, n: i32, expected: f64, error: f64, flags: i32): bool {
-  return check<f64>(NativeMath.scalbn(value, n), expected, error, flags);
+  return check<f64>(scalbn64(value, n), expected, error, flags);
 }
 
 // sanity
@@ -168,7 +165,7 @@ assert(test_scalbn(0.500000000000001221, -1024, 2.78134232313400667e-309, 0.0, I
 // Internal scalbnf ////////////////////////////////////////////////////////////////////////////////
 
 function test_scalbnf(value: f32, n: i32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.scalbn(value, n), expected, error, flags);
+  return check<f32>(scalbn32(value, n), expected, error, flags);
 }
 
 // sanity
@@ -237,7 +234,7 @@ assert(test_abs(NaN, NaN, 0.0, 0));
 // Mathf.abs ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_absf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.abs(value), expected, error, flags);
+  return check<f32>(NativeMath.abs<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -297,7 +294,7 @@ assert(test_acos(0.493955674639974585, 1.05416298758519456, 0.220547676086425781
 // Mathf.acos //////////////////////////////////////////////////////////////////////////////////////
 
 function test_acosf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.acos(value), expected, error, flags);
+  return check<f32>(NativeMath.acos<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -378,7 +375,7 @@ assert(test_acosh(1.11694291598755213, 0.47902433134075284, -0.32167410850524902
 // Mathf.acosh /////////////////////////////////////////////////////////////////////////////////////
 
 function test_acoshf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.acosh(value), expected, error, flags);
+  return check<f32>(NativeMath.acosh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -439,7 +436,7 @@ assert(test_asin(0.507304392911914759, 0.53205389977723494, -0.16157317161560058
 // Mathf.asin //////////////////////////////////////////////////////////////////////////////////////
 
 function test_asinf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.asin(value), expected, error, flags);
+  return check<f32>(NativeMath.asin<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -517,7 +514,7 @@ assert(test_asinh(-0.0, -0.0, 0.0, 0));
 // Mathf.asinh /////////////////////////////////////////////////////////////////////////////////////
 
 function test_asinhf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.asinh(value), expected, error, flags);
+  return check<f32>(NativeMath.asinh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -573,7 +570,7 @@ assert(test_atan(0.6929821535674624, 0.606000455515256164, -0.170757904648780823
 // Mathf.atan //////////////////////////////////////////////////////////////////////////////////////
 
 function test_atanf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.atan(value), expected, error, flags);
+  return check<f32>(NativeMath.atan<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -637,7 +634,7 @@ assert(test_atanh(8.98846567431157954e+307, NaN, 0.0, INVALID));
 // Mathf.atanh /////////////////////////////////////////////////////////////////////////////////////
 
 function test_atanhf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.atanh(value), expected, error, flags);
+  return check<f32>(NativeMath.atanh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -724,7 +721,7 @@ assert(test_atan2(1.5, -8.98846567431157954e+307, 3.14159265358979312, 0.0, INEX
 // Mathf.atan2 /////////////////////////////////////////////////////////////////////////////////////
 
 function test_atan2f(value1: f32, value2: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.atan2(value1, value2), expected, error, flags);
+  return check<f32>(NativeMath.atan2<f32>(value1, value2), expected, error, flags);
 }
 
 // sanity
@@ -805,7 +802,7 @@ assert(test_cbrt(8.0, 2.0, 0.0, 0));
 // Mathf.cbrt //////////////////////////////////////////////////////////////////////////////////////
 
 function test_cbrtf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.cbrt(value), expected, error, flags);
+  return check<f32>(NativeMath.cbrt<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -903,7 +900,7 @@ assert(test_ceil(-7.88860905221011805e-31, -0.0, 0.0, INEXACT));
 // Mathf.ceil //////////////////////////////////////////////////////////////////////////////////////
 
 function test_ceilf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.ceil(value), expected, error, flags);
+  return check<f32>(NativeMath.ceil<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1111,40 +1108,40 @@ assert(NativeMath.cos(1e90 * kPI) == JSMath.cos(1e90 * kPI));
 
 // v8 ieee754-unittest.cc
 // cos(x) = 1 for |x| < 2^-27
-assert(NativeMath.cos(2.3283064365386963e-10) == 1.0);
-assert(NativeMath.cos(-2.3283064365386963e-10) == 1.0);
+assert(NativeMath.cos<f64>(+2.3283064365386963e-10) == 1.0);
+assert(NativeMath.cos<f64>(-2.3283064365386963e-10) == 1.0);
 // Test KERNELCOS for |x| < 0.3.
 // cos(pi/20) = sqrt(sqrt(2)*sqrt(sqrt(5)+5)+4)/2^(3/2)
-assert(NativeMath.cos(0.15707963267948966) == 0.9876883405951378);
+assert(NativeMath.cos<f64>(0.15707963267948966) == 0.9876883405951378);
 // Test KERNELCOS for x ~= 0.78125
-assert(NativeMath.cos(0.7812504768371582) == 0.7100335477927638);
-assert(NativeMath.cos(0.78125) == 0.7100338835660797);
+assert(NativeMath.cos<f64>(0.7812504768371582) == 0.7100335477927638);
+assert(NativeMath.cos<f64>(0.78125) == 0.7100338835660797);
 // Test KERNELCOS for |x| > 0.3.
 // cos(pi/8) = sqrt(sqrt(2)+1)/2^(3/4)
-assert(0.9238795325112867 == NativeMath.cos(0.39269908169872414));
+assert(NativeMath.cos<f64>(0.39269908169872414) == 0.9238795325112867);
 // Test KERNELTAN for |x| < 0.67434.
-assert(0.9238795325112867 == NativeMath.cos(-0.39269908169872414));
+assert(NativeMath.cos<f64>(-0.39269908169872414) == 0.9238795325112867);
 
 // Tests for cos.
-assert(NativeMath.cos(3.725290298461914e-9) == 1.0);
+assert(NativeMath.cos<f64>(3.725290298461914e-9) == 1.0);
 // Cover different code paths in KERNELCOS.
-assert(0.9689124217106447 == NativeMath.cos(0.25));
-assert(0.8775825618903728 == NativeMath.cos(0.5));
-assert(0.7073882691671998 == NativeMath.cos(0.785));
+assert(NativeMath.cos<f64>(0.25) == 0.9689124217106447);
+assert(NativeMath.cos<f64>(0.5) == 0.8775825618903728);
+assert(NativeMath.cos<f64>(0.785) == 0.7073882691671998);
 // Test that cos(Math.PI/2) != 0 since Math.PI is not exact.
-assert(6.123233995736766e-17 == NativeMath.cos(1.5707963267948966));
+assert(NativeMath.cos<f64>(1.5707963267948966) == 6.123233995736766e-17);
 // Test cos for various phases.
-assert(0.7071067811865474 == NativeMath.cos(7.0 / 4 * kPI));
-assert(0.7071067811865477 == NativeMath.cos(9.0 / 4 * kPI));
-assert(-0.7071067811865467 == NativeMath.cos(11.0 / 4 * kPI));
-assert(-0.7071067811865471 == NativeMath.cos(13.0 / 4 * kPI));
-assert(0.9367521275331447 == NativeMath.cos(1000000.0));
-assert(-3.435757038074824e-12 == NativeMath.cos(1048575.0 / 2 * kPI));
+assert(NativeMath.cos(7.0 / 4 * kPI) == 0.7071067811865474);
+assert(NativeMath.cos(9.0 / 4 * kPI) == 0.7071067811865477);
+assert(NativeMath.cos(11.0 / 4 * kPI) == -0.7071067811865467);
+assert(NativeMath.cos(13.0 / 4 * kPI) == -0.7071067811865471);
+assert(NativeMath.cos<f64>(1000000.0) == 0.9367521275331447);
+assert(NativeMath.cos(1048575.0 / 2 * kPI) == -3.435757038074824e-12);
 
 // Mathf.cos ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_cosf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return  check<f32>(NativeMathf.cos(value), expected, error, flags);
+  return  check<f32>(NativeMath.cos<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1252,7 +1249,7 @@ assert(test_cosh(NaN, NaN, 0.0, 0));
 // Mathf.cosh //////////////////////////////////////////////////////////////////////////////////////
 
 function test_coshf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.cosh(value), expected, error, flags);
+  return check<f32>(NativeMath.cosh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1446,7 +1443,7 @@ assert(test_exp(
 // Mathf.exp ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_expf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.exp(value), expected, error, flags);
+  return check<f32>(NativeMath.exp<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1512,7 +1509,7 @@ assert(test_expm1(-2.22507385850720089e-308,-2.22507385850720089e-308, 0.0, INEX
 // Mathf.expm1 /////////////////////////////////////////////////////////////////////////////////////
 
 function test_expm1f(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.expm1(value), expected, error, flags);
+  return check<f32>(NativeMath.expm1<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1589,7 +1586,7 @@ assert(test_exp2(reinterpret<f64>(0xC0A0000000000000),
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 function test_exp2f(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.exp2(value), expected, error, flags);
+  return check<f32>(NativeMath.exp2<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1645,7 +1642,7 @@ assert(test_floor(-7.88860905221011805e-31, -1.0, 0.0, INEXACT));
 // Mathf.floor /////////////////////////////////////////////////////////////////////////////////////
 
 function test_floorf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.floor(value), expected, error, flags);
+  return check<f32>(NativeMath.floor<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1726,7 +1723,7 @@ assert(test_hypot(0.0, NaN, NaN, 0.0, 0));
 // Mathf.hypot /////////////////////////////////////////////////////////////////////////////////////
 
 function test_hypotf(value1: f32, value2: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.hypot(value1, value2), expected, error, flags);
+  return check<f32>(NativeMath.hypot<f32>(value1, value2), expected, error, flags);
 }
 
 // sanity
@@ -1796,7 +1793,7 @@ assert(test_log(NaN, NaN, 0.0, 0));
 // Mathf.log ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_logf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.log(value), expected, error, flags);
+  return check<f32>(NativeMath.log<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1853,7 +1850,7 @@ assert(test_log10(NaN, NaN, 0.0, 0));
 // Mathf.log10 /////////////////////////////////////////////////////////////////////////////////////
 
 function test_log10f(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.log10(value), expected, error, flags);
+  return check<f32>(NativeMath.log10<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1912,7 +1909,7 @@ assert(test_log1p(NaN, NaN, 0.0, 0));
 // Mathf.log1p /////////////////////////////////////////////////////////////////////////////////////
 
 function test_log1pf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.log1p(value), expected, error, flags);
+  return check<f32>(NativeMath.log1p<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -1972,7 +1969,7 @@ assert(test_log2(NaN, NaN, 0.0, 0));
 // Mathf.log2 //////////////////////////////////////////////////////////////////////////////////////
 
 function test_log2f(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.log2(value), expected, error, flags);
+  return check<f32>(NativeMath.log2<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -2081,7 +2078,7 @@ assert(test_max(-1.75, -0.5, -0.5, 0.0, 0));
 // Mathf.max ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_maxf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.max(left, right), expected, error, flags);
+  return check<f32>(NativeMath.max<f32>(left, right), expected, error, flags);
 }
 
 // sanity
@@ -2240,7 +2237,7 @@ assert(test_min(-1.75, -0.5, -1.75, 0.0, 0));
 // Mathf.min ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_minf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.min(left, right), expected, error, flags);
+  return check<f32>(NativeMath.min<f32>(left, right), expected, error, flags);
 }
 
 // sanity
@@ -2487,7 +2484,7 @@ assert(test_mod(reinterpret<f64>(0x009FFFFFFFFFFFFF), reinterpret<f64>(0x0090000
 // Mathf.mod ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_modf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.mod(left, right), expected, error, flags);
+  return check<f32>(NativeMath.mod<f32>(left, right), expected, error, flags);
 }
 
 // sanity
@@ -2686,53 +2683,53 @@ assert(test_pow(-2.0, 1.0, -2.0, 0.0, 0));
 assert(test_pow(-2.0, -1.0, -0.5, 0.0, 0));
 
 // Fast paths
-assert(NativeMath.pow(+0.0,+0.0) == 1.0);
-assert(NativeMath.pow(-0.0,+0.0) == 1.0);
-assert(NativeMath.pow(-0.0,-0.0) == 1.0);
-assert(NativeMath.pow(+0.0,-0.0) == 1.0);
-assert(NativeMath.pow(-1.0, 0.0) == 1.0);
-assert(NativeMath.pow(+Infinity, 0.0) == 1.0);
-assert(NativeMath.pow(-Infinity, 0.0) == 1.0);
-assert(NativeMath.pow(NaN, 0.0) == 1.0);
-
-assert(NativeMath.pow(+0.0,+1.0) == +0.0);
-assert(NativeMath.pow(-0.0,+1.0) == -0.0);
-assert(NativeMath.pow(-1.0, 1.0) == -1.0);
-assert(NativeMath.pow(+Infinity, 1.0) == +Infinity);
-assert(NativeMath.pow(-Infinity, 1.0) == -Infinity);
-assert(isNaN(NativeMath.pow(NaN, 1.0)));
-
-assert(NativeMath.pow(+0.0,-1.0) == +Infinity);
-assert(NativeMath.pow(-0.0,-1.0) == -Infinity);
-assert(NativeMath.pow(-1.0,-1.0) == -1.0);
-assert(NativeMath.pow( 0.5,-1.0) == +2.0);
-assert(NativeMath.pow( 1.0,-1.0) == +1.0);
-assert(NativeMath.pow(+Infinity,-1.0) == +0.0);
-assert(NativeMath.pow(-Infinity,-1.0) == -0.0);
+assert(NativeMath.pow<f64>(+0.0,+0.0) == 1.0);
+assert(NativeMath.pow<f64>(-0.0,+0.0) == 1.0);
+assert(NativeMath.pow<f64>(-0.0,-0.0) == 1.0);
+assert(NativeMath.pow<f64>(+0.0,-0.0) == 1.0);
+assert(NativeMath.pow<f64>(-1.0, 0.0) == 1.0);
+assert(NativeMath.pow<f64>(+Infinity, 0.0) == 1.0);
+assert(NativeMath.pow<f64>(-Infinity, 0.0) == 1.0);
+assert(NativeMath.pow<f64>(NaN, 0.0) == 1.0);
+
+assert(NativeMath.pow<f64>(+0.0,+1.0) == +0.0);
+assert(NativeMath.pow<f64>(-0.0,+1.0) == -0.0);
+assert(NativeMath.pow<f64>(-1.0, 1.0) == -1.0);
+assert(NativeMath.pow<f64>(+Infinity, 1.0) == +Infinity);
+assert(NativeMath.pow<f64>(-Infinity, 1.0) == -Infinity);
+assert(isNaN(NativeMath.pow<f64>(NaN, 1.0)));
+
+assert(NativeMath.pow<f64>(+0.0,-1.0) == +Infinity);
+assert(NativeMath.pow<f64>(-0.0,-1.0) == -Infinity);
+assert(NativeMath.pow<f64>(-1.0,-1.0) == -1.0);
+assert(NativeMath.pow<f64>( 0.5,-1.0) == +2.0);
+assert(NativeMath.pow<f64>( 1.0,-1.0) == +1.0);
+assert(NativeMath.pow<f64>(+Infinity,-1.0) == +0.0);
+assert(NativeMath.pow<f64>(-Infinity,-1.0) == -0.0);
 assert(isNaN(NativeMath.pow(NaN,-1.0)));
 
-assert(NativeMath.pow(+0.0, 2.0) == +0.0);
-assert(NativeMath.pow(-0.0, 2.0) == +0.0);
-assert(NativeMath.pow(-1.0, 2.0) == +1.0);
-assert(NativeMath.pow( 0.5, 2.0) == +0.25);
-assert(NativeMath.pow( 1.0, 2.0) == +1.0);
-assert(NativeMath.pow(+Infinity, 2.0) == +Infinity);
-assert(NativeMath.pow(-Infinity, 2.0) == +Infinity);
-assert(isNaN(NativeMath.pow(NaN, 2.0)));
-
-assert(NativeMath.pow(+0.0, 0.5) == +0.0);
-assert(NativeMath.pow(-0.0, 0.5) == +0.0);
-assert(isNaN(NativeMath.pow(-1.0, 0.5)));
-assert(NativeMath.pow( 4.0, 0.5) == +2.0);
-assert(NativeMath.pow( 1.0, 0.5) == +1.0);
-assert(NativeMath.pow(+Infinity, 0.5) == +Infinity);
-assert(NativeMath.pow(-Infinity, 0.5) == +Infinity);
-assert(isNaN(NativeMath.pow(NaN, 0.5)));
+assert(NativeMath.pow<f64>(+0.0, 2.0) == +0.0);
+assert(NativeMath.pow<f64>(-0.0, 2.0) == +0.0);
+assert(NativeMath.pow<f64>(-1.0, 2.0) == +1.0);
+assert(NativeMath.pow<f64>( 0.5, 2.0) == +0.25);
+assert(NativeMath.pow<f64>( 1.0, 2.0) == +1.0);
+assert(NativeMath.pow<f64>(+Infinity, 2.0) == +Infinity);
+assert(NativeMath.pow<f64>(-Infinity, 2.0) == +Infinity);
+assert(isNaN(NativeMath.pow<f64>(NaN, 2.0)));
+
+assert(NativeMath.pow<f64>(+0.0, 0.5) == +0.0);
+assert(NativeMath.pow<f64>(-0.0, 0.5) == +0.0);
+assert(isNaN(NativeMath.pow<f64>(-1.0, 0.5)));
+assert(NativeMath.pow<f64>( 4.0, 0.5) == +2.0);
+assert(NativeMath.pow<f64>( 1.0, 0.5) == +1.0);
+assert(NativeMath.pow<f64>(+Infinity, 0.5) == +Infinity);
+assert(NativeMath.pow<f64>(-Infinity, 0.5) == +Infinity);
+assert(isNaN(NativeMath.pow<f64>(NaN, 0.5)));
 
 // Mathf.pow ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_powf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.pow(left, right), expected, error, flags);
+  return check<f32>(NativeMath.pow<f32>(left, right), expected, error, flags);
 }
 
 // sanity
@@ -3000,14 +2997,6 @@ for (let i = 0; i < 1e6; ++i) {
   assert(r >= 0.0 && r < 1.0);
 }
 
-// Mathf.random ////////////////////////////////////////////////////////////////////////////////////
-
-NativeMathf.seedRandom(reinterpret<u64>(JSMath.random()));
-for (let i = 0; i < 1e6; ++i) {
-  let r = NativeMathf.random();
-  assert(r >= 0.0 && r < 1.0);
-}
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Math.round
 ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3058,7 +3047,7 @@ assert(NativeMath.round(-1.7976931348623157e+308) == -1.7976931348623157e+308);
 // Mathf.round /////////////////////////////////////////////////////////////////////////////////////
 
 function test_roundf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return  check<f32>(NativeMathf.round(value), expected, error, flags);
+  return  check<f32>(NativeMath.round<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3114,7 +3103,7 @@ assert(test_sign(NaN, NaN, 0.0, 0));
 // Mathf.sign //////////////////////////////////////////////////////////////////////////////////////
 
 function test_signf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return  check<f32>(NativeMathf.sign(value), expected, error, flags);
+  return  check<f32>(NativeMath.sign<f32>(value), expected, error, flags);
 }
 
 assert(test_signf(0.0, 0.0, 0.0, 0));
@@ -3144,190 +3133,14 @@ assert(NativeMath.signbit(-Infinity) == true);
 // Mathf.signbit
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
-assert(NativeMathf.signbit(0.0)  == false);
-assert(NativeMathf.signbit(-0.0) == true);
-assert(NativeMathf.signbit(1.0)  == false);
-assert(NativeMathf.signbit(-1.0) == true);
-assert(NativeMathf.signbit(+NaN) == false);
-assert(NativeMathf.signbit(-NaN) == true);
-assert(NativeMathf.signbit(+Infinity) == false);
-assert(NativeMathf.signbit(-Infinity) == true);
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Math.rem
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-function test_rem(left: f64, right: f64, expected: f64, error: f64, flags: i32): bool {
-  return check<f64>(NativeMath.rem(left, right), expected, error, flags);
-}
-
-// sanity
-assert(test_rem(-8.06684839057968084, 4.53566256067686879, 1.00447673077405675, 0.0, 0));
-assert(test_rem(4.34523984933830487, -8.88799136300345083, 4.34523984933830487, 0.0, 0));
-assert(test_rem(-8.38143342755524934, -2.76360733737958819, -0.0906114154164847641, 0.0, 0));
-assert(test_rem(-6.53167358191348413, 4.56753527684274374, -1.96413830507074039, 0.0, 0));
-assert(test_rem(9.26705696697258574, 4.81139208435979615, -0.355727201747006561, 0.0, 0));
-assert(test_rem(-6.45004555606023633, 0.662071792337673881, 0.170672367316502482, 0.0, 0));
-assert(test_rem(7.85889025304169664, 0.0521545267500622481, -0.0164432862177028224, 0.0, 0));
-assert(test_rem(-0.792054511984895959, 7.67640268511753998, -0.792054511984895959, 0.0, 0));
-assert(test_rem(0.615702673197924044, 2.01190257903248026, 0.615702673197924044, 0.0, 0));
-assert(test_rem(-0.558758682360915193, 0.0322398306026380407, -0.0106815621160685006, 0.0, 0));
-
-// special
-assert(test_rem(0.0, 1.0, 0.0, 0.0, 0));
-assert(test_rem(-0.0, 1.0, -0.0, 0.0, 0));
-assert(test_rem(0.5, 1.0, 0.5, 0.0, 0));
-assert(test_rem(-0.5, 1.0, -0.5, 0.0, 0));
-assert(test_rem(1.0, 1.0, 0.0, 0.0, 0));
-assert(test_rem(-1.0, 1.0, -0.0, 0.0, 0));
-assert(test_rem(1.5, 1.0, -0.5, 0.0, 0));
-assert(test_rem(-1.5, 1.0, 0.5, 0.0, 0));
-assert(test_rem(2.0, 1.0, 0.0, 0.0, 0));
-assert(test_rem(-2.0, 1.0, -0.0, 0.0, 0));
-assert(test_rem(Infinity, 1.0, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, 1.0, NaN, 0.0, INVALID));
-assert(test_rem(NaN, 1.0, NaN, 0.0, 0));
-assert(test_rem(0.0, -1.0, 0.0, 0.0, 0));
-assert(test_rem(-0.0, -1.0, -0.0, 0.0, 0));
-assert(test_rem(0.5, -1.0, 0.5, 0.0, 0));
-assert(test_rem(-0.5, -1.0, -0.5, 0.0, 0));
-assert(test_rem(1.0, -1.0, 0.0, 0.0, 0));
-assert(test_rem(-1.0, -1.0, -0.0, 0.0, 0));
-assert(test_rem(1.5, -1.0, -0.5, 0.0, 0));
-assert(test_rem(-1.5, -1.0, 0.5, 0.0, 0));
-assert(test_rem(2.0, -1.0, 0.0, 0.0, 0));
-assert(test_rem(-2.0, -1.0, -0.0, 0.0, 0));
-assert(test_rem(Infinity, -1.0, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, -1.0, NaN, 0.0, INVALID));
-assert(test_rem(NaN, -1.0, NaN, 0.0, 0));
-assert(test_rem(0.0, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(0.0, -0.0, NaN, 0.0, INVALID));
-assert(test_rem(0.0, Infinity, 0.0, 0.0, 0));
-assert(test_rem(0.0, -Infinity, 0.0, 0.0, 0));
-assert(test_rem(0.0, NaN, NaN, 0.0, 0));
-assert(test_rem(-0.0, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(-0.0, -0.0, NaN, 0.0, INVALID));
-assert(test_rem(-0.0, Infinity, -0.0, 0.0, 0));
-assert(test_rem(-0.0, -Infinity, -0.0, 0.0, 0));
-assert(test_rem(-0.0, NaN, NaN, 0.0, 0));
-assert(test_rem(1.0, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(-1.0, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(Infinity, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, 0.0, NaN, 0.0, INVALID));
-assert(test_rem(NaN, 0.0, NaN, 0.0, 0));
-assert(test_rem(-1.0, -0.0, NaN, 0.0, INVALID));
-assert(test_rem(Infinity, -0.0, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, -0.0, NaN, 0.0, INVALID));
-assert(test_rem(NaN, -0.0, NaN, 0.0, 0));
-assert(test_rem(Infinity, 2.0, NaN, 0.0, INVALID));
-assert(test_rem(Infinity, -0.5, NaN, 0.0, INVALID));
-assert(test_rem(Infinity, NaN, NaN, 0.0, 0));
-assert(test_rem(-Infinity, 2.0, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, -0.5, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, NaN, NaN, 0.0, 0));
-assert(test_rem(NaN, NaN, NaN, 0.0, 0));
-assert(test_rem(1.0, NaN, NaN, 0.0, 0));
-assert(test_rem(-1.0, NaN, NaN, 0.0, 0));
-assert(test_rem(1.0, Infinity, 1.0, 0.0, 0));
-assert(test_rem(-1.0, Infinity, -1.0, 0.0, 0));
-assert(test_rem(Infinity, Infinity, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, Infinity, NaN, 0.0, INVALID));
-assert(test_rem(1.0, -Infinity, 1.0, 0.0, 0));
-assert(test_rem(-1.0, -Infinity, -1.0, 0.0, 0));
-assert(test_rem(Infinity, -Infinity, NaN, 0.0, INVALID));
-assert(test_rem(-Infinity, -Infinity, NaN, 0.0, INVALID));
-assert(test_rem(1.75, 0.5, -0.25, 0.0, 0));
-assert(test_rem(-1.75, 0.5, 0.25, 0.0, 0));
-assert(test_rem(1.75, -0.5, -0.25, 0.0, 0));
-assert(test_rem(-1.75, -0.5, 0.25, 0.0, 0));
-assert(test_rem(7.90505033345994471e-323, Infinity, 7.90505033345994471e-323, 0.0, 0));
-
-// Mathf.rem ///////////////////////////////////////////////////////////////////////////////////////
-
-function test_remf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.rem(left, right), expected, error, flags);
-}
-
-// sanity
-assert(test_remf(-8.066848755, 4.535662651, 1.004476547, 0.0, 0));
-assert(test_remf(4.345239639, -8.887990952, 4.345239639, 0.0, 0));
-assert(test_remf(-8.381433487, -2.763607264, -0.09061169624, 0.0, 0));
-assert(test_remf(-6.531673431, 4.5675354, -1.964138031, 0.0, 0));
-assert(test_remf(9.267057419, 4.811392307, -0.3557271957, 0.0, 0));
-assert(test_remf(-6.450045586, 0.6620717645, 0.1706720591, 0.0, 0));
-assert(test_remf(7.858890057, 0.05215452611, -0.01644338667, 0.0, 0));
-assert(test_remf(-0.792054534, 7.676402569, -0.792054534, 0.0, 0));
-assert(test_remf(0.6157026887, 2.011902571, 0.6157026887, 0.0, 0));
-assert(test_remf(-0.5587586761, 0.03223983198, -0.01068153232, 0.0, 0));
-
-// special
-assert(test_remf(0.0, 1.0, 0.0, 0.0, 0));
-assert(test_remf(-0.0, 1.0, -0.0, 0.0, 0));
-assert(test_remf(0.5, 1.0, 0.5, 0.0, 0));
-assert(test_remf(-0.5, 1.0, -0.5, 0.0, 0));
-assert(test_remf(1.0, 1.0, 0.0, 0.0, 0));
-assert(test_remf(-1.0, 1.0, -0.0, 0.0, 0));
-assert(test_remf(1.5, 1.0, -0.5, 0.0, 0));
-assert(test_remf(-1.5, 1.0, 0.5, 0.0, 0));
-assert(test_remf(2.0, 1.0, 0.0, 0.0, 0));
-assert(test_remf(-2.0, 1.0, -0.0, 0.0, 0));
-assert(test_remf(Infinity, 1.0, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, 1.0, NaN, 0.0, INVALID));
-assert(test_remf(NaN, 1.0, NaN, 0.0, 0));
-assert(test_remf(0.0, -1.0, 0.0, 0.0, 0));
-assert(test_remf(-0.0, -1.0, -0.0, 0.0, 0));
-assert(test_remf(0.5, -1.0, 0.5, 0.0, 0));
-assert(test_remf(-0.5, -1.0, -0.5, 0.0, 0));
-assert(test_remf(1.0, -1.0, 0.0, 0.0, 0));
-assert(test_remf(-1.0, -1.0, -0.0, 0.0, 0));
-assert(test_remf(1.5, -1.0, -0.5, 0.0, 0));
-assert(test_remf(-1.5, -1.0, 0.5, 0.0, 0));
-assert(test_remf(2.0, -1.0, 0.0, 0.0, 0));
-assert(test_remf(-2.0, -1.0, -0.0, 0.0, 0));
-assert(test_remf(Infinity, -1.0, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, -1.0, NaN, 0.0, INVALID));
-assert(test_remf(NaN, -1.0, NaN, 0.0, 0));
-assert(test_remf(0.0, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(0.0, -0.0, NaN, 0.0, INVALID));
-assert(test_remf(0.0, Infinity, 0.0, 0.0, 0));
-assert(test_remf(0.0, -Infinity, 0.0, 0.0, 0));
-assert(test_remf(0.0, NaN, NaN, 0.0, 0));
-assert(test_remf(-0.0, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(-0.0, -0.0, NaN, 0.0, INVALID));
-assert(test_remf(-0.0, Infinity, -0.0, 0.0, 0));
-assert(test_remf(-0.0, -Infinity, -0.0, 0.0, 0));
-assert(test_remf(-0.0, NaN, NaN, 0.0, 0));
-assert(test_remf(1.0, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(-1.0, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(Infinity, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, 0.0, NaN, 0.0, INVALID));
-assert(test_remf(NaN, 0.0, NaN, 0.0, 0));
-assert(test_remf(-1.0, -0.0, NaN, 0.0, INVALID));
-assert(test_remf(Infinity, -0.0, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, -0.0, NaN, 0.0, INVALID));
-assert(test_remf(NaN, -0.0, NaN, 0.0, 0));
-assert(test_remf(Infinity, 2.0, NaN, 0.0, INVALID));
-assert(test_remf(Infinity, -0.5, NaN, 0.0, INVALID));
-assert(test_remf(Infinity, NaN, NaN, 0.0, 0));
-assert(test_remf(-Infinity, 2.0, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, -0.5, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, NaN, NaN, 0.0, 0));
-assert(test_remf(NaN, NaN, NaN, 0.0, 0));
-assert(test_remf(1.0, NaN, NaN, 0.0, 0));
-assert(test_remf(-1.0, NaN, NaN, 0.0, 0));
-assert(test_remf(1.0, Infinity, 1.0, 0.0, 0));
-assert(test_remf(-1.0, Infinity, -1.0, 0.0, 0));
-assert(test_remf(Infinity, Infinity, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, Infinity, NaN, 0.0, INVALID));
-assert(test_remf(1.0, -Infinity, 1.0, 0.0, 0));
-assert(test_remf(-1.0, -Infinity, -1.0, 0.0, 0));
-assert(test_remf(Infinity, -Infinity, NaN, 0.0, INVALID));
-assert(test_remf(-Infinity, -Infinity, NaN, 0.0, INVALID));
-assert(test_remf(1.75, 0.5, -0.25, 0.0, 0));
-assert(test_remf(-1.75, 0.5, 0.25, 0.0, 0));
-assert(test_remf(1.75, -0.5, -0.25, 0.0, 0));
-assert(test_remf(-1.75, -0.5, 0.25, 0.0, 0));
-assert(test_remf(5.877471754e-39, Infinity, 5.877471754e-39, 0.0, 0));
+assert(NativeMath.signbit<f32>(0.0)  == false);
+assert(NativeMath.signbit<f32>(-0.0) == true);
+assert(NativeMath.signbit<f32>(1.0)  == false);
+assert(NativeMath.signbit<f32>(-1.0) == true);
+assert(NativeMath.signbit<f32>(+NaN) == false);
+assert(NativeMath.signbit<f32>(-NaN) == true);
+assert(NativeMath.signbit<f32>(+Infinity) == false);
+assert(NativeMath.signbit<f32>(-Infinity) == true);
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Math.sin
@@ -3397,39 +3210,39 @@ assert(test_sin(-Infinity,  NaN, 0.0, INVALID));
 assert(test_sin(      NaN,  NaN, 0.0, 0));
 
 // from v8
-assert(NativeMath.sin(kPI / 2) == JSMath.sin(kPI / 2));
+assert(NativeMath.sin(1 * kPI / 2) == JSMath.sin(1 * kPI / 2));
 assert(NativeMath.sin(2 * kPI / 2) == JSMath.sin(2 * kPI / 2));
 
 // sin(x) = x for x < 2^-27
-assert(+2.3283064365386963e-10 == NativeMath.sin(+2.3283064365386963e-10));
-assert(-2.3283064365386963e-10 == NativeMath.sin(-2.3283064365386963e-10));
+assert(NativeMath.sin(+2.3283064365386963e-10) == +2.3283064365386963e-10);
+assert(NativeMath.sin(-2.3283064365386963e-10) == -2.3283064365386963e-10);
 // sin(pi/8) = sqrt(sqrt(2)-1)/2^(3/4)
-assert(+0.3826834323650898 == NativeMath.sin(+0.39269908169872414));
-assert(-0.3826834323650898 == NativeMath.sin(-0.39269908169872414));
+assert(NativeMath.sin<f64>(+0.39269908169872414) == +0.3826834323650898);
+assert(NativeMath.sin<f64>(-0.39269908169872414) == -0.3826834323650898);
 
 // Tests for sin.
-assert(+0.479425538604203 == NativeMath.sin(+0.5));
-assert(-0.479425538604203 == NativeMath.sin(-0.5));
-assert(+1.0 == NativeMath.sin(+kPI / 2.0));
-assert(-1.0 == NativeMath.sin(-kPI / 2.0));
+assert(NativeMath.sin<f64>(+0.5)  == +0.479425538604203);
+assert(NativeMath.sin<f64>(-0.5)  == -0.479425538604203);
+assert(NativeMath.sin(+kPI / 2.0) == +1.0);
+assert(NativeMath.sin(-kPI / 2.0) == -1.0);
 // Test that sin(Math.PI) != 0 since Math.PI is not exact.
-assert(1.2246467991473532e-16 == NativeMath.sin(kPI));
-assert(-7.047032979958965e-14 == NativeMath.sin(2200.0 * kPI));
+assert(NativeMath.sin(kPI) == 1.2246467991473532e-16);
+assert(NativeMath.sin(2200.0 * kPI) == -7.0470329799589650e-14);
 // Test sin for various phases.
-assert(-0.7071067811865477 == NativeMath.sin(7.0 / 4.0 * kPI));
-assert(+0.7071067811865474 == NativeMath.sin(9.0 / 4.0 * kPI));
-assert(+0.7071067811865483 == NativeMath.sin(11.0 / 4.0 * kPI));
-assert(-0.7071067811865479 == NativeMath.sin(13.0 / 4.0 * kPI));
-assert(-3.2103381051568376e-11 == NativeMath.sin(1048576.0 / 4 * kPI));
+assert(NativeMath.sin(7.0  / 4.0 * kPI) == -0.7071067811865477);
+assert(NativeMath.sin(9.0  / 4.0 * kPI) == +0.7071067811865474);
+assert(NativeMath.sin(11.0 / 4.0 * kPI) == +0.7071067811865483);
+assert(NativeMath.sin(13.0 / 4.0 * kPI) == -0.7071067811865479);
+assert(NativeMath.sin(1048576.0 / 4 * kPI) == -3.2103381051568376e-11);
 
 // Test Hayne-Panek reduction.
-assert( 0.377820109360752e0 == NativeMath.sin(+kTwo120));
-assert(-0.377820109360752e0 == NativeMath.sin(-kTwo120));
+assert(NativeMath.sin(+kTwo120) == +0.377820109360752e0);
+assert(NativeMath.sin(-kTwo120) == -0.377820109360752e0);
 
 // Mathf.sin ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_sinf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.sin(value), expected, error, flags);
+  return check<f32>(NativeMath.sin<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3538,7 +3351,7 @@ assert(test_sinh(NaN, NaN, 0.0, 0));
 // Mathf.sinh //////////////////////////////////////////////////////////////////////////////////////
 
 function test_sinhf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.sinh(value), expected, error, flags);
+  return check<f32>(NativeMath.sinh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3660,7 +3473,7 @@ assert(test_sqrt(4.57432207785627658e-306, 2.13876648511619359e-153, 0.499859392
 // Mathf.sqrt //////////////////////////////////////////////////////////////////////////////////////
 
 function test_sqrtf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.sqrt(value), expected, error, flags);
+  return check<f32>(NativeMath.sqrt<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3789,7 +3602,7 @@ assert(test_tan(NaN, NaN, 0.0, 0));
 // Mathf.tan ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_tanf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.tan(value), expected, error, flags);
+  return check<f32>(NativeMath.tan<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3880,7 +3693,7 @@ assert(test_tanh(NaN, NaN, 0.0, 0));
 // Mathf.tanh //////////////////////////////////////////////////////////////////////////////////////
 
 function test_tanhf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.tanh(value), expected, error, flags);
+  return check<f32>(NativeMath.tanh<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -3943,7 +3756,7 @@ assert(test_trunc(-7.88860905221011805e-31, -0.0, 0.0, INEXACT));
 // Mathf.trunc /////////////////////////////////////////////////////////////////////////////////////
 
 function test_truncf(value: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMathf.trunc(value), expected, error, flags);
+  return check<f32>(NativeMath.trunc<f32>(value), expected, error, flags);
 }
 
 // sanity
@@ -4014,37 +3827,37 @@ test_sincos(0xBFE5B86EA8118A0E, 0xBFE417318671B83D, 0xBFD87FFC00000000, 0x3FE8E8
 
 // Math.imul //////////////////////////////////////////////////////////////////////////////////
 
-assert(NativeMath.imul(2, 4) == 8);
-assert(NativeMath.imul(-1, 8) == -8);
-assert(NativeMath.imul(-2, -2) == 4);
-assert(NativeMath.imul(0xffffffff, 5) == -5);
-assert(NativeMath.imul(0xfffffffe, 5) == -10);
-assert(NativeMath.imul(1e+60, 1e+60) == 0);
-assert(NativeMath.imul(1e+60,-1e+60) == 0);
-assert(NativeMath.imul(-1e+60,-1e+60) == 0);
-assert(NativeMath.imul(1e+24, 1e2) == -2147483648);
-assert(NativeMath.imul(NaN, 1) == 0);
-assert(NativeMath.imul(1, Infinity) == 0);
-assert(NativeMath.imul(f64.MAX_VALUE, f64.MAX_VALUE) == 0);
+assert(NativeMath.imul<f64>(+2, +4) == +8);
+assert(NativeMath.imul<f64>(-1, +8) == -8);
+assert(NativeMath.imul<f64>(-2, -2) == +4);
+assert(NativeMath.imul<f64>(0xffffffff, 5) == -5);
+assert(NativeMath.imul<f64>(0xfffffffe, 5) == -10);
+assert(NativeMath.imul<f64>(+1e+60,+1e+60) == 0);
+assert(NativeMath.imul<f64>(+1e+60,-1e+60) == 0);
+assert(NativeMath.imul<f64>(-1e+60,-1e+60) == 0);
+assert(NativeMath.imul<f64>(1e+24, 1e2) == -2147483648);
+assert(NativeMath.imul<f64>(NaN, 1.0) == 0);
+assert(NativeMath.imul<f64>(1.0, Infinity) == 0);
+assert(NativeMath.imul<f64>(f64.MAX_VALUE, f64.MAX_VALUE) == 0);
 
 // Math.clz32 /////////////////////////////////////////////////////////////////////////////////
 
-assert(NativeMath.clz32(0) == 32);
-assert(NativeMath.clz32(1) == 31);
-assert(NativeMath.clz32(-1) == 0);
-assert(NativeMath.clz32(-128) == 0);
-assert(NativeMath.clz32(4294967295.) == 0);
-assert(NativeMath.clz32(4294967295.5) == 0);
-assert(NativeMath.clz32(4294967296) == 32);
-assert(NativeMath.clz32(4294967297) == 31);
-assert(NativeMath.clz32(NaN) == 32);
-assert(NativeMath.clz32(Infinity) == 32);
-assert(NativeMath.clz32(f64.MAX_SAFE_INTEGER) == 0);
-assert(NativeMath.clz32(-f64.MAX_SAFE_INTEGER) == 31);
-assert(NativeMath.clz32(f64.MAX_VALUE) == 32);
-assert(NativeMath.clz32(f64.MIN_VALUE) == 32);
-assert(NativeMath.clz32(-f64.MAX_VALUE) == 32);
-assert(NativeMath.clz32(f64.EPSILON) == 32);
+assert(NativeMath.clz32<f64>(+0.0) == 32);
+assert(NativeMath.clz32<f64>(+1.0) == 31);
+assert(NativeMath.clz32<f64>(-1.0) == 0);
+assert(NativeMath.clz32<f64>(-128.0) == 0);
+assert(NativeMath.clz32<f64>(4294967295.0) == 0);
+assert(NativeMath.clz32<f64>(4294967295.5) == 0);
+assert(NativeMath.clz32<f64>(4294967296.0) == 32);
+assert(NativeMath.clz32<f64>(4294967297.0) == 31);
+assert(NativeMath.clz32<f64>(NaN) == 32);
+assert(NativeMath.clz32<f64>(Infinity) == 32);
+assert(NativeMath.clz32<f64>(+f64.MAX_SAFE_INTEGER) == 0);
+assert(NativeMath.clz32<f64>(-f64.MAX_SAFE_INTEGER) == 31);
+assert(NativeMath.clz32<f64>(+f64.MAX_VALUE) == 32);
+assert(NativeMath.clz32<f64>(+f64.MIN_VALUE) == 32);
+assert(NativeMath.clz32<f64>(-f64.MAX_VALUE) == 32);
+assert(NativeMath.clz32<f64>(+f64.EPSILON)   == 32);
 
 // ipow64 /////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat
index 4c91d5b5b2..23cce3a3d9 100644
--- a/tests/compiler/std/mod.debug.wat
+++ b/tests/compiler/std/mod.debug.wat
@@ -20,7 +20,7 @@
  (export "mod" (func $std/mod/mod))
  (export "memory" (memory $0))
  (start $~start)
- (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/mod64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -308,7 +308,7 @@
  (func $std/mod/test_fmod (param $0 f64) (param $1 f64) (param $2 f64) (result i32)
   local.get $0
   local.get $1
-  call $~lib/math/NativeMath.mod
+  call $~lib/util/math/mod64
   local.get $2
   call $std/mod/check<f64>
   if (result i32)
@@ -321,7 +321,7 @@
    i32.const 0
   end
  )
- (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/mod32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -603,7 +603,7 @@
  (func $std/mod/test_fmodf (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
   local.get $0
   local.get $1
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   local.get $2
   call $std/mod/check<f32>
  )
diff --git a/tests/compiler/std/mod.release.wat b/tests/compiler/std/mod.release.wat
index 02aa0af7af..e54da83efe 100644
--- a/tests/compiler/std/mod.release.wat
+++ b/tests/compiler/std/mod.release.wat
@@ -21,7 +21,7 @@
   (local $8 i64)
   (local $9 i64)
   block $__inlined_func$std/mod/check<f64> (result i32)
-   block $__inlined_func$~lib/math/NativeMath.mod (result f64)
+   block $__inlined_func$~lib/util/math/mod64 (result f64)
     local.get $0
     local.get $0
     f64.trunc
@@ -32,7 +32,7 @@
     f64.abs
     f64.const 1
     f64.eq
-    br_if $__inlined_func$~lib/math/NativeMath.mod
+    br_if $__inlined_func$~lib/util/math/mod64
     drop
     local.get $1
     i64.reinterpret_f64
@@ -69,7 +69,7 @@
      local.tee $4
      local.get $4
      f64.div
-     br $__inlined_func$~lib/math/NativeMath.mod
+     br $__inlined_func$~lib/util/math/mod64
     end
     local.get $7
     i64.const 1
@@ -84,7 +84,7 @@
      i64.ne
      f64.convert_i32_u
      f64.mul
-     br $__inlined_func$~lib/math/NativeMath.mod
+     br $__inlined_func$~lib/util/math/mod64
     end
     local.get $9
     i64.eqz
@@ -145,7 +145,7 @@
        local.get $3
        local.get $5
        i64.eq
-       br_if $__inlined_func$~lib/math/NativeMath.mod
+       br_if $__inlined_func$~lib/util/math/mod64
        drop
        local.get $3
        local.get $5
@@ -173,7 +173,7 @@
      local.get $3
      local.get $5
      i64.eq
-     br_if $__inlined_func$~lib/math/NativeMath.mod
+     br_if $__inlined_func$~lib/util/math/mod64
      drop
      local.get $3
      local.get $5
@@ -280,7 +280,7 @@
   (local $7 i32)
   (local $8 i32)
   block $__inlined_func$std/mod/check<f32> (result i32)
-   block $__inlined_func$~lib/math/NativeMathf.mod (result f32)
+   block $__inlined_func$~lib/util/math/mod32 (result f32)
     local.get $0
     local.get $0
     f32.trunc
@@ -291,7 +291,7 @@
     f32.abs
     f32.const 1
     f32.eq
-    br_if $__inlined_func$~lib/math/NativeMathf.mod
+    br_if $__inlined_func$~lib/util/math/mod32
     drop
     local.get $1
     i32.reinterpret_f32
@@ -329,7 +329,7 @@
      local.tee $0
      local.get $0
      f32.div
-     br $__inlined_func$~lib/math/NativeMathf.mod
+     br $__inlined_func$~lib/util/math/mod32
     end
     local.get $6
     i32.const 1
@@ -344,7 +344,7 @@
      i32.ne
      f32.convert_i32_u
      f32.mul
-     br $__inlined_func$~lib/math/NativeMathf.mod
+     br $__inlined_func$~lib/util/math/mod32
     end
     local.get $8
     if (result i32)
@@ -403,7 +403,7 @@
        local.get $3
        local.get $4
        i32.eq
-       br_if $__inlined_func$~lib/math/NativeMathf.mod
+       br_if $__inlined_func$~lib/util/math/mod32
        drop
        local.get $3
        local.get $4
@@ -431,7 +431,7 @@
      local.get $3
      local.get $4
      i32.eq
-     br_if $__inlined_func$~lib/math/NativeMathf.mod
+     br_if $__inlined_func$~lib/util/math/mod32
      drop
      local.get $3
      local.get $4
diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat
index 501886b768..4a0d2a22d7 100644
--- a/tests/compiler/std/operator-overloading.debug.wat
+++ b/tests/compiler/std/operator-overloading.debug.wat
@@ -2262,7 +2262,7 @@
   i32.rem_s
   call $std/operator-overloading/Tester#constructor
  )
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -2487,12 +2487,12 @@
   i32.load
   local.get $1
   i32.load
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   local.get $0
   i32.load offset=4
   local.get $1
   i32.load offset=4
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   call $std/operator-overloading/Tester#constructor
  )
  (func $std/operator-overloading/Tester.and (param $0 i32) (param $1 i32) (result i32)
diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat
index 1e748d4c25..d2a3a102f6 100644
--- a/tests/compiler/std/operator-overloading.release.wat
+++ b/tests/compiler/std/operator-overloading.release.wat
@@ -1288,7 +1288,7 @@
   i64.store align=1
   local.get $0
  )
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   i32.const 1
   local.set $2
@@ -2194,12 +2194,12 @@
   i32.load
   local.get $0
   i32.load
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   local.get $1
   i32.load offset=4
   local.get $0
   i32.load offset=4
-  call $~lib/math/ipow32
+  call $~lib/util/math/ipow32
   call $std/operator-overloading/Tester#constructor
   global.set $std/operator-overloading/p
   global.get $std/operator-overloading/p
diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat
index 6f811c67a5..e19cc4eeb3 100644
--- a/tests/compiler/std/string.debug.wat
+++ b/tests/compiler/std/string.debug.wat
@@ -4368,7 +4368,7 @@
   local.get $1
   call $~lib/util/string/strtol<i64>
  )
- (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (param $1 i32) (result i32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -4587,7 +4587,7 @@
   end
   local.get $2
  )
- (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64)
+ (func $~lib/util/math/scalbn64 (param $0 f64) (param $1 i32) (result f64)
   (local $2 f64)
   (local $3 i32)
   (local $4 i32)
@@ -5393,7 +5393,7 @@
      i32.const 0
      local.get $12
      i32.sub
-     call $~lib/math/ipow32
+     call $~lib/util/math/ipow32
      i64.extend_i32_s
      local.set $23
      local.get $19
@@ -5432,7 +5432,7 @@
      f64.convert_i64_u
      local.get $20
      i32.wrap_i64
-     call $~lib/math/NativeMath.scalbn
+     call $~lib/util/math/scalbn64
      br $~lib/util/string/scientific|inlined.0
     else
      local.get $17
@@ -5530,7 +5530,7 @@
      local.set $20
      i32.const 5
      local.get $13
-     call $~lib/math/ipow32
+     call $~lib/util/math/ipow32
      local.set $15
      local.get $20
      i64.const 4294967295
@@ -5593,7 +5593,7 @@
      f64.convert_i64_u
      local.get $24
      i32.wrap_i64
-     call $~lib/math/NativeMath.scalbn
+     call $~lib/util/math/scalbn64
      br $~lib/util/string/scientific|inlined.0
     end
     unreachable
@@ -11089,21 +11089,36 @@
    call $~lib/builtins/abort
    unreachable
   end
-  i32.const 2704
-  local.set $4
-  global.get $~lib/memory/__stack_pointer
-  local.get $4
-  i32.store
-  local.get $4
-  i32.const 0
-  call $~lib/string/parseInt
-  local.set $2
-  local.get $2
-  i64.reinterpret_f64
-  i64.const 63
-  i64.shr_u
-  i64.const 0
-  i64.ne
+  block $~lib/math/NativeMath.signbit<f64>|inlined.0 (result i32)
+   i32.const 2704
+   local.set $4
+   global.get $~lib/memory/__stack_pointer
+   local.get $4
+   i32.store
+   local.get $4
+   i32.const 0
+   call $~lib/string/parseInt
+   local.set $2
+   i32.const 0
+   drop
+   i32.const 1
+   drop
+   i32.const 8
+   i32.const 4
+   i32.eq
+   drop
+   i32.const 8
+   i32.const 8
+   i32.eq
+   drop
+   local.get $2
+   i64.reinterpret_f64
+   i64.const 63
+   i64.shr_u
+   i64.const 0
+   i64.ne
+   br $~lib/math/NativeMath.signbit<f64>|inlined.0
+  end
   i32.const 0
   i32.ne
   i32.eqz
diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat
index 34f0af40e5..5eb6b17bd7 100644
--- a/tests/compiler/std/string.release.wat
+++ b/tests/compiler/std/string.release.wat
@@ -3695,7 +3695,7 @@
   local.get $5
   i64.mul
  )
- (func $~lib/math/ipow32 (param $0 i32) (result i32)
+ (func $~lib/util/math/ipow32 (param $0 i32) (result i32)
   (local $1 i32)
   (local $2 i32)
   i32.const 5
@@ -3849,7 +3849,7 @@
   end
   local.get $2
  )
- (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64)
+ (func $~lib/util/math/scalbn64 (param $0 f64) (param $1 i32) (result f64)
   local.get $1
   i32.const 1023
   i32.gt_s
@@ -4566,7 +4566,7 @@
       i32.const 0
       local.get $1
       i32.sub
-      call $~lib/math/ipow32
+      call $~lib/util/math/ipow32
       i64.extend_i32_s
       local.tee $13
       i64.div_u
@@ -4596,7 +4596,7 @@
       local.get $12
       i64.sub
       i32.wrap_i64
-      call $~lib/math/NativeMath.scalbn
+      call $~lib/util/math/scalbn64
      else
       local.get $6
       local.get $6
@@ -4668,7 +4668,7 @@
        end
       end
       local.get $3
-      call $~lib/math/ipow32
+      call $~lib/util/math/ipow32
       i64.extend_i32_u
       local.tee $8
       local.get $6
@@ -4718,7 +4718,7 @@
       f64.convert_i64_u
       global.get $~lib/util/string/__fixmulShift
       i32.wrap_i64
-      call $~lib/math/NativeMath.scalbn
+      call $~lib/util/math/scalbn64
      end
     end
     local.set $9
diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat
index 103567e5ee..ede1714870 100644
--- a/tests/compiler/std/typedarray.debug.wat
+++ b/tests/compiler/std/typedarray.debug.wat
@@ -10626,7 +10626,7 @@
   i64.const 2
   i64.eq
  )
- (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32)
+ (func $~lib/util/math/mod32 (param $0 f32) (param $1 f32) (result f32)
   (local $2 i32)
   (local $3 i32)
   (local $4 i32)
@@ -10880,7 +10880,7 @@
  (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32)
   local.get $0
   f32.const 2
-  call $~lib/math/NativeMathf.mod
+  call $~lib/util/math/mod32
   f32.const 0
   f32.eq
  )
@@ -10946,7 +10946,7 @@
   f32.const 2
   f32.eq
  )
- (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64)
+ (func $~lib/util/math/mod64 (param $0 f64) (param $1 f64) (result f64)
   (local $2 i64)
   (local $3 i64)
   (local $4 i64)
@@ -11206,7 +11206,7 @@
  (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32)
   local.get $0
   f64.const 2
-  call $~lib/math/NativeMath.mod
+  call $~lib/util/math/mod64
   f64.const 0
   f64.eq
  )
diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat
index 8dfa871504..603387c8e3 100644
--- a/tests/compiler/std/typedarray.release.wat
+++ b/tests/compiler/std/typedarray.release.wat
@@ -4976,7 +4976,7 @@
  (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32)
   (local $3 i32)
   (local $4 i32)
-  block $__inlined_func$~lib/math/NativeMathf.mod (result f32)
+  block $__inlined_func$~lib/util/math/mod32 (result f32)
    local.get $0
    i32.reinterpret_f32
    local.tee $3
@@ -4994,7 +4994,7 @@
     local.tee $0
     local.get $0
     f32.div
-    br $__inlined_func$~lib/math/NativeMathf.mod
+    br $__inlined_func$~lib/util/math/mod32
    end
    local.get $3
    i32.const 1
@@ -5009,7 +5009,7 @@
     i32.ne
     f32.convert_i32_u
     f32.mul
-    br $__inlined_func$~lib/math/NativeMathf.mod
+    br $__inlined_func$~lib/util/math/mod32
    end
    local.get $2
    if (result i32)
@@ -5047,7 +5047,7 @@
       local.get $1
       i32.const 8388608
       i32.eq
-      br_if $__inlined_func$~lib/math/NativeMathf.mod
+      br_if $__inlined_func$~lib/util/math/mod32
       drop
       local.get $1
       i32.const 8388608
@@ -5075,7 +5075,7 @@
     local.get $1
     i32.const 8388608
     i32.eq
-    br_if $__inlined_func$~lib/math/NativeMathf.mod
+    br_if $__inlined_func$~lib/util/math/mod32
     drop
     local.get $1
     i32.const 8388608
@@ -5123,7 +5123,7 @@
   (local $4 i64)
   (local $5 i64)
   (local $6 i64)
-  block $__inlined_func$~lib/math/NativeMath.mod (result f64)
+  block $__inlined_func$~lib/util/math/mod64 (result f64)
    local.get $0
    i64.reinterpret_f64
    local.tee $5
@@ -5141,7 +5141,7 @@
     local.tee $0
     local.get $0
     f64.div
-    br $__inlined_func$~lib/math/NativeMath.mod
+    br $__inlined_func$~lib/util/math/mod64
    end
    local.get $5
    i64.const 1
@@ -5156,7 +5156,7 @@
     i64.ne
     f64.convert_i32_u
     f64.mul
-    br $__inlined_func$~lib/math/NativeMath.mod
+    br $__inlined_func$~lib/util/math/mod64
    end
    local.get $4
    i64.eqz
@@ -5195,7 +5195,7 @@
       local.get $3
       i64.const 4503599627370496
       i64.eq
-      br_if $__inlined_func$~lib/math/NativeMath.mod
+      br_if $__inlined_func$~lib/util/math/mod64
       drop
       local.get $3
       i64.const 4503599627370496
@@ -5223,7 +5223,7 @@
     local.get $3
     i64.const 4503599627370496
     i64.eq
-    br_if $__inlined_func$~lib/math/NativeMath.mod
+    br_if $__inlined_func$~lib/util/math/mod64
     drop
     local.get $3
     i64.const 4503599627370496
diff --git a/tests/compiler/wasi/seed.debug.wat b/tests/compiler/wasi/seed.debug.wat
index 2febc472fd..c123f9a68a 100644
--- a/tests/compiler/wasi/seed.debug.wat
+++ b/tests/compiler/wasi/seed.debug.wat
@@ -2,7 +2,6 @@
  (type $none_=>_f64 (func (result f64)))
  (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
  (type $i64_=>_i64 (func (param i64) (result i64)))
- (type $i32_=>_i32 (func (param i32) (result i32)))
  (type $i64_=>_none (func (param i64)))
  (type $none_=>_none (func))
  (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32)))
@@ -10,8 +9,6 @@
  (global $~lib/bindings/wasi/tempbuf i32 (i32.const 16))
  (global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
  (global $~lib/math/random_state1_64 (mut i64) (i64.const 0))
- (global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
- (global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
  (global $~lib/memory/__data_end i32 (i32.const 32))
  (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16416))
  (global $~lib/memory/__heap_base i32 (i32.const 16416))
@@ -41,7 +38,7 @@
   local.get $0
   f64.reinterpret_i64
  )
- (func $~lib/math/murmurHash3 (param $0 i64) (result i64)
+ (func $~lib/util/math/murmurHash3 (param $0 i64) (result i64)
   local.get $0
   local.get $0
   i64.const 33
@@ -70,41 +67,6 @@
   local.set $0
   local.get $0
  )
- (func $~lib/math/splitMix32 (param $0 i32) (result i32)
-  local.get $0
-  i32.const 1831565813
-  i32.add
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 15
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 1
-  i32.or
-  i32.mul
-  local.set $0
-  local.get $0
-  local.get $0
-  local.get $0
-  local.get $0
-  i32.const 7
-  i32.shr_u
-  i32.xor
-  local.get $0
-  i32.const 61
-  i32.or
-  i32.mul
-  i32.add
-  i32.xor
-  local.set $0
-  local.get $0
-  local.get $0
-  i32.const 14
-  i32.shr_u
-  i32.xor
- )
  (func $~lib/math/NativeMath.seedRandom (param $0 i64)
   local.get $0
   i64.const 0
@@ -114,20 +76,13 @@
    local.set $0
   end
   local.get $0
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state0_64
   global.get $~lib/math/random_state0_64
   i64.const -1
   i64.xor
-  call $~lib/math/murmurHash3
+  call $~lib/util/math/murmurHash3
   global.set $~lib/math/random_state1_64
-  local.get $0
-  i32.wrap_i64
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state0_32
-  global.get $~lib/math/random_state0_32
-  call $~lib/math/splitMix32
-  global.set $~lib/math/random_state1_32
   i32.const 1
   global.set $~lib/math/random_seeded
  )
diff --git a/tests/compiler/wasi/seed.release.wat b/tests/compiler/wasi/seed.release.wat
index d460121069..b584fb05ad 100644
--- a/tests/compiler/wasi/seed.release.wat
+++ b/tests/compiler/wasi/seed.release.wat
@@ -40,39 +40,39 @@
    i64.const -49064778989728563
    i64.mul
    local.tee $0
+   local.get $0
    i64.const 33
    i64.shr_u
-   local.get $0
    i64.xor
    i64.const -4265267296055464877
    i64.mul
    local.tee $0
+   local.get $0
    i64.const 33
    i64.shr_u
-   local.get $0
    i64.xor
    global.set $~lib/math/random_state0_64
    global.get $~lib/math/random_state0_64
    i64.const -1
    i64.xor
    local.tee $0
+   local.get $0
    i64.const 33
    i64.shr_u
-   local.get $0
    i64.xor
    i64.const -49064778989728563
    i64.mul
    local.tee $0
+   local.get $0
    i64.const 33
    i64.shr_u
-   local.get $0
    i64.xor
    i64.const -4265267296055464877
    i64.mul
    local.tee $0
+   local.get $0
    i64.const 33
    i64.shr_u
-   local.get $0
    i64.xor
    global.set $~lib/math/random_state1_64
    i32.const 1
@@ -90,9 +90,9 @@
   i64.shl
   i64.xor
   local.tee $1
+  local.get $1
   i64.const 17
   i64.shr_u
-  local.get $1
   i64.xor
   i64.xor
   local.get $0

From 7fafa430faed828b86c0431f930633a72dad4c32 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 00:20:15 +0300
Subject: [PATCH 02/14] lint

---
 std/assembly/util/math.ts | 58 ++++++++++++++-------------------------
 1 file changed, 20 insertions(+), 38 deletions(-)

diff --git a/std/assembly/util/math.ts b/std/assembly/util/math.ts
index 3538901286..0e0c7597a8 100644
--- a/std/assembly/util/math.ts
+++ b/std/assembly/util/math.ts
@@ -1,8 +1,7 @@
 // Lookup data for pio2f_large_quot
 
 // @ts-ignore: decorator
-@lazy @inline
-const PIO2_TABLE32 = memory.data<u64>([
+@lazy @inline const PIO2_TABLE32 = memory.data<u64>([
   0xA2F9836E4E441529,
   0xFC2757D1F534DDC0,
   0xDB6295993C439041,
@@ -13,8 +12,7 @@ const PIO2_TABLE32 = memory.data<u64>([
 
 /** @internal */
 // @ts-ignore: decorator
-@lazy @inline
-const PIO2_TABLE64 = memory.data<u64>([
+@lazy @inline const PIO2_TABLE64 = memory.data<u64>([
   0x00000000A2F9836E, 0x4E441529FC2757D1, 0xF534DDC0DB629599, 0x3C439041FE5163AB,
   0xDEBBC561B7246E3A, 0x424DD2E006492EEA, 0x09D1921CFE1DEB1C, 0xB129A73EE88235F5,
   0x2EBB4484E99C7026, 0xB45F7E413991D639, 0x835339F49C845F8B, 0xBDF9283B1FF897FF,
@@ -26,8 +24,7 @@ const PIO2_TABLE64 = memory.data<u64>([
 // Lookup data for exp2f
 
 // @ts-ignore: decorator
-@lazy @inline
-const EXP2_TABLE32 = memory.data<u64>([
+@lazy @inline const EXP2_TABLE32 = memory.data<u64>([
   // exp2f_data_tab[i] = uint(2^(i/N)) - (i << 52-BITS)
   // used for computing 2^(k/N) for an int |k| < 150 N as
   // double(tab[k%N] + (k << 52-BITS))
@@ -42,14 +39,12 @@ const EXP2_TABLE32 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const EXP2_TABLE32_BITS = 5;
+@inline const EXP2_TABLE32_BITS = 5;
 
 // Lookup data for log2f
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG2_TABLE32 = memory.data<u64>([
+@lazy @inline const LOG2_TABLE32 = memory.data<u64>([
   0x3FF661EC79F8F3BE, 0xBFDEFEC65B963019, // 0x1.661ec79f8f3bep+0, -0x1.efec65b963019p-2,
   0x3FF571ED4AAF883D, 0xBFDB0B6832D4FCA4, // 0x1.571ed4aaf883dp+0, -0x1.b0b6832d4fca4p-2,
   0x3FF49539F0F010B0, 0xBFD7418B0A1FB77B, // 0x1.49539f0f010bp+0 , -0x1.7418b0a1fb77bp-2,
@@ -69,14 +64,12 @@ const LOG2_TABLE32 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const LOG2_TABLE32_BITS = 4;
+@inline const LOG2_TABLE32_BITS = 4;
 
 // Lookup data for logf. See: https://git.musl-libc.org/cgit/musl/tree/src/math/logf.c
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG_TABLE32 = memory.data<u64>([
+@lazy @inline const LOG_TABLE32 = memory.data<u64>([
   0x3FF661EC79F8F3BE, 0xBFD57BF7808CAADE, // 0x1.661ec79f8f3bep+0, -0x1.57bf7808caadep-2,
   0x3FF571ED4AAF883D, 0xBFD2BEF0A7C06DDB, // 0x1.571ed4aaf883dp+0, -0x1.2bef0a7c06ddbp-2,
   0x3FF49539F0F010B0, 0xBFD01EAE7F513A67, // 0x1.49539f0f010bp+0 , -0x1.01eae7f513a67p-2,
@@ -96,14 +89,12 @@ const LOG_TABLE32 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const LOG_TABLE32_BITS = 4;
+@inline const LOG_TABLE32_BITS = 4;
 
 // Lookup data for exp. See: https://git.musl-libc.org/cgit/musl/tree/src/math/exp.c
 
 // @ts-ignore: decorator
-@lazy @inline
-const EXP_TABLE64 = memory.data<u64>([
+@lazy @inline const EXP_TABLE64 = memory.data<u64>([
   0x0000000000000000, 0x3FF0000000000000,
   0x3C9B3B4F1A88BF6E, 0x3FEFF63DA9FB3335,
   0xBC7160139CD8DC5D, 0x3FEFEC9A3E778061,
@@ -235,8 +226,7 @@ const EXP_TABLE64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const EXP_TABLE64_BITS = 7;
+@inline const EXP_TABLE64_BITS = 7;
 
 // Lookup data for log2. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log2.c
 
@@ -268,8 +258,7 @@ that logc + poly(z/c - 1) has small error, however near x == 1 when
 |log2(x)| < 0x1p-4, this is not enough so that is special cased. */
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG2_TABLE1_64 = memory.data<u64>([
+@lazy @inline const LOG2_TABLE1_64 = memory.data<u64>([
   //     invc       ,        logc
   0x3FF724286BB1ACF8, 0xBFE1095FEECDB000,
   0x3FF6E1F766D2CCA1, 0xBFE08494BD76D000,
@@ -338,8 +327,7 @@ const LOG2_TABLE1_64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG2_TABLE2_64 = memory.data<u64>([
+@lazy @inline const LOG2_TABLE2_64 = memory.data<u64>([
   //      chi       ,         clo
   0x3FE6200012B90A8E, 0x3C8904AB0644B605,
   0x3FE66000045734A6, 0x3C61FF9BEA62F7A9,
@@ -408,8 +396,7 @@ const LOG2_TABLE2_64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const LOG2_TABLE64_BITS = 6;
+@inline const LOG2_TABLE64_BITS = 6;
 
 // Lookup data for log. See: https://git.musl-libc.org/cgit/musl/tree/src/math/log.c
 
@@ -441,8 +428,7 @@ that logc + poly(z/c - 1) has small error, however near x == 1 when
 |log(x)| < 0x1p-4, this is not enough so that is special cased.*/
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG_TABLE1_64 = memory.data<u64>([
+@lazy @inline const LOG_TABLE1_64 = memory.data<u64>([
   //      invc      ,        logc
   0x3FF734F0C3E0DE9F, 0xBFD7CC7F79E69000,
   0x3FF713786A2CE91F, 0xBFD76FEEC20D0000,
@@ -575,8 +561,7 @@ const LOG_TABLE1_64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@lazy @inline
-const LOG_TABLE2_64 = memory.data<u64>([
+@lazy @inline const LOG_TABLE2_64 = memory.data<u64>([
   //      chi       ,         clo
   0x3FE61000014FB66B, 0x3C7E026C91425B3C,
   0x3FE63000034DB495, 0x3C8DBFEA48005D41,
@@ -709,8 +694,7 @@ const LOG_TABLE2_64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const LOG_TABLE64_BITS = 7;
+@inline const LOG_TABLE64_BITS = 7;
 
 // Lookup data for pow. See: https://git.musl-libc.org/cgit/musl/tree/src/math/pow.c
 
@@ -738,8 +722,7 @@ error and the interval for z is selected such that near x == 1, where log(x)
 is tiny, large cancellation error is avoided in logc + poly(z/c - 1). */
 
 // @ts-ignore: decorator
-@lazy @inline
-const POW_LOG_TABLE64 = memory.data<u64>([
+@lazy @inline const POW_LOG_TABLE64 = memory.data<u64>([
   //      invc      ,pad,       logc       ,       logctail
   0x3FF6A00000000000, 0, 0xBFD62C82F2B9C800, 0x3CFAB42428375680,
   0x3FF6800000000000, 0, 0xBFD5D1BDBF580800, 0xBD1CA508D8E0F720,
@@ -872,8 +855,7 @@ const POW_LOG_TABLE64 = memory.data<u64>([
 ]);
 
 // @ts-ignore: decorator
-@inline
-const POW_LOG_TABLE64_BITS = 7;
+@inline const POW_LOG_TABLE64_BITS = 7;
 
 
 /** @internal */
@@ -3778,7 +3760,7 @@ export function sincos32(x: f32): f32 { // see: musl/tree/src/math/sincosf.c
       if (ix <= 0x4016CBE3) { // |x| ~<= 3π/4
         if (sign) {
           sincos_cos32 = sin32_kern(x + s1pio2);
-          return -cos32_kern(x + s1pio2)
+          return -cos32_kern(x + s1pio2);
         } else {
           sincos_cos32 = sin32_kern(s1pio2 - x);
           return cos32_kern(s1pio2 - x);
@@ -3786,7 +3768,7 @@ export function sincos32(x: f32): f32 { // see: musl/tree/src/math/sincosf.c
       }
       // -sin(x + c) is not correct if x+c could be 0: -0 vs +0
       sincos_cos32 = -cos32_kern(sign ? x + s2pio2 : x - s2pio2);
-      return -sin32_kern(sign ? x + s2pio2 : x - s2pio2)
+      return -sin32_kern(sign ? x + s2pio2 : x - s2pio2);
     }
     if (ix <= 0x40E231D5) {   // |x| ~<= 9π/4
       if (ix <= 0x40AFEDDF) { // |x| ~<= 7π/4

From e746365ae9845d794a5b0e21f7829d09c8721766 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 00:26:54 +0300
Subject: [PATCH 03/14] cleanups

---
 src/common.ts              |  1 -
 tests/compiler/std/math.ts | 68 +++++++++++++++++++-------------------
 2 files changed, 34 insertions(+), 35 deletions(-)

diff --git a/src/common.ts b/src/common.ts
index 84c29477b2..21e61c6e8a 100644
--- a/src/common.ts
+++ b/src/common.ts
@@ -216,7 +216,6 @@ export namespace CommonNames {
   export const ArrayBufferView = "ArrayBufferView";
   export const ArrayBuffer = "ArrayBuffer";
   export const Math = "Math";
-  export const Mathf = "Mathf";
   export const NativeMath = "NativeMath";
   export const Int8Array = "Int8Array";
   export const Int16Array = "Int16Array";
diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts
index 2eab118334..f3884109a7 100644
--- a/tests/compiler/std/math.ts
+++ b/tests/compiler/std/math.ts
@@ -231,7 +231,7 @@ assert(test_abs(Infinity, Infinity, 0.0, 0));
 assert(test_abs(-Infinity, Infinity, 0.0, 0));
 assert(test_abs(NaN, NaN, 0.0, 0));
 
-// Mathf.abs ///////////////////////////////////////////////////////////////////////////////////////
+// Math.abs<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_absf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.abs<f32>(value), expected, error, flags);
@@ -291,7 +291,7 @@ assert(test_acos(NaN, NaN, 0.0, 0));
 assert(test_acos(-0.530922720959298489, 2.13048537997054632, 0.139100849628448486, INEXACT));
 assert(test_acos(0.493955674639974585, 1.05416298758519456, 0.220547676086425781, INEXACT));
 
-// Mathf.acos //////////////////////////////////////////////////////////////////////////////////////
+// Math.acos<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_acosf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.acos<f32>(value), expected, error, flags);
@@ -372,7 +372,7 @@ assert(test_acosh(1.10608311999264286, 0.45663734043848031, -0.29381608963012695
 assert(test_acosh(1.10898095576286582, 0.462724685995942797, -0.399009555578231812, INEXACT));
 assert(test_acosh(1.11694291598755213, 0.47902433134075284, -0.321674108505249023, INEXACT));
 
-// Mathf.acosh /////////////////////////////////////////////////////////////////////////////////////
+// Math.acosh<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_acoshf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.acosh<f32>(value), expected, error, flags);
@@ -433,7 +433,7 @@ assert(test_asin(-Infinity, NaN, 0.0, INVALID));
 assert(test_asin(NaN, NaN, 0.0, 0));
 assert(test_asin(0.507304392911914759, 0.53205389977723494, -0.161573171615600586, INEXACT));
 
-// Mathf.asin //////////////////////////////////////////////////////////////////////////////////////
+// Math.asin<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_asinf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.asin<f32>(value), expected, error, flags);
@@ -511,7 +511,7 @@ assert(test_asinh(-0.0, -0.0, 0.0, 0));
 // assert(test_asinh(0.489993198082535886, 0.472243604962259256, -0.437918633222579956, INEXACT));
 // assert(test_asinh(0.519085143365399015, 0.498216616337933904, -0.420524448156356812, INEXACT));
 
-// Mathf.asinh /////////////////////////////////////////////////////////////////////////////////////
+// Math.asinh<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_asinhf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.asinh<f32>(value), expected, error, flags);
@@ -567,7 +567,7 @@ assert(test_atan(-Infinity, -1.57079632679489656, 0.275765955448150635, INEXACT)
 assert(test_atan(NaN, NaN, 0.0, 0));
 assert(test_atan(0.6929821535674624, 0.606000455515256164, -0.170757904648780823, INEXACT));
 
-// Mathf.atan //////////////////////////////////////////////////////////////////////////////////////
+// Math.atan<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_atanf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.atan<f32>(value), expected, error, flags);
@@ -631,7 +631,7 @@ assert(test_atanh(5.56268464626800346e-309, 5.56268464626800346e-309, 0.0, INEXA
 assert(test_atanh(-5.56268464626800346e-309, -5.56268464626800346e-309, 0.0, INEXACT | UNDERFLOW));
 assert(test_atanh(8.98846567431157954e+307, NaN, 0.0, INVALID));
 
-// Mathf.atanh /////////////////////////////////////////////////////////////////////////////////////
+// Math.atanh<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_atanhf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.atanh<f32>(value), expected, error, flags);
@@ -718,7 +718,7 @@ assert(test_atan2(1.0, 8.98846567431157954e+307, 1.11253692925360069e-308, 0.0,
 assert(test_atan2(1.5, 8.98846567431157954e+307, 1.66880539388040104e-308, 0.0, INEXACT | UNDERFLOW));
 assert(test_atan2(1.5, -8.98846567431157954e+307, 3.14159265358979312, 0.0, INEXACT));
 
-// Mathf.atan2 /////////////////////////////////////////////////////////////////////////////////////
+// Math.atan2<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_atan2f(value1: f32, value2: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.atan2<f32>(value1, value2), expected, error, flags);
@@ -799,7 +799,7 @@ assert(test_cbrt(1.0, 1.0, 0.0, 0));
 assert(test_cbrt(-1.0, -1.0, 0.0, 0));
 assert(test_cbrt(8.0, 2.0, 0.0, 0));
 
-// Mathf.cbrt //////////////////////////////////////////////////////////////////////////////////////
+// Math.cbrt<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_cbrtf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.cbrt<f32>(value), expected, error, flags);
@@ -897,7 +897,7 @@ assert(test_ceil(-0.99999237060546875, -0.0, 0.0, INEXACT));
 assert(test_ceil(7.88860905221011805e-31, 1.0, 0.0, INEXACT));
 assert(test_ceil(-7.88860905221011805e-31, -0.0, 0.0, INEXACT));
 
-// Mathf.ceil //////////////////////////////////////////////////////////////////////////////////////
+// Math.ceil<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_ceilf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.ceil<f32>(value), expected, error, flags);
@@ -1138,7 +1138,7 @@ assert(NativeMath.cos(13.0 / 4 * kPI) == -0.7071067811865471);
 assert(NativeMath.cos<f64>(1000000.0) == 0.9367521275331447);
 assert(NativeMath.cos(1048575.0 / 2 * kPI) == -3.435757038074824e-12);
 
-// Mathf.cos ///////////////////////////////////////////////////////////////////////////////////////
+// Math.cos<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_cosf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return  check<f32>(NativeMath.cos<f32>(value), expected, error, flags);
@@ -1246,7 +1246,7 @@ assert(test_cosh(Infinity, Infinity, 0.0, 0));
 assert(test_cosh(-Infinity, Infinity, 0.0, 0));
 assert(test_cosh(NaN, NaN, 0.0, 0));
 
-// Mathf.cosh //////////////////////////////////////////////////////////////////////////////////////
+// Math.cosh<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_coshf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.cosh<f32>(value), expected, error, flags);
@@ -1440,7 +1440,7 @@ assert(test_exp(
   INEXACT
 )); // -2.714495295208544660026143771835e-14
 
-// Mathf.exp ///////////////////////////////////////////////////////////////////////////////////////
+// Math.exp<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_expf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.exp<f32>(value), expected, error, flags);
@@ -1506,7 +1506,7 @@ assert(test_expm1(NaN, NaN, 0.0, 0));
 assert(test_expm1(2.22507385850720089e-308, 2.22507385850720089e-308, 0.0, INEXACT | UNDERFLOW));
 assert(test_expm1(-2.22507385850720089e-308,-2.22507385850720089e-308, 0.0, INEXACT | UNDERFLOW));
 
-// Mathf.expm1 /////////////////////////////////////////////////////////////////////////////////////
+// Math.expm1<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_expm1f(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.expm1<f32>(value), expected, error, flags);
@@ -1582,7 +1582,7 @@ assert(test_exp2(reinterpret<f64>(0xC090CC0000000000),
 assert(test_exp2(reinterpret<f64>(0xC0A0000000000000),                                   0,                                     0, INEXACT | UNDERFLOW));
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
-// Mathf.exp2
+// Math.exp2<f32>
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 function test_exp2f(value: f32, expected: f32, error: f32, flags: i32): bool {
@@ -1639,7 +1639,7 @@ assert(test_floor(-0.99999237060546875, -1.0, 0.0, INEXACT));
 assert(test_floor(7.88860905221011805e-31, 0.0, 0.0, INEXACT));
 assert(test_floor(-7.88860905221011805e-31, -1.0, 0.0, INEXACT));
 
-// Mathf.floor /////////////////////////////////////////////////////////////////////////////////////
+// Math.floor<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_floorf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.floor<f32>(value), expected, error, flags);
@@ -1720,7 +1720,7 @@ assert(test_hypot(1.0, NaN, NaN, 0.0, 0));
 assert(test_hypot(NaN, 0.0, NaN, 0.0, 0));
 assert(test_hypot(0.0, NaN, NaN, 0.0, 0));
 
-// Mathf.hypot /////////////////////////////////////////////////////////////////////////////////////
+// Math.hypot<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_hypotf(value1: f32, value2: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.hypot<f32>(value1, value2), expected, error, flags);
@@ -1790,7 +1790,7 @@ assert(test_log(Infinity, Infinity, 0.0, 0));
 assert(test_log(-Infinity, NaN, 0.0, INVALID));
 assert(test_log(NaN, NaN, 0.0, 0));
 
-// Mathf.log ///////////////////////////////////////////////////////////////////////////////////////
+// Math.log<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_logf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.log<f32>(value), expected, error, flags);
@@ -1847,7 +1847,7 @@ assert(test_log10(Infinity, Infinity, 0.0, 0));
 assert(test_log10(-Infinity, NaN, 0.0, INVALID));
 assert(test_log10(NaN, NaN, 0.0, 0));
 
-// Mathf.log10 /////////////////////////////////////////////////////////////////////////////////////
+// Math.log10<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_log10f(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.log10<f32>(value), expected, error, flags);
@@ -1906,7 +1906,7 @@ assert(test_log1p(Infinity, Infinity, 0.0, 0));
 assert(test_log1p(-Infinity, NaN, 0.0, INVALID));
 assert(test_log1p(NaN, NaN, 0.0, 0));
 
-// Mathf.log1p /////////////////////////////////////////////////////////////////////////////////////
+// Math.log1p<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_log1pf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.log1p<f32>(value), expected, error, flags);
@@ -1966,7 +1966,7 @@ assert(test_log2(Infinity, Infinity, 0.0, 0));
 assert(test_log2(-Infinity, NaN, 0.0, INVALID));
 assert(test_log2(NaN, NaN, 0.0, 0));
 
-// Mathf.log2 //////////////////////////////////////////////////////////////////////////////////////
+// Math.log2<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_log2f(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.log2<f32>(value), expected, error, flags);
@@ -2075,7 +2075,7 @@ assert(test_max(-1.75, 0.5, 0.5, 0.0, 0));
 assert(test_max(1.75, -0.5, 1.75, 0.0, 0));
 assert(test_max(-1.75, -0.5, -0.5, 0.0, 0));
 
-// Mathf.max ///////////////////////////////////////////////////////////////////////////////////////
+// Math.max<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_maxf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.max<f32>(left, right), expected, error, flags);
@@ -2234,7 +2234,7 @@ assert(test_min(-1.75, 0.5, -1.75, 0.0, 0));
 assert(test_min(1.75, -0.5, -0.5, 0.0, 0));
 assert(test_min(-1.75, -0.5, -1.75, 0.0, 0));
 
-// Mathf.min ///////////////////////////////////////////////////////////////////////////////////////
+// Math.min<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_minf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.min<f32>(left, right), expected, error, flags);
@@ -2481,7 +2481,7 @@ assert(test_mod(reinterpret<f64>(0x0010000000000006), reinterpret<f64>(0x0010000
 assert(test_mod(reinterpret<f64>(0x001FFFFFFFFFFFFF), reinterpret<f64>(0x0020000000000000), reinterpret<f64>(0x001FFFFFFFFFFFFF), 0.0, 0));
 assert(test_mod(reinterpret<f64>(0x009FFFFFFFFFFFFF), reinterpret<f64>(0x0090000000000000), reinterpret<f64>(0x008FFFFFFFFFFFFE), 0.0, 0));
 
-// Mathf.mod ///////////////////////////////////////////////////////////////////////////////////////
+// Math.mod<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_modf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.mod<f32>(left, right), expected, error, flags);
@@ -2726,7 +2726,7 @@ assert(NativeMath.pow<f64>(+Infinity, 0.5) == +Infinity);
 assert(NativeMath.pow<f64>(-Infinity, 0.5) == +Infinity);
 assert(isNaN(NativeMath.pow<f64>(NaN, 0.5)));
 
-// Mathf.pow ///////////////////////////////////////////////////////////////////////////////////////
+// Math.pow<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_powf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.pow<f32>(left, right), expected, error, flags);
@@ -3044,7 +3044,7 @@ assert(NativeMath.round( 9007199254740991.0) ==  9007199254740991.0); // round(+
 assert(NativeMath.round(-9007199254740991.0) == -9007199254740991.0); // round(-(2 ** 53 - 1)) == -(2 ** 53 - 1)
 assert(NativeMath.round(-1.7976931348623157e+308) == -1.7976931348623157e+308);
 
-// Mathf.round /////////////////////////////////////////////////////////////////////////////////////
+// Math.round<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_roundf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return  check<f32>(NativeMath.round<f32>(value), expected, error, flags);
@@ -3100,7 +3100,7 @@ assert(test_sign(Infinity, 1.0, 0.0, 0));
 assert(test_sign(-Infinity, -1.0, 0.0, 0));
 assert(test_sign(NaN, NaN, 0.0, 0));
 
-// Mathf.sign //////////////////////////////////////////////////////////////////////////////////////
+// Math.sign<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_signf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return  check<f32>(NativeMath.sign<f32>(value), expected, error, flags);
@@ -3130,7 +3130,7 @@ assert(NativeMath.signbit(+Infinity) == false);
 assert(NativeMath.signbit(-Infinity) == true);
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
-// Mathf.signbit
+// Math.signbit<f32>
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 assert(NativeMath.signbit<f32>(0.0)  == false);
@@ -3239,7 +3239,7 @@ assert(NativeMath.sin(1048576.0 / 4 * kPI) == -3.2103381051568376e-11);
 assert(NativeMath.sin(+kTwo120) == +0.377820109360752e0);
 assert(NativeMath.sin(-kTwo120) == -0.377820109360752e0);
 
-// Mathf.sin ///////////////////////////////////////////////////////////////////////////////////////
+// Math.sin<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_sinf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.sin<f32>(value), expected, error, flags);
@@ -3348,7 +3348,7 @@ assert(test_sinh(Infinity, Infinity, 0.0, 0));
 assert(test_sinh(-Infinity, -Infinity, 0.0, 0));
 assert(test_sinh(NaN, NaN, 0.0, 0));
 
-// Mathf.sinh //////////////////////////////////////////////////////////////////////////////////////
+// Math.sinh<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_sinhf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.sinh<f32>(value), expected, error, flags);
@@ -3470,7 +3470,7 @@ assert(test_sqrt(2.64615054688296253e-306, 1.62669927979419815e-153, 0.499867290
 assert(test_sqrt(3.81670763677204135e-306, 1.95363958722483965e-153, 0.499834716320037842, INEXACT));
 assert(test_sqrt(4.57432207785627658e-306, 2.13876648511619359e-153, 0.499859392642974854, INEXACT));
 
-// Mathf.sqrt //////////////////////////////////////////////////////////////////////////////////////
+// Math.sqrt<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_sqrtf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.sqrt<f32>(value), expected, error, flags);
@@ -3599,7 +3599,7 @@ assert(test_tan(Infinity, NaN, 0.0, INVALID));
 assert(test_tan(-Infinity, NaN, 0.0, INVALID));
 assert(test_tan(NaN, NaN, 0.0, 0));
 
-// Mathf.tan ///////////////////////////////////////////////////////////////////////////////////////
+// Math.tan<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_tanf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.tan<f32>(value), expected, error, flags);
@@ -3690,7 +3690,7 @@ assert(test_tanh(Infinity, 1.0, 0.0, 0));
 assert(test_tanh(-Infinity, -1.0, 0.0, 0));
 assert(test_tanh(NaN, NaN, 0.0, 0));
 
-// Mathf.tanh //////////////////////////////////////////////////////////////////////////////////////
+// Math.tanh<f32> //////////////////////////////////////////////////////////////////////////////////////
 
 function test_tanhf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.tanh<f32>(value), expected, error, flags);
@@ -3753,7 +3753,7 @@ assert(test_trunc(-0.99999237060546875, -0.0, 0.0, INEXACT));
 assert(test_trunc(7.88860905221011805e-31, 0.0, 0.0, INEXACT));
 assert(test_trunc(-7.88860905221011805e-31, -0.0, 0.0, INEXACT));
 
-// Mathf.trunc /////////////////////////////////////////////////////////////////////////////////////
+// Math.trunc<f32> /////////////////////////////////////////////////////////////////////////////////////
 
 function test_truncf(value: f32, expected: f32, error: f32, flags: i32): bool {
   return check<f32>(NativeMath.trunc<f32>(value), expected, error, flags);

From 3bd9eda58d22f26b83467b3a4901b13f1bf2775a Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 08:02:20 +0300
Subject: [PATCH 04/14] defs

---
 std/assembly/index.d.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index cfd56543e6..e8b1f75dc4 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2062,7 +2062,7 @@ interface IMath {
   cbrt<T extends f32 | f64>(x: T): T;
   /** Returns the smallest integer greater than or equal to `x`. */
   ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
-  /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. */
+  /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. @deprecate */
   clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
   /** Returns the cosine (in radians) of `x`. */
   cos<T extends f32 | f64>(x: T): T;
@@ -2078,8 +2078,8 @@ interface IMath {
   fround<T extends f32 | f64>(x: T): T;
   /** Returns the square root of the sum of squares of its arguments. */
   hypot<T extends f32 | f64>(a: T, b: T): T; // TODO: rest
-  /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. */
-  imul<T extends f32 | f64>(a: T, b: T): T;
+  /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. @deprecate */
+  imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T;
   /** Returns the natural logarithm (base e) of `x`. */
   log<T extends f32 | f64>(x: T): T;
   /** Returns the base 10 logarithm of `x`. */

From c059065866e80a11145ad59d0f418f6a4df56854 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 08:10:36 +0300
Subject: [PATCH 05/14] remove NativeMath#mod but still test it

---
 std/assembly/index.d.ts             |    2 -
 std/assembly/math.ts                |   19 +-
 tests/compiler/std/math.debug.wat   | 5510 +++++++++++++--------------
 tests/compiler/std/math.release.wat | 5438 +++++++++++++-------------
 tests/compiler/std/math.ts          |    8 +-
 5 files changed, 5461 insertions(+), 5516 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index e8b1f75dc4..0c123a4437 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2124,8 +2124,6 @@ interface INativeMath extends IMath {
   sincos_cos: f64;
   /** Seeds the random number generator. */
   seedRandom(value: i64): void;
-  /** Returns the floating-point remainder of `x / y` (rounded towards zero). */
-  mod<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T, y: T): T;
   /** Returns sin and cos simultaneously for same angle. Results stored to `sincos_s32/64` and `sincos_c32/64` globals */
   sincos<T extends f32 | f64>(x: T): void;
   /** Returns 2 raised to the given power x. Equivalent to 2 ** x. */
diff --git a/std/assembly/math.ts b/std/assembly/math.ts
index 929cbc342d..676d3b74fe 100644
--- a/std/assembly/math.ts
+++ b/std/assembly/math.ts
@@ -3,8 +3,6 @@ export { JSMath };
 
 import {
   dtoi32, murmurHash3,
-  ipow32, ipow64,
-  mod32, mod64,
   acos32, acos64,
   acosh32, acosh64,
   asin32, asin64,
@@ -22,6 +20,7 @@ import {
   log2_32, log2_64,
   log10_32, log10_64,
   hypot32, hypot64,
+  ipow32, ipow64,
   pow32, pow64,
   sin32, sin64,
   sinh32, sinh64,
@@ -617,22 +616,6 @@ export namespace NativeMath {
     }
   }
 
-  // @ts-ignore: decorator
-  @inline
-  export function mod<T extends number = f64>(x: T, y: T): T {
-    if (isInteger<T>()) {
-      return <T>(x % y);
-    } else if (isFloat<T>()) {
-      if (sizeof<T>() == 4) {
-        return <T>mod32(x, y);
-      }
-      if (sizeof<T>() == 8) {
-        return <T>mod64(x, y);
-      }
-    }
-    return ERROR("Math.mod accept only numeric types");
-  }
-
   // @ts-ignore: decorator
   @inline
   export function sincos<T extends number = f64>(x: T): void {
diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat
index 10a4e8404c..887d6e8af2 100644
--- a/tests/compiler/std/math.debug.wat
+++ b/tests/compiler/std/math.debug.wat
@@ -9871,30 +9871,9 @@
   f64.reinterpret_i64
  )
  (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
-  (local $5 f64)
-  (local $6 f64)
-  block $~lib/math/NativeMath.mod<f64>|inlined.0 (result f64)
-   local.get $0
-   local.set $6
-   local.get $1
-   local.set $5
-   i32.const 0
-   drop
-   i32.const 1
-   drop
-   i32.const 8
-   i32.const 4
-   i32.eq
-   drop
-   i32.const 8
-   i32.const 8
-   i32.eq
-   drop
-   local.get $6
-   local.get $5
-   call $~lib/util/math/mod64
-   br $~lib/math/NativeMath.mod<f64>|inlined.0
-  end
+  local.get $0
+  local.get $1
+  call $~lib/util/math/mod64
   local.get $2
   local.get $3
   local.get $4
@@ -10163,26 +10142,9 @@
   f32.reinterpret_i32
  )
  (func $std/math/test_modf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
-  (local $5 f32)
-  (local $6 f32)
-  block $~lib/math/NativeMath.mod<f32>|inlined.0 (result f32)
-   local.get $0
-   local.set $6
-   local.get $1
-   local.set $5
-   i32.const 0
-   drop
-   i32.const 1
-   drop
-   i32.const 4
-   i32.const 4
-   i32.eq
-   drop
-   local.get $6
-   local.get $5
-   call $~lib/util/math/mod32
-   br $~lib/math/NativeMath.mod<f32>|inlined.0
-  end
+  local.get $0
+  local.get $1
+  call $~lib/util/math/mod32
   local.get $2
   local.get $3
   local.get $4
@@ -16392,7 +16354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 116
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16406,7 +16368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 117
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16420,7 +16382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 118
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16434,7 +16396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 119
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16448,7 +16410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 120
+   i32.const 122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16462,7 +16424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 121
+   i32.const 123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16476,7 +16438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 122
+   i32.const 124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16491,7 +16453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 133
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16506,7 +16468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 134
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16521,7 +16483,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 135
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16536,7 +16498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 136
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16551,7 +16513,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 137
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16566,7 +16528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 138
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16581,7 +16543,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 139
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16596,7 +16558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 140
+   i32.const 142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16611,7 +16573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 141
+   i32.const 143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16626,7 +16588,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 142
+   i32.const 144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16641,7 +16603,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 145
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16656,7 +16618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 146
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16671,7 +16633,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 147
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16686,7 +16648,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 148
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16701,7 +16663,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 149
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16718,7 +16680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 150
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16733,7 +16695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 151
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16748,7 +16710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 152
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16763,7 +16725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 153
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16780,7 +16742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 154
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16795,7 +16757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 155
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16810,7 +16772,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 156
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16825,7 +16787,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 157
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16842,7 +16804,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 158
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16857,7 +16819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 159
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16872,7 +16834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 160
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16889,7 +16851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 161
+   i32.const 163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16906,7 +16868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 162
+   i32.const 164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16923,7 +16885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 163
+   i32.const 165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16938,7 +16900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 172
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16953,7 +16915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 173
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16968,7 +16930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 174
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16983,7 +16945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 175
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16998,7 +16960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 176
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17013,7 +16975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 177
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17028,7 +16990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 178
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17043,7 +17005,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 179
+   i32.const 181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17058,7 +17020,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 180
+   i32.const 182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17073,7 +17035,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 181
+   i32.const 183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17088,7 +17050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 184
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17103,7 +17065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 185
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17118,7 +17080,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 186
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17133,7 +17095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 187
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17148,7 +17110,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 188
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17165,7 +17127,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 189
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17180,7 +17142,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 190
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17195,7 +17157,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 191
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17210,7 +17172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 192
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17227,7 +17189,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 193
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17242,7 +17204,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 194
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17257,7 +17219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 195
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17272,7 +17234,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 196
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17289,7 +17251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 197
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17304,7 +17266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 198
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17319,7 +17281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 199
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17336,7 +17298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 200
+   i32.const 202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17353,7 +17315,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 201
+   i32.const 203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17370,7 +17332,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 202
+   i32.const 204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17384,7 +17346,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 214
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17398,7 +17360,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 215
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17412,7 +17374,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 216
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17426,7 +17388,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 217
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17440,7 +17402,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 218
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17454,7 +17416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 219
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17468,7 +17430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 220
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17482,7 +17444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 221
+   i32.const 223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17496,7 +17458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 222
+   i32.const 224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17510,7 +17472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 223
+   i32.const 225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17524,7 +17486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 226
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17538,7 +17500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 227
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17552,7 +17514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 228
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17566,7 +17528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 229
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17580,7 +17542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 230
+   i32.const 232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17595,7 +17557,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 231
+   i32.const 233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17609,7 +17571,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 232
+   i32.const 234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17623,7 +17585,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 241
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17637,7 +17599,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 242
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17651,7 +17613,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 243
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17665,7 +17627,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 244
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17679,7 +17641,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 245
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17693,7 +17655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 246
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17707,7 +17669,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 247
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17721,7 +17683,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 248
+   i32.const 250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17735,7 +17697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 249
+   i32.const 251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17749,7 +17711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 250
+   i32.const 252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17763,7 +17725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 253
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17777,7 +17739,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 254
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17791,7 +17753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 255
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17805,7 +17767,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 256
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17819,7 +17781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 257
+   i32.const 259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17834,7 +17796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 258
+   i32.const 260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17848,7 +17810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 259
+   i32.const 261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17862,7 +17824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 271
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17876,7 +17838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 272
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17890,7 +17852,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 273
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17904,7 +17866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 274
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17918,7 +17880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 275
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17932,7 +17894,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 276
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17946,7 +17908,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 277
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17960,7 +17922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 278
+   i32.const 280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17974,7 +17936,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 279
+   i32.const 281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17988,7 +17950,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 280
+   i32.const 282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18002,7 +17964,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 283
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18016,7 +17978,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 284
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18030,7 +17992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 285
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18044,7 +18006,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 286
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18058,7 +18020,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 287
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18072,7 +18034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 288
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18087,7 +18049,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 289
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18101,7 +18063,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 290
+   i32.const 292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18115,7 +18077,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 291
+   i32.const 293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18129,7 +18091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 292
+   i32.const 294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18143,7 +18105,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 301
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18157,7 +18119,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 302
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18171,7 +18133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 303
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18185,7 +18147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 304
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18199,7 +18161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 305
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18213,7 +18175,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 306
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18227,7 +18189,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 307
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18241,7 +18203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 308
+   i32.const 310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18255,7 +18217,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 309
+   i32.const 311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18269,7 +18231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 310
+   i32.const 312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18283,7 +18245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 313
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18297,7 +18259,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 314
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18311,7 +18273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 315
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18325,7 +18287,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 316
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18339,7 +18301,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 317
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18353,7 +18315,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 318
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18368,7 +18330,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 319
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18382,7 +18344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 320
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18396,7 +18358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 321
+   i32.const 323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18410,7 +18372,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 322
+   i32.const 324
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18424,7 +18386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 323
+   i32.const 325
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18438,7 +18400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 335
+   i32.const 337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18452,7 +18414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 336
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18466,7 +18428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 337
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18480,7 +18442,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 338
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18494,7 +18456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 339
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18508,7 +18470,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 340
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18522,7 +18484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 341
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18536,7 +18498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 342
+   i32.const 344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18550,7 +18512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 343
+   i32.const 345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18564,7 +18526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 344
+   i32.const 346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18578,7 +18540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 347
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18592,7 +18554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 348
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18606,7 +18568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 349
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18620,7 +18582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 350
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18634,7 +18596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 351
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18648,7 +18610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 352
+   i32.const 354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18662,7 +18624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 353
+   i32.const 355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18677,7 +18639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 354
+   i32.const 356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18691,7 +18653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 370
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18705,7 +18667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 372
+   i32.const 374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18719,7 +18681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 373
+   i32.const 375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18733,7 +18695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 382
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18747,7 +18709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 383
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18761,7 +18723,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 384
+   i32.const 386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18775,7 +18737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 385
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18789,7 +18751,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 386
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18803,7 +18765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 387
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18817,7 +18779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 388
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18831,7 +18793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 389
+   i32.const 391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18845,7 +18807,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 390
+   i32.const 392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18859,7 +18821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 391
+   i32.const 393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18873,7 +18835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 394
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18887,7 +18849,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 395
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18901,7 +18863,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 396
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18915,7 +18877,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 397
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18929,7 +18891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 398
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18943,7 +18905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 399
+   i32.const 401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18958,7 +18920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 400
+   i32.const 402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18972,7 +18934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 401
+   i32.const 403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18986,7 +18948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 413
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19000,7 +18962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 414
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19014,7 +18976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 415
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19028,7 +18990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 416
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19042,7 +19004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 417
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19056,7 +19018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 418
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19070,7 +19032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 419
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19084,7 +19046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 420
+   i32.const 422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19098,7 +19060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 421
+   i32.const 423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19112,7 +19074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 422
+   i32.const 424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19126,7 +19088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 425
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19140,7 +19102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 426
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19154,7 +19116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 427
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19168,7 +19130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 428
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19182,7 +19144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 429
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19196,7 +19158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 430
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19210,7 +19172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 431
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19225,7 +19187,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 432
+   i32.const 434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19239,7 +19201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 433
+   i32.const 435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19253,7 +19215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 434
+   i32.const 436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19267,7 +19229,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 443
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19281,7 +19243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 444
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19295,7 +19257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 445
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19309,7 +19271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 446
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19323,7 +19285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 447
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19337,7 +19299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 448
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19351,7 +19313,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 449
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19365,7 +19327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 450
+   i32.const 452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19379,7 +19341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 451
+   i32.const 453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19393,7 +19355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 452
+   i32.const 454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19407,7 +19369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 455
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19421,7 +19383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 456
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19435,7 +19397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 457
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19449,7 +19411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 458
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19463,7 +19425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 459
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19477,7 +19439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 460
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19491,7 +19453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 461
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19506,7 +19468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 462
+   i32.const 464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19520,7 +19482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 463
+   i32.const 465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19534,7 +19496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 464
+   i32.const 466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19548,7 +19510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 476
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19562,7 +19524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 477
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19576,7 +19538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 478
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19590,7 +19552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 479
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19604,7 +19566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 480
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19618,7 +19580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 481
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19632,7 +19594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 482
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19646,7 +19608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 483
+   i32.const 485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19660,7 +19622,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 484
+   i32.const 486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19674,7 +19636,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 485
+   i32.const 487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19688,7 +19650,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 488
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19702,7 +19664,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 489
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19718,7 +19680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 490
+   i32.const 492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19732,7 +19694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 491
+   i32.const 493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19746,7 +19708,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 492
+   i32.const 494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19760,7 +19722,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 521
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19774,7 +19736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 522
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19788,7 +19750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 523
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19802,7 +19764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 524
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19816,7 +19778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 525
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19830,7 +19792,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 526
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19844,7 +19806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 527
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19858,7 +19820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 528
+   i32.const 530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19872,7 +19834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 529
+   i32.const 531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19886,7 +19848,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 530
+   i32.const 532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19900,7 +19862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 533
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19914,7 +19876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 534
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19930,7 +19892,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 535
+   i32.const 537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19944,7 +19906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 536
+   i32.const 538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19958,7 +19920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 537
+   i32.const 539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19972,7 +19934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 549
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19986,7 +19948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 550
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20000,7 +19962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 551
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20014,7 +19976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 552
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20028,7 +19990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 553
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20042,7 +20004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 554
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20056,7 +20018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 555
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20070,7 +20032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 556
+   i32.const 558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20084,7 +20046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 557
+   i32.const 559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20098,7 +20060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 558
+   i32.const 560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20112,7 +20074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 561
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20126,7 +20088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 562
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20140,7 +20102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 563
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20154,7 +20116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 564
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20168,7 +20130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 565
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20183,7 +20145,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 566
+   i32.const 568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20197,7 +20159,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 567
+   i32.const 569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20211,7 +20173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 568
+   i32.const 570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20225,7 +20187,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 577
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20239,7 +20201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 578
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20253,7 +20215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 579
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20267,7 +20229,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 580
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20281,7 +20243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 581
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20295,7 +20257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 582
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20309,7 +20271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 583
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20323,7 +20285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 584
+   i32.const 586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20337,7 +20299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 585
+   i32.const 587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20351,7 +20313,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 586
+   i32.const 588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20365,7 +20327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 589
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20379,7 +20341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 590
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20393,7 +20355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 591
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20407,7 +20369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 592
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20421,7 +20383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 593
+   i32.const 595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20436,7 +20398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 594
+   i32.const 596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20450,7 +20412,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 595
+   i32.const 597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20464,7 +20426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 607
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20478,7 +20440,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 608
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20492,7 +20454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 609
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20506,7 +20468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 610
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20520,7 +20482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 611
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20534,7 +20496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 612
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20548,7 +20510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 613
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20562,7 +20524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 614
+   i32.const 616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20576,7 +20538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 615
+   i32.const 617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20590,7 +20552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 616
+   i32.const 618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20604,7 +20566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 619
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20618,7 +20580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 620
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20633,7 +20595,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 621
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20647,7 +20609,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 622
+   i32.const 624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20661,7 +20623,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 623
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20675,7 +20637,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 624
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20690,7 +20652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 625
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20704,7 +20666,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 626
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20718,7 +20680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 627
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20732,7 +20694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 628
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20746,7 +20708,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 629
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20762,7 +20724,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 630
+   i32.const 632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20778,7 +20740,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 631
+   i32.const 633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20792,7 +20754,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 632
+   i32.const 634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20806,7 +20768,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 641
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20820,7 +20782,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 642
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20834,7 +20796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 643
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20848,7 +20810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 644
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20862,7 +20824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 645
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20876,7 +20838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 646
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20890,7 +20852,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 647
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20904,7 +20866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 648
+   i32.const 650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20918,7 +20880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 649
+   i32.const 651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20932,7 +20894,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 650
+   i32.const 652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20946,7 +20908,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 653
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20960,7 +20922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 654
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20975,7 +20937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 655
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20989,7 +20951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 656
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21003,7 +20965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 657
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21017,7 +20979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 658
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21032,7 +20994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 659
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21046,7 +21008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 660
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21060,7 +21022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 661
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21074,7 +21036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 662
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21088,7 +21050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 663
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21104,7 +21066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 664
+   i32.const 666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21120,7 +21082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 665
+   i32.const 667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21134,7 +21096,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 666
+   i32.const 668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21149,7 +21111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 678
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21164,7 +21126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 679
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21179,7 +21141,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 680
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21194,7 +21156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 681
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21209,7 +21171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 682
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21224,7 +21186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 683
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21239,7 +21201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 684
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21254,7 +21216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 685
+   i32.const 687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21269,7 +21231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 686
+   i32.const 688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21284,7 +21246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 687
+   i32.const 689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21299,7 +21261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 690
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21314,7 +21276,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 691
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21329,7 +21291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 692
+   i32.const 694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21345,7 +21307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 693
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21360,7 +21322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 694
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21375,7 +21337,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 695
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21390,7 +21352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 696
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21405,7 +21367,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 697
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21420,7 +21382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 698
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21436,7 +21398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 699
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21451,7 +21413,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 700
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21466,7 +21428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 701
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21481,7 +21443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 702
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21496,7 +21458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 703
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21511,7 +21473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 704
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21526,7 +21488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 705
+   i32.const 707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21541,7 +21503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 706
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21556,7 +21518,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 707
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21572,7 +21534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 708
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21588,7 +21550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 709
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21603,7 +21565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 710
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21619,7 +21581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 711
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21634,7 +21596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 712
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21650,7 +21612,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 713
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21666,7 +21628,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 714
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21683,7 +21645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 715
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21700,7 +21662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 716
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21717,7 +21679,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 717
+   i32.const 719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21734,7 +21696,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 718
+   i32.const 720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21749,7 +21711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 719
+   i32.const 721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21764,7 +21726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 728
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21779,7 +21741,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 729
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21794,7 +21756,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 730
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21809,7 +21771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 731
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21824,7 +21786,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 732
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21839,7 +21801,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 733
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21854,7 +21816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 734
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21869,7 +21831,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 735
+   i32.const 737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21884,7 +21846,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 736
+   i32.const 738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21899,7 +21861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 737
+   i32.const 739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21914,7 +21876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 740
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21929,7 +21891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 741
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21944,7 +21906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 742
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21960,7 +21922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 743
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21975,7 +21937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 744
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21990,7 +21952,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 745
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22005,7 +21967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 746
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22020,7 +21982,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 747
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22035,7 +21997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 748
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22051,7 +22013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 749
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22066,7 +22028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 750
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22081,7 +22043,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 751
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22096,7 +22058,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 752
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22111,7 +22073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 753
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22126,7 +22088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 754
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22141,7 +22103,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 755
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22156,7 +22118,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 756
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22171,7 +22133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 757
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22187,7 +22149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 758
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22203,7 +22165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 759
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22218,7 +22180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 760
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22234,7 +22196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 761
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22249,7 +22211,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 762
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22265,7 +22227,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 763
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22281,7 +22243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 764
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22298,7 +22260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 765
+   i32.const 767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22315,7 +22277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 766
+   i32.const 768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22332,7 +22294,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 767
+   i32.const 769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22346,7 +22308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 779
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22360,7 +22322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 780
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22374,7 +22336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 781
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22388,7 +22350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 782
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22402,7 +22364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 783
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22416,7 +22378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 784
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22430,7 +22392,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 785
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22444,7 +22406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 786
+   i32.const 788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22458,7 +22420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 787
+   i32.const 789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22472,7 +22434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 788
+   i32.const 790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22486,7 +22448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 791
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22500,7 +22462,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 792
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22516,7 +22478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 793
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22530,7 +22492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 794
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22544,7 +22506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 795
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22558,7 +22520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 796
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22572,7 +22534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 797
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22586,7 +22548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 798
+   i32.const 800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22600,7 +22562,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 799
+   i32.const 801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22614,7 +22576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 800
+   i32.const 802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22628,7 +22590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 809
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22642,7 +22604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 810
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22656,7 +22618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 811
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22670,7 +22632,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 812
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22684,7 +22646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 813
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22698,7 +22660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 814
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22712,7 +22674,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 815
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22726,7 +22688,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 816
+   i32.const 818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22740,7 +22702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 817
+   i32.const 819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22754,7 +22716,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 818
+   i32.const 820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22768,7 +22730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 821
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22782,7 +22744,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 822
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22798,7 +22760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 823
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22812,7 +22774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 824
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22826,7 +22788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 825
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22840,7 +22802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 826
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22854,7 +22816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 827
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22868,7 +22830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 828
+   i32.const 830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22882,7 +22844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 829
+   i32.const 831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22896,7 +22858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 830
+   i32.const 832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22910,7 +22872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 842
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22924,7 +22886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 843
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22938,7 +22900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 844
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22952,7 +22914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 845
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22966,7 +22928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 846
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22980,7 +22942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 847
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22994,7 +22956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 848
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23008,7 +22970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 849
+   i32.const 851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23022,7 +22984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 850
+   i32.const 852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23036,7 +22998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 851
+   i32.const 853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23050,7 +23012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 854
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23064,7 +23026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 855
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23080,7 +23042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 856
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23094,7 +23056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 857
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23108,7 +23070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 858
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23122,7 +23084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 859
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23136,7 +23098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 860
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23150,7 +23112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 861
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23164,7 +23126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 862
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23178,7 +23140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 863
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23192,7 +23154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 864
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23206,7 +23168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 865
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23220,7 +23182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 866
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23234,7 +23196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 867
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23248,7 +23210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 868
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23262,7 +23224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 869
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23276,7 +23238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 870
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23292,7 +23254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 871
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23306,7 +23268,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 872
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23320,7 +23282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 873
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23334,7 +23296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 874
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23348,7 +23310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 875
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23362,7 +23324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 876
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23376,7 +23338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 877
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23390,7 +23352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 878
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23404,7 +23366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 879
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23418,7 +23380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 880
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23432,7 +23394,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 881
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23446,7 +23408,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 882
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23460,7 +23422,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 883
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23474,7 +23436,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 884
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23488,7 +23450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 885
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23504,7 +23466,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 886
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23518,7 +23480,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 887
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23532,7 +23494,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 888
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23546,7 +23508,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 889
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23560,7 +23522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 890
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23574,7 +23536,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 891
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23588,7 +23550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 892
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23602,7 +23564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 893
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23616,7 +23578,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 894
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23630,7 +23592,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 895
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23644,7 +23606,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 896
+   i32.const 898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23658,7 +23620,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 897
+   i32.const 899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23672,7 +23634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 898
+   i32.const 900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23686,7 +23648,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 907
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23700,7 +23662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 908
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23714,7 +23676,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 909
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23728,7 +23690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 910
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23742,7 +23704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 911
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23756,7 +23718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 912
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23770,7 +23732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 913
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23784,7 +23746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 914
+   i32.const 916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23798,7 +23760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 915
+   i32.const 917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23812,7 +23774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 916
+   i32.const 918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23826,7 +23788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 919
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23840,7 +23802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 920
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23856,7 +23818,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 921
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23870,7 +23832,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 922
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23884,7 +23846,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 923
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23898,7 +23860,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 924
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23912,7 +23874,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 925
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23926,7 +23888,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 926
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23940,7 +23902,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 927
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23954,7 +23916,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 928
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23968,7 +23930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 929
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23982,7 +23944,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 930
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23996,7 +23958,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 931
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24010,7 +23972,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 932
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24024,7 +23986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 933
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24038,7 +24000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 934
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24052,7 +24014,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 935
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24068,7 +24030,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 936
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24082,7 +24044,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 937
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24096,7 +24058,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 938
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24110,7 +24072,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 939
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24124,7 +24086,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 940
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24138,7 +24100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 941
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24152,7 +24114,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 942
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24166,7 +24128,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 943
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24180,7 +24142,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 944
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24194,7 +24156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 945
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24208,7 +24170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 946
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24222,7 +24184,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 947
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24236,7 +24198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 948
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24250,7 +24212,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 949
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24264,7 +24226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 950
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24280,7 +24242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 951
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24294,7 +24256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 952
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24308,7 +24270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 953
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24322,7 +24284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 954
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24336,7 +24298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 955
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24350,7 +24312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 956
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24364,7 +24326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 957
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24378,7 +24340,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 958
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24392,7 +24354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 959
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24406,7 +24368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 960
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24420,7 +24382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 961
+   i32.const 963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24434,7 +24396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 962
+   i32.const 964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24448,7 +24410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 963
+   i32.const 965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24462,7 +24424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 974
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24476,7 +24438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 975
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24490,7 +24452,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 976
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24504,7 +24466,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 977
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24518,7 +24480,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 978
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24532,7 +24494,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 979
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24546,7 +24508,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 980
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24560,7 +24522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 981
+   i32.const 983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24574,7 +24536,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 982
+   i32.const 984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24588,7 +24550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 983
+   i32.const 985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24602,7 +24564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 986
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24616,7 +24578,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 987
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24630,7 +24592,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 988
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24645,7 +24607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 989
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24659,7 +24621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 990
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24673,7 +24635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 991
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24687,7 +24649,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 992
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24701,7 +24663,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 993
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24715,7 +24677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 994
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24729,7 +24691,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 995
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24743,7 +24705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 996
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24757,7 +24719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 997
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24771,7 +24733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 998
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24785,7 +24747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 999
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24799,7 +24761,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1000
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24813,7 +24775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1001
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24827,7 +24789,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1002
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24841,7 +24803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1003
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24855,7 +24817,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1004
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24869,7 +24831,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1005
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24883,7 +24845,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1006
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24897,7 +24859,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1007
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24911,7 +24873,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1008
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24925,7 +24887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1009
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24939,7 +24901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1010
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24953,7 +24915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1011
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24967,7 +24929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1012
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24981,7 +24943,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1013
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24995,7 +24957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1014
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25009,7 +24971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1015
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25023,7 +24985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1016
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25037,7 +24999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1017
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25051,7 +25013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1018
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25065,7 +25027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1019
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25079,7 +25041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1020
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25093,7 +25055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1021
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25107,7 +25069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1022
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25121,7 +25083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1023
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25135,7 +25097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1024
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25149,7 +25111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1025
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25163,7 +25125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1026
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25177,7 +25139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1027
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25191,7 +25153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1028
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25205,7 +25167,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1029
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25219,7 +25181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1030
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25233,7 +25195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1031
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25247,7 +25209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1032
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25261,7 +25223,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1033
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25275,7 +25237,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1034
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25289,7 +25251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1035
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25303,7 +25265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1036
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25317,7 +25279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1037
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25331,7 +25293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1038
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25345,7 +25307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1039
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25359,7 +25321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1040
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25373,7 +25335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1041
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25387,7 +25349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1042
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25401,7 +25363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1043
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25415,7 +25377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1044
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25429,7 +25391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1045
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25443,7 +25405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1046
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25457,7 +25419,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1047
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25471,7 +25433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1048
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25485,7 +25447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1049
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25499,7 +25461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1050
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25513,7 +25475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1051
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25527,7 +25489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1052
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25541,7 +25503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1053
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25555,7 +25517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1054
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25569,7 +25531,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1055
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25583,7 +25545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1056
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25597,7 +25559,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1057
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25611,7 +25573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1058
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25625,7 +25587,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1059
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25639,7 +25601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1060
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25653,7 +25615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1061
+   i32.const 1063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25667,7 +25629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1062
+   i32.const 1064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25681,7 +25643,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1063
+   i32.const 1065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25695,7 +25657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1066
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25709,7 +25671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1067
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25723,7 +25685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1068
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25737,7 +25699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1069
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25751,7 +25713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1070
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25765,7 +25727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1071
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25779,7 +25741,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1072
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25793,7 +25755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1073
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25807,7 +25769,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1074
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25821,7 +25783,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1075
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25835,7 +25797,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1076
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25849,7 +25811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1077
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25863,7 +25825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1078
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25877,7 +25839,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1079
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25891,7 +25853,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1080
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25905,7 +25867,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1081
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25919,7 +25881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1082
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25933,7 +25895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1083
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25947,7 +25909,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1084
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25961,7 +25923,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1085
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25975,7 +25937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1086
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25989,7 +25951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1087
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26003,7 +25965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1088
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26017,7 +25979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1089
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26031,7 +25993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1090
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26045,7 +26007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1091
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26059,7 +26021,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1092
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26073,7 +26035,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1093
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26087,7 +26049,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1094
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26101,7 +26063,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1095
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26115,7 +26077,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1096
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26129,7 +26091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1097
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26143,7 +26105,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1098
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26157,7 +26119,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1099
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26171,7 +26133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1100
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26185,7 +26147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1101
+   i32.const 1103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26199,7 +26161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1102
+   i32.const 1104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26213,7 +26175,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1103
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26246,7 +26208,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1105
+   i32.const 1107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26283,7 +26245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1106
+   i32.const 1108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26316,7 +26278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1107
+   i32.const 1109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26344,7 +26306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1111
+   i32.const 1113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26372,7 +26334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1112
+   i32.const 1114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26400,7 +26362,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1115
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26428,7 +26390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1117
+   i32.const 1119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26456,7 +26418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1118
+   i32.const 1120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26484,7 +26446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1121
+   i32.const 1123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26512,7 +26474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1123
+   i32.const 1125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26540,7 +26502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1126
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26568,7 +26530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1128
+   i32.const 1130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26596,7 +26558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1129
+   i32.const 1131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26624,7 +26586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1130
+   i32.const 1132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26652,7 +26614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1132
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26684,7 +26646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1134
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26716,7 +26678,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1135
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26748,7 +26710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1136
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26780,7 +26742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1137
+   i32.const 1139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26808,7 +26770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1138
+   i32.const 1140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26840,7 +26802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1139
+   i32.const 1141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26854,7 +26816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1148
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26868,7 +26830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1149
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26882,7 +26844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1150
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26896,7 +26858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1151
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26910,7 +26872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1152
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26924,7 +26886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1153
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26938,7 +26900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1154
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26952,7 +26914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1155
+   i32.const 1157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26966,7 +26928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1156
+   i32.const 1158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26980,7 +26942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1157
+   i32.const 1159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26994,7 +26956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1160
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27008,7 +26970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1161
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27022,7 +26984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1162
+   i32.const 1164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27037,7 +26999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1163
+   i32.const 1165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27051,7 +27013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1164
+   i32.const 1166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27065,7 +27027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1167
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27079,7 +27041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1168
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27093,7 +27055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1169
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27107,7 +27069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1170
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27121,7 +27083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1171
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27135,7 +27097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1172
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27149,7 +27111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1173
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27163,7 +27125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1174
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27177,7 +27139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1175
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27191,7 +27153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1176
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27205,7 +27167,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1177
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27219,7 +27181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1178
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27233,7 +27195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1179
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27247,7 +27209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1180
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27261,7 +27223,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1181
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27275,7 +27237,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1182
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27289,7 +27251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1183
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27303,7 +27265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1184
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27317,7 +27279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1185
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27331,7 +27293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1186
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27345,7 +27307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1187
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27359,7 +27321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1188
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27373,7 +27335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1189
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27387,7 +27349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1190
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27401,7 +27363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1191
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27415,7 +27377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1192
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27429,7 +27391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1193
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27443,7 +27405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1194
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27457,7 +27419,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1195
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27471,7 +27433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1196
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27485,7 +27447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1197
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27499,7 +27461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1198
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27513,7 +27475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1199
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27527,7 +27489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1200
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27541,7 +27503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1201
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27555,7 +27517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1202
+   i32.const 1204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27569,7 +27531,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1203
+   i32.const 1205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27583,7 +27545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1204
+   i32.const 1206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27597,7 +27559,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1207
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27611,7 +27573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1208
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27625,7 +27587,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1209
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27639,7 +27601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1210
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27653,7 +27615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1211
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27667,7 +27629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1212
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27681,7 +27643,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1213
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27695,7 +27657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1214
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27709,7 +27671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1215
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27723,7 +27685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1216
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27737,7 +27699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1217
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27751,7 +27713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1218
+   i32.const 1220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27765,7 +27727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1219
+   i32.const 1221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27780,7 +27742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1220
+   i32.const 1222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27794,7 +27756,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1231
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27808,7 +27770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1232
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27822,7 +27784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1233
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27836,7 +27798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1234
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27850,7 +27812,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1235
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27864,7 +27826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1236
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27878,7 +27840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1237
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27892,7 +27854,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1238
+   i32.const 1240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27906,7 +27868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1239
+   i32.const 1241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27920,7 +27882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1240
+   i32.const 1242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27934,7 +27896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1243
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27948,7 +27910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1244
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27962,7 +27924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1245
+   i32.const 1247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27977,7 +27939,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1246
+   i32.const 1248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27991,7 +27953,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1247
+   i32.const 1249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28005,7 +27967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1256
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28019,7 +27981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1257
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28033,7 +27995,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1258
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28047,7 +28009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1259
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28061,7 +28023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1260
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28075,7 +28037,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1261
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28089,7 +28051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1262
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28103,7 +28065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1263
+   i32.const 1265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28117,7 +28079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1264
+   i32.const 1266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28131,7 +28093,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1265
+   i32.const 1267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28145,7 +28107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1268
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28159,7 +28121,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1269
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28173,7 +28135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1270
+   i32.const 1272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28188,7 +28150,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1271
+   i32.const 1273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28202,7 +28164,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1272
+   i32.const 1274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28216,7 +28178,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1284
+   i32.const 1286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28230,7 +28192,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1285
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28244,7 +28206,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1286
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28258,7 +28220,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1287
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28272,7 +28234,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1288
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28286,7 +28248,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1289
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28300,7 +28262,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1290
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28314,7 +28276,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1291
+   i32.const 1293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28328,7 +28290,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1292
+   i32.const 1294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28342,7 +28304,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1293
+   i32.const 1295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28356,7 +28318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1296
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28370,7 +28332,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1297
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28384,7 +28346,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1298
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28398,7 +28360,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1299
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28412,7 +28374,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1300
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28427,7 +28389,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1301
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28441,7 +28403,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1302
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28455,7 +28417,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1303
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28469,7 +28431,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1304
+   i32.const 1306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28483,7 +28445,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1305
+   i32.const 1307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28497,7 +28459,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1306
+   i32.const 1308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28511,7 +28473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1309
+   i32.const 1311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28526,7 +28488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1310
+   i32.const 1312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28543,7 +28505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1312
+   i32.const 1314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28560,7 +28522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1319
+   i32.const 1321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28578,7 +28540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1320
+   i32.const 1322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28596,7 +28558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1327
+   i32.const 1329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28613,7 +28575,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1334
+   i32.const 1336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28632,7 +28594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1341
+   i32.const 1343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28649,7 +28611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1348
+   i32.const 1350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28666,7 +28628,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1355
+   i32.const 1357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28683,7 +28645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1362
+   i32.const 1364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28700,7 +28662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1368
+   i32.const 1370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28717,7 +28679,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1374
+   i32.const 1376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28734,7 +28696,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1380
+   i32.const 1382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28751,7 +28713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1387
+   i32.const 1389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28768,7 +28730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1394
+   i32.const 1396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28785,7 +28747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1401
+   i32.const 1403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28802,7 +28764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1408
+   i32.const 1410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28819,7 +28781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1415
+   i32.const 1417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28836,7 +28798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1422
+   i32.const 1424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28853,7 +28815,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1429
+   i32.const 1431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28870,7 +28832,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1436
+   i32.const 1438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28884,7 +28846,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1450
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28898,7 +28860,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1451
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28912,7 +28874,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1452
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28926,7 +28888,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1453
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28940,7 +28902,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1454
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28954,7 +28916,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1455
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28968,7 +28930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1456
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28982,7 +28944,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1457
+   i32.const 1459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28996,7 +28958,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1458
+   i32.const 1460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29010,7 +28972,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1459
+   i32.const 1461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29024,7 +28986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1462
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29038,7 +29000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1463
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29052,7 +29014,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1464
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29066,7 +29028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1465
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29080,7 +29042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1466
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29095,7 +29057,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1467
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29109,7 +29071,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1468
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29123,7 +29085,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1469
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29139,7 +29101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1470
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29155,7 +29117,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1471
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29171,7 +29133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1472
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29185,7 +29147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1473
+   i32.const 1475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29199,7 +29161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1474
+   i32.const 1476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29213,7 +29175,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1475
+   i32.const 1477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29227,7 +29189,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1487
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29241,7 +29203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1488
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29255,7 +29217,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1489
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29269,7 +29231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1490
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29283,7 +29245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1491
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29297,7 +29259,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1492
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29311,7 +29273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1493
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29325,7 +29287,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1494
+   i32.const 1496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29339,7 +29301,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1495
+   i32.const 1497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29353,7 +29315,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1496
+   i32.const 1498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29367,7 +29329,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1499
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29381,7 +29343,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1500
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29395,7 +29357,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1501
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29409,7 +29371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1502
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29423,7 +29385,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1503
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29438,7 +29400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1504
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29452,7 +29414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1505
+   i32.const 1507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29468,7 +29430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1506
+   i32.const 1508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29484,7 +29446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1507
+   i32.const 1509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29498,7 +29460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1516
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29512,7 +29474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1517
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29526,7 +29488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1518
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29540,7 +29502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1519
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29554,7 +29516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1520
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29568,7 +29530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1521
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29582,7 +29544,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1522
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29596,7 +29558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1523
+   i32.const 1525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29610,7 +29572,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1524
+   i32.const 1526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29624,7 +29586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1525
+   i32.const 1527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29638,7 +29600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1528
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29652,7 +29614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1529
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29666,7 +29628,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1530
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29680,7 +29642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1531
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29694,7 +29656,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1532
+   i32.const 1534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29709,7 +29671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1533
+   i32.const 1535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29723,7 +29685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1534
+   i32.const 1536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29740,7 +29702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1546
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29757,7 +29719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1547
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29774,7 +29736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1548
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29791,7 +29753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1549
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29808,7 +29770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1550
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29825,7 +29787,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1551
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29842,7 +29804,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1552
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29859,7 +29821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1553
+   i32.const 1555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29876,7 +29838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1554
+   i32.const 1556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29893,7 +29855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1555
+   i32.const 1557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29908,7 +29870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1558
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29923,7 +29885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1559
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29938,7 +29900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1560
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29953,7 +29915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1561
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29967,7 +29929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1562
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29982,7 +29944,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1563
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29996,7 +29958,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1564
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30013,7 +29975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1565
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30030,7 +29992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1566
+   i32.const 1568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30046,7 +30008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1567
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30065,7 +30027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1568
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30081,7 +30043,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1569
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30098,7 +30060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1570
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30115,7 +30077,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1571
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30132,7 +30094,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1572
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30149,7 +30111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1573
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30168,7 +30130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1574
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30184,7 +30146,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1575
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30203,7 +30165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1576
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30219,7 +30181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1577
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30235,7 +30197,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1578
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30251,7 +30213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1579
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30270,7 +30232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1580
+   i32.const 1582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30288,7 +30250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1581
+   i32.const 1583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30305,7 +30267,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1582
+   i32.const 1584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30325,7 +30287,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1593
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30345,7 +30307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1594
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30365,7 +30327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1595
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30385,7 +30347,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1596
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30405,7 +30367,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1597
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30425,7 +30387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1598
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30445,7 +30407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1599
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30465,7 +30427,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1600
+   i32.const 1602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30485,7 +30447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1601
+   i32.const 1603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30505,7 +30467,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1602
+   i32.const 1604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30519,7 +30481,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1614
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30533,7 +30495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1615
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30547,7 +30509,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1616
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30561,7 +30523,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1617
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30575,7 +30537,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1618
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30589,7 +30551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1619
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30603,7 +30565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1620
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30617,7 +30579,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1621
+   i32.const 1623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30631,7 +30593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1622
+   i32.const 1624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30645,7 +30607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1623
+   i32.const 1625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30659,7 +30621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1626
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30673,7 +30635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1627
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30689,7 +30651,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1628
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30703,7 +30665,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1629
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30717,7 +30679,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1630
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30731,7 +30693,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1631
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30745,7 +30707,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1632
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30759,7 +30721,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1633
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30773,7 +30735,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1634
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30787,7 +30749,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1635
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30801,7 +30763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1636
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30815,7 +30777,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1637
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30829,7 +30791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1638
+   i32.const 1640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30843,7 +30805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1639
+   i32.const 1641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30857,7 +30819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1640
+   i32.const 1642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30871,7 +30833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1649
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30885,7 +30847,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1650
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30899,7 +30861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1651
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30913,7 +30875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1652
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30927,7 +30889,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1653
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30941,7 +30903,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1654
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30955,7 +30917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1655
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30969,7 +30931,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1656
+   i32.const 1658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30983,7 +30945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1657
+   i32.const 1659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30997,7 +30959,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1658
+   i32.const 1660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31011,7 +30973,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1661
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31025,7 +30987,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1662
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31041,7 +31003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1663
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31055,7 +31017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1664
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31069,7 +31031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1665
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31083,7 +31045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1666
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31097,7 +31059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1667
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31111,7 +31073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1668
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31125,7 +31087,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1669
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31139,7 +31101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1670
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31153,7 +31115,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1671
+   i32.const 1673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31167,7 +31129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1672
+   i32.const 1674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31181,7 +31143,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1673
+   i32.const 1675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31195,7 +31157,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1674
+   i32.const 1676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31209,7 +31171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1675
+   i32.const 1677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31224,7 +31186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1689
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31239,7 +31201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1690
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31254,7 +31216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1691
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31269,7 +31231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1692
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31284,7 +31246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1693
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31299,7 +31261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1694
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31314,7 +31276,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1695
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31329,7 +31291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1696
+   i32.const 1698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31344,7 +31306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1697
+   i32.const 1699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31359,7 +31321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1698
+   i32.const 1700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31374,7 +31336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1701
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31389,7 +31351,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1702
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31404,7 +31366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1703
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31419,7 +31381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1704
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31434,7 +31396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1705
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31449,7 +31411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1706
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31464,7 +31426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1707
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31479,7 +31441,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1708
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31494,7 +31456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1709
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31509,7 +31471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1710
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31524,7 +31486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1711
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31539,7 +31501,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1712
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31554,7 +31516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1713
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31570,7 +31532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1714
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31586,7 +31548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1715
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31602,7 +31564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1716
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31618,7 +31580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1717
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31633,7 +31595,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1718
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31648,7 +31610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1719
+   i32.const 1721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31663,7 +31625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1720
+   i32.const 1722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31678,7 +31640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1721
+   i32.const 1723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31693,7 +31655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1730
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31708,7 +31670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1731
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31723,7 +31685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1732
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31738,7 +31700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1733
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31753,7 +31715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1734
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31768,7 +31730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1735
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31783,7 +31745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1736
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31798,7 +31760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1737
+   i32.const 1739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31813,7 +31775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1738
+   i32.const 1740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31828,7 +31790,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1739
+   i32.const 1741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31843,7 +31805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1742
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31858,7 +31820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1743
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31873,7 +31835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1744
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31888,7 +31850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1745
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31903,7 +31865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1746
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31918,7 +31880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1747
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31933,7 +31895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1748
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31948,7 +31910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1749
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31963,7 +31925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1750
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31978,7 +31940,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1751
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31993,7 +31955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1752
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32008,7 +31970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1753
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32023,7 +31985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1754
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32039,7 +32001,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1755
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32055,7 +32017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1756
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32071,7 +32033,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1757
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32087,7 +32049,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1758
+   i32.const 1760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32102,7 +32064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1759
+   i32.const 1761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32117,7 +32079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1760
+   i32.const 1762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32131,7 +32093,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1772
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32145,7 +32107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1773
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32159,7 +32121,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1774
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32173,7 +32135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1775
+   i32.const 1777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32187,7 +32149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1776
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32201,7 +32163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1777
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32215,7 +32177,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1778
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32229,7 +32191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1779
+   i32.const 1781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32243,7 +32205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1780
+   i32.const 1782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32257,7 +32219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1781
+   i32.const 1783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32272,7 +32234,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1784
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32287,7 +32249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1785
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32301,7 +32263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1786
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32315,7 +32277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1787
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32329,7 +32291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1788
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32343,7 +32305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1789
+   i32.const 1791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32358,7 +32320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1790
+   i32.const 1792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32372,7 +32334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1791
+   i32.const 1793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32387,7 +32349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1800
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32402,7 +32364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1801
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32416,7 +32378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1802
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32430,7 +32392,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1803
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32444,7 +32406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1804
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32458,7 +32420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1805
+   i32.const 1807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32473,7 +32435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1806
+   i32.const 1808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32487,7 +32449,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1807
+   i32.const 1809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32502,7 +32464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1810
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32517,7 +32479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1811
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32531,7 +32493,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1812
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32545,7 +32507,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1813
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32559,7 +32521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1814
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32573,7 +32535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1815
+   i32.const 1817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32588,7 +32550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1816
+   i32.const 1818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32602,7 +32564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1817
+   i32.const 1819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32616,7 +32578,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1829
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32630,7 +32592,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1830
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32644,7 +32606,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1831
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32658,7 +32620,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1832
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32672,7 +32634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1833
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32686,7 +32648,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1834
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32700,7 +32662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1835
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32714,7 +32676,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1836
+   i32.const 1838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32728,7 +32690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1837
+   i32.const 1839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32742,7 +32704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1838
+   i32.const 1840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32757,7 +32719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1841
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32772,7 +32734,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1842
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32786,7 +32748,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1843
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32800,7 +32762,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1844
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32814,7 +32776,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1845
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32828,7 +32790,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1846
+   i32.const 1848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32843,7 +32805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1847
+   i32.const 1849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32857,7 +32819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1848
+   i32.const 1850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32871,7 +32833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1857
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32885,7 +32847,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1858
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32899,7 +32861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1859
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32913,7 +32875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1860
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32927,7 +32889,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1861
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32941,7 +32903,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1862
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32955,7 +32917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1863
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32969,7 +32931,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1864
+   i32.const 1866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32983,7 +32945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1865
+   i32.const 1867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32997,7 +32959,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1866
+   i32.const 1868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33012,7 +32974,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1869
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33027,7 +32989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1870
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33041,7 +33003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1871
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33055,7 +33017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1872
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33069,7 +33031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1873
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33083,7 +33045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1874
+   i32.const 1876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33098,7 +33060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1875
+   i32.const 1877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33112,7 +33074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1876
+   i32.const 1878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33126,7 +33088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1888
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33140,7 +33102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1889
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33154,7 +33116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1890
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33168,7 +33130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1891
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33182,7 +33144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1892
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33196,7 +33158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1893
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33210,7 +33172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1894
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33224,7 +33186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1895
+   i32.const 1897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33238,7 +33200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1896
+   i32.const 1898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33252,7 +33214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1897
+   i32.const 1899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33266,7 +33228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1900
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33280,7 +33242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1901
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33294,7 +33256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1902
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33308,7 +33270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1903
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33323,7 +33285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1904
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33337,7 +33299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1905
+   i32.const 1907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33352,7 +33314,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1906
+   i32.const 1908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33366,7 +33328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1907
+   i32.const 1909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33380,7 +33342,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1916
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33394,7 +33356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1917
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33408,7 +33370,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1918
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33422,7 +33384,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1919
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33436,7 +33398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1920
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33450,7 +33412,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1921
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33464,7 +33426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1922
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33478,7 +33440,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1923
+   i32.const 1925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33492,7 +33454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1924
+   i32.const 1926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33506,7 +33468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1925
+   i32.const 1927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33520,7 +33482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1928
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33534,7 +33496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1929
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33548,7 +33510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1930
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33562,7 +33524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1931
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33577,7 +33539,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1932
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33591,7 +33553,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1933
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33606,7 +33568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1934
+   i32.const 1936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33620,7 +33582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1935
+   i32.const 1937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33636,7 +33598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1936
+   i32.const 1938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33650,7 +33612,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1948
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33664,7 +33626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1949
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33678,7 +33640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1950
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33692,7 +33654,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1951
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33706,7 +33668,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1952
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33720,7 +33682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1953
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33734,7 +33696,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1954
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33748,7 +33710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1955
+   i32.const 1957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33762,7 +33724,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1956
+   i32.const 1958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33776,7 +33738,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1957
+   i32.const 1959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33791,7 +33753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1960
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33806,7 +33768,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1961
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33820,7 +33782,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1962
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33834,7 +33796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1963
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33848,7 +33810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1964
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33862,7 +33824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1965
+   i32.const 1967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33877,7 +33839,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1966
+   i32.const 1968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33891,7 +33853,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1967
+   i32.const 1969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33905,7 +33867,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1976
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33919,7 +33881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1977
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33933,7 +33895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1978
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33947,7 +33909,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1979
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33961,7 +33923,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1980
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33975,7 +33937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1981
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33989,7 +33951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1982
+   i32.const 1984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34003,7 +33965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1983
+   i32.const 1985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34017,7 +33979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1984
+   i32.const 1986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34031,7 +33993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1985
+   i32.const 1987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34046,7 +34008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1988
+   i32.const 1990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34061,7 +34023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1989
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34075,7 +34037,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1990
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34089,7 +34051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1991
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34103,7 +34065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1992
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34117,7 +34079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1993
+   i32.const 1995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34132,7 +34094,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1994
+   i32.const 1996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34146,7 +34108,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1995
+   i32.const 1997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34161,7 +34123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2007
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34176,7 +34138,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2008
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34191,7 +34153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2009
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34206,7 +34168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2010
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34221,7 +34183,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2011
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34236,7 +34198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2012
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34251,7 +34213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2013
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34266,7 +34228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2014
+   i32.const 2016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34281,7 +34243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2015
+   i32.const 2017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34296,7 +34258,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2016
+   i32.const 2018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34311,7 +34273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2019
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34326,7 +34288,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2020
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34341,7 +34303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2021
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34356,7 +34318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2022
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34371,7 +34333,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2023
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34386,7 +34348,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2024
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34401,7 +34363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2025
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34417,7 +34379,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2026
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34432,7 +34394,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2027
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34447,7 +34409,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2028
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34462,7 +34424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2029
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34477,7 +34439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2030
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34492,7 +34454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2031
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34507,7 +34469,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2032
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34522,7 +34484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2033
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34537,7 +34499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2034
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34553,7 +34515,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2035
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34568,7 +34530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2036
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34583,7 +34545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2037
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34598,7 +34560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2038
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34613,7 +34575,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2039
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34629,7 +34591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2040
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34644,7 +34606,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2041
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34659,7 +34621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2042
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34674,7 +34636,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2043
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34689,7 +34651,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2044
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34705,7 +34667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2045
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34720,7 +34682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2046
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34735,7 +34697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2047
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34750,7 +34712,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2048
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34765,7 +34727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2049
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34781,7 +34743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2050
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34796,7 +34758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2051
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34811,7 +34773,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2052
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34826,7 +34788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2053
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34842,7 +34804,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2054
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34857,7 +34819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2055
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34872,7 +34834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2056
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34887,7 +34849,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2057
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34902,7 +34864,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2058
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34918,7 +34880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2059
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34934,7 +34896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2060
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34950,7 +34912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2061
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34965,7 +34927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2062
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34980,7 +34942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2063
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34995,7 +34957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2064
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35010,7 +34972,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2065
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35025,7 +34987,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2066
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35040,7 +35002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2067
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35056,7 +35018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2068
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35072,7 +35034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2069
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35088,7 +35050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2070
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35104,7 +35066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2071
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35122,7 +35084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2072
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35137,7 +35099,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2073
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35152,7 +35114,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2074
+   i32.const 2076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35167,7 +35129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2075
+   i32.const 2077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35182,7 +35144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2076
+   i32.const 2078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35197,7 +35159,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2085
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35212,7 +35174,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2086
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35227,7 +35189,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2087
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35242,7 +35204,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2088
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35257,7 +35219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2089
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35272,7 +35234,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2090
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35287,7 +35249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2091
+   i32.const 2093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35302,7 +35264,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2092
+   i32.const 2094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35317,7 +35279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2093
+   i32.const 2095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35332,7 +35294,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2094
+   i32.const 2096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35347,7 +35309,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2097
+   i32.const 2099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35362,7 +35324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2098
+   i32.const 2100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35377,7 +35339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2099
+   i32.const 2101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35392,7 +35354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2100
+   i32.const 2102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35407,7 +35369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2101
+   i32.const 2103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35422,7 +35384,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2102
+   i32.const 2104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35437,7 +35399,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2103
+   i32.const 2105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35453,7 +35415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2104
+   i32.const 2106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35468,7 +35430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2105
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35483,7 +35445,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2106
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35498,7 +35460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2107
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35513,7 +35475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2108
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35528,7 +35490,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2109
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35543,7 +35505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2110
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35558,7 +35520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2111
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35573,7 +35535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2112
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35589,7 +35551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2113
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35604,7 +35566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2114
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35619,7 +35581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2115
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35634,7 +35596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2116
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35649,7 +35611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2117
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35665,7 +35627,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2118
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35680,7 +35642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2119
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35695,7 +35657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2120
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35710,7 +35672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2121
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35725,7 +35687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2122
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35741,7 +35703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2123
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35756,7 +35718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2124
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35771,7 +35733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2125
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35786,7 +35748,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2126
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35801,7 +35763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2127
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35817,7 +35779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2128
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35832,7 +35794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2129
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35847,7 +35809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2130
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35862,7 +35824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2131
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35878,7 +35840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2132
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35893,7 +35855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2133
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35908,7 +35870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2134
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35923,7 +35885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2135
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35938,7 +35900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2136
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35954,7 +35916,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2137
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35970,7 +35932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2138
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35986,7 +35948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2139
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36001,7 +35963,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2140
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36016,7 +35978,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2141
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36031,7 +35993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2142
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36046,7 +36008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2143
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36061,7 +36023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2144
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36076,7 +36038,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2145
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36092,7 +36054,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2146
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36108,7 +36070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2147
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36124,7 +36086,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2148
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36140,7 +36102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2149
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36158,7 +36120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2150
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36173,7 +36135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2151
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36188,7 +36150,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2152
+   i32.const 2154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36203,7 +36165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2153
+   i32.const 2155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36218,7 +36180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2154
+   i32.const 2156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36233,7 +36195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2166
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36248,7 +36210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2167
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36263,7 +36225,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2168
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36278,7 +36240,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2169
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36293,7 +36255,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2170
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36308,7 +36270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2171
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36323,7 +36285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2172
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36338,7 +36300,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2173
+   i32.const 2175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36353,7 +36315,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2174
+   i32.const 2176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36368,7 +36330,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2175
+   i32.const 2177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36383,7 +36345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2178
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36398,7 +36360,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2179
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36413,7 +36375,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2180
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36428,7 +36390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2181
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36443,7 +36405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2182
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36458,7 +36420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2183
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36473,7 +36435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2184
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36490,7 +36452,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2185
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36505,7 +36467,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2186
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36520,7 +36482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2187
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36535,7 +36497,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2188
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36550,7 +36512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2189
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36565,7 +36527,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2190
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36580,7 +36542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2191
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36595,7 +36557,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2192
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36610,7 +36572,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2193
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36627,7 +36589,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2194
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36642,7 +36604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2195
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36657,7 +36619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2196
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36672,7 +36634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2197
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36687,7 +36649,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2198
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36704,7 +36666,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2199
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36719,7 +36681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2200
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36734,7 +36696,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2201
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36749,7 +36711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2202
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36764,7 +36726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2203
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36781,7 +36743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2204
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36796,7 +36758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2205
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36811,7 +36773,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2206
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36826,7 +36788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2207
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36841,7 +36803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2208
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36858,7 +36820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2209
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36873,7 +36835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2210
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36888,7 +36850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2211
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36903,7 +36865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2212
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36920,7 +36882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2213
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36935,7 +36897,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2214
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36950,7 +36912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2215
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36965,7 +36927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2216
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36980,7 +36942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2217
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36997,7 +36959,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2218
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37014,7 +36976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2219
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37030,7 +36992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2220
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37045,7 +37007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2221
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37060,7 +37022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2222
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37075,7 +37037,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2223
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37090,7 +37052,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2224
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37105,7 +37067,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2225
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37120,7 +37082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2226
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37137,7 +37099,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2227
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37154,7 +37116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2228
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37171,7 +37133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2229
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37188,7 +37150,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2230
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37206,7 +37168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2231
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37221,7 +37183,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2232
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37236,7 +37198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2233
+   i32.const 2235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37251,7 +37213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2234
+   i32.const 2236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37266,7 +37228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2235
+   i32.const 2237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37281,7 +37243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2244
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37296,7 +37258,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2245
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37311,7 +37273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2246
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37326,7 +37288,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2247
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37341,7 +37303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2248
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37356,7 +37318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2249
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37371,7 +37333,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2250
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37386,7 +37348,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2251
+   i32.const 2253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37401,7 +37363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2252
+   i32.const 2254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37416,7 +37378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2253
+   i32.const 2255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37431,7 +37393,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2256
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37446,7 +37408,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2257
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37461,7 +37423,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2258
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37476,7 +37438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2259
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37491,7 +37453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2260
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37506,7 +37468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2261
+   i32.const 2263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37521,7 +37483,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2262
+   i32.const 2264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37538,7 +37500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2263
+   i32.const 2265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37553,7 +37515,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2264
+   i32.const 2266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37568,7 +37530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2265
+   i32.const 2267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37583,7 +37545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2266
+   i32.const 2268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37598,7 +37560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2267
+   i32.const 2269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37613,7 +37575,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2268
+   i32.const 2270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37628,7 +37590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2269
+   i32.const 2271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37643,7 +37605,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2270
+   i32.const 2272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37658,7 +37620,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2271
+   i32.const 2273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37675,7 +37637,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2272
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37690,7 +37652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2273
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37705,7 +37667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2274
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37720,7 +37682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2275
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37735,7 +37697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2276
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37752,7 +37714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2277
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37767,7 +37729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2278
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37782,7 +37744,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2279
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37797,7 +37759,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2280
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37812,7 +37774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2281
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37829,7 +37791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2282
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37844,7 +37806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2283
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37859,7 +37821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2284
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37874,7 +37836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2285
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37889,7 +37851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2286
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37906,7 +37868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2287
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37921,7 +37883,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2288
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37936,7 +37898,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2289
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37951,7 +37913,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2290
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37968,7 +37930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2291
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37983,7 +37945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2292
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37998,7 +37960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2293
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38013,7 +37975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2294
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38028,7 +37990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2295
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38045,7 +38007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2296
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38062,7 +38024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2297
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38078,7 +38040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2298
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38093,7 +38055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2299
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38108,7 +38070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2300
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38123,7 +38085,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2301
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38138,7 +38100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2302
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38153,7 +38115,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2303
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38168,7 +38130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2304
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38185,7 +38147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2305
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38202,7 +38164,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2306
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38219,7 +38181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2307
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38236,7 +38198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2308
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38254,7 +38216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2309
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38269,7 +38231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2310
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38284,7 +38246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2311
+   i32.const 2313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38299,7 +38261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2312
+   i32.const 2314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38314,7 +38276,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2313
+   i32.const 2315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38329,7 +38291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2327
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38344,7 +38306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2328
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38359,7 +38321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2329
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38374,7 +38336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2330
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38389,7 +38351,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2331
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38404,7 +38366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2332
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38419,7 +38381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2333
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38434,7 +38396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2334
+   i32.const 2336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38449,7 +38411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2335
+   i32.const 2337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38464,7 +38426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2336
+   i32.const 2338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38479,7 +38441,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2339
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38494,7 +38456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2340
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38509,7 +38471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2341
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38524,7 +38486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2342
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38539,7 +38501,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2343
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38554,7 +38516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2344
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38569,7 +38531,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2345
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38584,7 +38546,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2346
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38599,7 +38561,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2347
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38614,7 +38576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2348
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38629,7 +38591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2349
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38645,7 +38607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2350
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38660,7 +38622,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2351
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38675,7 +38637,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2352
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38690,7 +38652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2353
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38705,7 +38667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2354
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38720,7 +38682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2355
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38735,7 +38697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2356
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38750,7 +38712,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2357
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38765,7 +38727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2358
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38780,7 +38742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2359
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38795,7 +38757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2360
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38810,7 +38772,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2361
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38825,7 +38787,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2362
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38841,7 +38803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2363
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38856,7 +38818,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2364
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38871,7 +38833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2365
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38886,7 +38848,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2366
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38901,7 +38863,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2367
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38917,7 +38879,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2368
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38932,7 +38894,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2369
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38947,7 +38909,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2370
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38962,7 +38924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2371
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38977,7 +38939,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2372
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38993,7 +38955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2373
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39008,7 +38970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2374
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39023,7 +38985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2375
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39038,7 +39000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2376
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39053,7 +39015,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2377
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39069,7 +39031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2378
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39084,7 +39046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2379
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39099,7 +39061,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2380
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39114,7 +39076,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2381
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39130,7 +39092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2382
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39145,7 +39107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2383
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39160,7 +39122,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2384
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39175,7 +39137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2385
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39190,7 +39152,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2386
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39206,7 +39168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2387
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39222,7 +39184,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2388
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39238,7 +39200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2389
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39253,7 +39215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2390
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39268,7 +39230,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2391
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39283,7 +39245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2392
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39298,7 +39260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2393
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39313,7 +39275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2394
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39328,7 +39290,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2395
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39344,7 +39306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2396
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39360,7 +39322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2397
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39376,7 +39338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2398
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39392,7 +39354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2399
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39409,7 +39371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2400
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39424,7 +39386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2401
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39439,7 +39401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2402
+   i32.const 2404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39454,7 +39416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2403
+   i32.const 2405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39469,7 +39431,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2404
+   i32.const 2406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39486,7 +39448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2407
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39503,7 +39465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2408
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39520,7 +39482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2409
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39537,7 +39499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2410
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39554,7 +39516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2411
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39571,7 +39533,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2412
+   i32.const 2414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39588,7 +39550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2413
+   i32.const 2415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39605,7 +39567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2414
+   i32.const 2416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39622,7 +39584,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2417
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39639,7 +39601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2418
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39656,7 +39618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2419
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39673,7 +39635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2420
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39690,7 +39652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2421
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39707,7 +39669,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2422
+   i32.const 2424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39724,7 +39686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2423
+   i32.const 2425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39741,7 +39703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2424
+   i32.const 2426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39759,7 +39721,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2427
+   i32.const 2429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39777,7 +39739,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2428
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39795,7 +39757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2430
+   i32.const 2432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39813,7 +39775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2431
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39831,7 +39793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2433
+   i32.const 2435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39849,7 +39811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2434
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39867,7 +39829,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2436
+   i32.const 2438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39885,7 +39847,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2437
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39903,7 +39865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2439
+   i32.const 2441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39921,7 +39883,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2440
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39939,7 +39901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2442
+   i32.const 2444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39957,7 +39919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2443
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39975,7 +39937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2445
+   i32.const 2447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39993,7 +39955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2446
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40011,7 +39973,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2448
+   i32.const 2450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40029,7 +39991,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2449
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40047,7 +40009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2451
+   i32.const 2453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40065,7 +40027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2452
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40081,7 +40043,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2454
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40097,7 +40059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2455
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40113,7 +40075,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2456
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40129,7 +40091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2457
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40145,7 +40107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2458
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40161,7 +40123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2459
+   i32.const 2461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40177,7 +40139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2460
+   i32.const 2462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40193,7 +40155,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2461
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40211,7 +40173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2463
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40229,7 +40191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2464
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40247,7 +40209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2465
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40265,7 +40227,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2466
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40283,7 +40245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2467
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40301,7 +40263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2468
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40319,7 +40281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2469
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40337,7 +40299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2470
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40355,7 +40317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2471
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40373,7 +40335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2472
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40391,7 +40353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2473
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40409,7 +40371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2474
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40427,7 +40389,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2475
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40445,7 +40407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2476
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40463,7 +40425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2477
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40481,7 +40443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2478
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40499,7 +40461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2479
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40517,7 +40479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2480
+   i32.const 2482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40535,7 +40497,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2481
+   i32.const 2483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40553,7 +40515,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2482
+   i32.const 2484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40568,7 +40530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2491
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40583,7 +40545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2492
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40598,7 +40560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2493
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40613,7 +40575,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2494
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40628,7 +40590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2495
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40643,7 +40605,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2496
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40658,7 +40620,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2497
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40673,7 +40635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2498
+   i32.const 2500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40688,7 +40650,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2499
+   i32.const 2501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40703,7 +40665,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2500
+   i32.const 2502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40718,7 +40680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2503
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40733,7 +40695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2504
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40748,7 +40710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2505
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40763,7 +40725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2506
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40778,7 +40740,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2507
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40793,7 +40755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2508
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40808,7 +40770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2509
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40823,7 +40785,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2510
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40838,7 +40800,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2511
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40853,7 +40815,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2512
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40868,7 +40830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2513
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40884,7 +40846,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2514
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40899,7 +40861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2515
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40914,7 +40876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2516
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40929,7 +40891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2517
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40944,7 +40906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2518
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40959,7 +40921,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2519
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40974,7 +40936,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2520
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40989,7 +40951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2521
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41004,7 +40966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2522
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41019,7 +40981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2523
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41034,7 +40996,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2524
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41049,7 +41011,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2525
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41064,7 +41026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2526
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41080,7 +41042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2527
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41095,7 +41057,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2528
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41110,7 +41072,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2529
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41125,7 +41087,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2530
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41140,7 +41102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2531
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41156,7 +41118,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2532
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41171,7 +41133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2533
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41186,7 +41148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2534
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41201,7 +41163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2535
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41216,7 +41178,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2536
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41232,7 +41194,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2537
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41247,7 +41209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2538
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41262,7 +41224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2539
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41277,7 +41239,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2540
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41292,7 +41254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2541
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41308,7 +41270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2542
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41323,7 +41285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2543
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41338,7 +41300,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2544
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41353,7 +41315,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2545
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41369,7 +41331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2546
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41384,7 +41346,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2547
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41399,7 +41361,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2548
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41414,7 +41376,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2549
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41429,7 +41391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2550
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41445,7 +41407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2551
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41461,7 +41423,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2552
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41477,7 +41439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2553
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41492,7 +41454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2554
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41507,7 +41469,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2555
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41522,7 +41484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2556
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41537,7 +41499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2557
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41552,7 +41514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2558
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41567,7 +41529,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2559
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41583,7 +41545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2560
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41599,7 +41561,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2561
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41615,7 +41577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2562
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41631,7 +41593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2563
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41648,7 +41610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2564
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41663,7 +41625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2565
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41678,7 +41640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2566
+   i32.const 2568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41693,7 +41655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2567
+   i32.const 2569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41708,7 +41670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2568
+   i32.const 2570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41723,7 +41685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2580
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41738,7 +41700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2581
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41753,7 +41715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2582
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41768,7 +41730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2583
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41783,7 +41745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2584
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41798,7 +41760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2585
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41813,7 +41775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2586
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41828,7 +41790,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2587
+   i32.const 2589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41843,7 +41805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2588
+   i32.const 2590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41858,7 +41820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2589
+   i32.const 2591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41873,7 +41835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2592
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41888,7 +41850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2593
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41903,7 +41865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2594
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41918,7 +41880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2595
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41933,7 +41895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2596
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41948,7 +41910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2597
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41963,7 +41925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2598
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41978,7 +41940,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2599
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41993,7 +41955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2600
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42008,7 +41970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2601
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42023,7 +41985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2602
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42038,7 +42000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2603
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42053,7 +42015,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2604
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42069,7 +42031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2605
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42084,7 +42046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2606
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42099,7 +42061,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2607
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42114,7 +42076,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2608
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42129,7 +42091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2609
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42144,7 +42106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2610
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42159,7 +42121,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2611
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42174,7 +42136,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2612
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42189,7 +42151,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2613
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42204,7 +42166,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2614
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42220,7 +42182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2615
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42235,7 +42197,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2616
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42251,7 +42213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2617
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42266,7 +42228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2618
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42282,7 +42244,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2619
+   i32.const 2621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42297,7 +42259,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2620
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42312,7 +42274,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2621
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42328,7 +42290,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2622
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42343,7 +42305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2623
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42358,7 +42320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2624
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42373,7 +42335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2625
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42388,7 +42350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2626
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42403,7 +42365,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2627
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42419,7 +42381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2628
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42434,7 +42396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2629
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42449,7 +42411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2630
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42464,7 +42426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2631
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42479,7 +42441,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2632
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42494,7 +42456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2633
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42510,7 +42472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2634
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42525,7 +42487,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2635
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42540,7 +42502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2636
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42555,7 +42517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2637
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42570,7 +42532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2638
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42585,7 +42547,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2639
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42600,7 +42562,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2640
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42615,7 +42577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2641
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42631,7 +42593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2642
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42646,7 +42608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2643
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42661,7 +42623,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2644
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42676,7 +42638,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2645
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42691,7 +42653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2646
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42706,7 +42668,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2647
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42721,7 +42683,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2648
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42736,7 +42698,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2649
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42751,7 +42713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2650
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42766,7 +42728,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2651
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42782,7 +42744,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2652
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42797,7 +42759,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2653
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42812,7 +42774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2654
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42828,7 +42790,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2655
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42843,7 +42805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2656
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42858,7 +42820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2657
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42874,7 +42836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2658
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42889,7 +42851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2659
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42904,7 +42866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2660
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42919,7 +42881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2661
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42935,7 +42897,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2662
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42950,7 +42912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2663
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42965,7 +42927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2664
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42980,7 +42942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2665
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42995,7 +42957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2666
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43010,7 +42972,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2667
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43025,7 +42987,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2668
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43040,7 +43002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2669
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43056,7 +43018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2670
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43072,7 +43034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2671
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43089,7 +43051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2672
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43106,7 +43068,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2673
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43122,7 +43084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2674
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43139,7 +43101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2675
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43155,7 +43117,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2676
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43171,7 +43133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2677
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43187,7 +43149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2678
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43203,7 +43165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2679
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43218,7 +43180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2680
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43233,7 +43195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2681
+   i32.const 2683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43248,7 +43210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2682
+   i32.const 2684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43263,7 +43225,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2683
+   i32.const 2685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43294,7 +43256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2686
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43325,7 +43287,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2687
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43356,7 +43318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2688
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43387,7 +43349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2689
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43418,7 +43380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2690
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43449,7 +43411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2691
+   i32.const 2693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43481,7 +43443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2692
+   i32.const 2694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43512,7 +43474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2693
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43543,7 +43505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2695
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43574,7 +43536,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2696
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43605,7 +43567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2697
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43636,7 +43598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2698
+   i32.const 2700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43669,7 +43631,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2699
+   i32.const 2701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43701,7 +43663,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2700
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43732,7 +43694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2702
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43764,7 +43726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2703
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43795,7 +43757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2704
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43826,7 +43788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2705
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43857,7 +43819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2706
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43888,7 +43850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2707
+   i32.const 2709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43920,7 +43882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2708
+   i32.const 2710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43952,7 +43914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2709
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43983,7 +43945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2711
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44014,7 +43976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2712
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44045,7 +44007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2713
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44076,7 +44038,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2714
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44107,7 +44069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2715
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44138,7 +44100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2716
+   i32.const 2718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44170,7 +44132,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2717
+   i32.const 2719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44202,7 +44164,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2718
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44233,7 +44195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2720
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44264,7 +44226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2721
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44296,7 +44258,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2722
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44327,7 +44289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2723
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44358,7 +44320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2724
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44389,7 +44351,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2725
+   i32.const 2727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44421,7 +44383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2726
+   i32.const 2728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44453,7 +44415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2727
+   i32.const 2729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44468,7 +44430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2736
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44483,7 +44445,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2737
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44498,7 +44460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2738
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44513,7 +44475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2739
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44528,7 +44490,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2740
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44543,7 +44505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2741
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44558,7 +44520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2742
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44573,7 +44535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2743
+   i32.const 2745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44588,7 +44550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2744
+   i32.const 2746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44603,7 +44565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2745
+   i32.const 2747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44618,7 +44580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2748
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44633,7 +44595,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2749
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44648,7 +44610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2750
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44663,7 +44625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2751
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44678,7 +44640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2752
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44693,7 +44655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2753
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44708,7 +44670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2754
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44723,7 +44685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2755
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44738,7 +44700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2756
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44753,7 +44715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2757
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44768,7 +44730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2758
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44783,7 +44745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2759
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44798,7 +44760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2760
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44814,7 +44776,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2761
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44829,7 +44791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2762
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44844,7 +44806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2763
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44859,7 +44821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2764
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44874,7 +44836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2765
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44889,7 +44851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2766
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44904,7 +44866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2767
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44919,7 +44881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2768
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44934,7 +44896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2769
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44949,7 +44911,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2770
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44965,7 +44927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2771
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44980,7 +44942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2772
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44996,7 +44958,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2773
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45011,7 +44973,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2774
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45027,7 +44989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2775
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45042,7 +45004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2776
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45057,7 +45019,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2777
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45073,7 +45035,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2778
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45088,7 +45050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2779
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45103,7 +45065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2780
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45118,7 +45080,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2781
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45133,7 +45095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2782
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45148,7 +45110,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2783
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45164,7 +45126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2784
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45179,7 +45141,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2785
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45194,7 +45156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2786
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45209,7 +45171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2787
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45224,7 +45186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2788
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45239,7 +45201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2789
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45255,7 +45217,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2790
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45270,7 +45232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2791
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45285,7 +45247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2792
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45300,7 +45262,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2793
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45315,7 +45277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2794
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45330,7 +45292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2795
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45345,7 +45307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2796
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45360,7 +45322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2797
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45376,7 +45338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2798
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45391,7 +45353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2799
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45406,7 +45368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2800
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45421,7 +45383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2801
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45436,7 +45398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2802
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45451,7 +45413,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2803
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45466,7 +45428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2804
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45481,7 +45443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2805
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45496,7 +45458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2806
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45511,7 +45473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2807
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45527,7 +45489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2808
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45542,7 +45504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2809
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45557,7 +45519,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2810
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45573,7 +45535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2811
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45588,7 +45550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2812
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45603,7 +45565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2813
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45619,7 +45581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2814
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45634,7 +45596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2815
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45649,7 +45611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2816
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45664,7 +45626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2817
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45680,7 +45642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2818
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45695,7 +45657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2819
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45710,7 +45672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2820
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45725,7 +45687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2821
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45740,7 +45702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2822
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45755,7 +45717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2823
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45770,7 +45732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2824
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45785,7 +45747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2825
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45801,7 +45763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2826
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45817,7 +45779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2827
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45834,7 +45796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2828
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45851,7 +45813,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2829
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45867,7 +45829,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2830
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45884,7 +45846,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2831
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45900,7 +45862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2832
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45916,7 +45878,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2833
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45932,7 +45894,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2834
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45948,7 +45910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2835
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45963,7 +45925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2836
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45978,7 +45940,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2837
+   i32.const 2839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45993,7 +45955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2838
+   i32.const 2840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46008,7 +45970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2839
+   i32.const 2841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46023,7 +45985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2842
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46038,7 +46000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2843
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46055,7 +46017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2844
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46072,7 +46034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2845
+   i32.const 2847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46089,7 +46051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2846
+   i32.const 2848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46106,7 +46068,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2847
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46122,7 +46084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2849
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46138,7 +46100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2850
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46154,7 +46116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2851
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46170,7 +46132,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2852
+   i32.const 2854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46185,7 +46147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2853
+   i32.const 2855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46201,7 +46163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2854
+   i32.const 2856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46220,7 +46182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2856
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46238,7 +46200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2858
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46256,7 +46218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2859
+   i32.const 2861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46274,7 +46236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2860
+   i32.const 2862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46292,7 +46254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2861
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46311,7 +46273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2863
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46330,7 +46292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2864
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46349,7 +46311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2865
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46368,7 +46330,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2866
+   i32.const 2868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46387,7 +46349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2867
+   i32.const 2869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46406,7 +46368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2868
+   i32.const 2870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46425,7 +46387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2869
+   i32.const 2871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46444,7 +46406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2870
+   i32.const 2872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46463,7 +46425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2871
+   i32.const 2873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46482,7 +46444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2872
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46497,7 +46459,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2874
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46512,7 +46474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2875
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46527,7 +46489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2876
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46543,7 +46505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2877
+   i32.const 2879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46559,7 +46521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2878
+   i32.const 2880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46575,7 +46537,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2879
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46590,7 +46552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2881
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46605,7 +46567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2882
+   i32.const 2884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46620,7 +46582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2883
+   i32.const 2885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46637,7 +46599,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2884
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46652,7 +46614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2886
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46667,7 +46629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2887
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46683,7 +46645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2888
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46698,7 +46660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2889
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46713,7 +46675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2890
+   i32.const 2892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46728,7 +46690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2891
+   i32.const 2893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46743,7 +46705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2892
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46759,7 +46721,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2894
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46774,7 +46736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2895
+   i32.const 2897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46790,7 +46752,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2896
+   i32.const 2898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46806,7 +46768,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2897
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46823,7 +46785,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2899
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46839,7 +46801,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2900
+   i32.const 2902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46856,7 +46818,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2901
+   i32.const 2903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46873,7 +46835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2902
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46889,7 +46851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2904
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46905,7 +46867,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2905
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46920,7 +46882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2906
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46936,7 +46898,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2907
+   i32.const 2909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46952,7 +46914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2908
+   i32.const 2910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46967,7 +46929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2909
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46983,7 +46945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2911
+   i32.const 2913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46999,7 +46961,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2912
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47015,7 +46977,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2914
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47031,7 +46993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2915
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47047,7 +47009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2916
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47062,7 +47024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2917
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47078,7 +47040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2918
+   i32.const 2920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47094,7 +47056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2919
+   i32.const 2921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47111,7 +47073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2920
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47127,7 +47089,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2922
+   i32.const 2924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47143,7 +47105,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2923
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47160,7 +47122,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2925
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47177,7 +47139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2926
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47194,7 +47156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2927
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47211,7 +47173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2928
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47229,7 +47191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2929
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47246,7 +47208,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2930
+   i32.const 2932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47263,7 +47225,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2931
+   i32.const 2933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47280,7 +47242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2932
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47297,7 +47259,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2934
+   i32.const 2936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47313,7 +47275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2935
+   i32.const 2937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47330,7 +47292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2936
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47350,7 +47312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2938
+   i32.const 2940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47366,7 +47328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2939
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47383,7 +47345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2941
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47400,7 +47362,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2942
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47417,7 +47379,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2943
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47434,7 +47396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2944
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47451,7 +47413,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2945
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47468,7 +47430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2946
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47485,7 +47447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2947
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47502,7 +47464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2948
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47519,7 +47481,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2949
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47536,7 +47498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2950
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47553,7 +47515,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2951
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47570,7 +47532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2952
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47587,7 +47549,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2953
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47604,7 +47566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2954
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47621,7 +47583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2955
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47638,7 +47600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2956
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47655,7 +47617,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2957
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47672,7 +47634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2958
+   i32.const 2960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47687,7 +47649,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2959
+   i32.const 2961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47702,7 +47664,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2960
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47719,7 +47681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2962
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47736,7 +47698,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2963
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47752,7 +47714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2964
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47769,7 +47731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2965
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47786,7 +47748,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2966
+   i32.const 2968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47803,7 +47765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2967
+   i32.const 2969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47820,7 +47782,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2968
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47836,7 +47798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2970
+   i32.const 2972
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47853,7 +47815,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2971
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47872,7 +47834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2973
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47891,7 +47853,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2974
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47910,7 +47872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2975
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47928,7 +47890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2976
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47947,7 +47909,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2977
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47966,7 +47928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2978
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47985,7 +47947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2979
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48004,7 +47966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2980
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48022,7 +47984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2981
+   i32.const 2983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48042,7 +48004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2982
+   i32.const 2984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48061,7 +48023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2983
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48080,7 +48042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2985
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48098,7 +48060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2986
+   i32.const 2988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48118,7 +48080,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2987
+   i32.const 2989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48137,7 +48099,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2988
+   i32.const 2990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48171,7 +48133,7 @@
     if
      i32.const 0
      i32.const 32
-     i32.const 2997
+     i32.const 2999
      i32.const 3
      call $~lib/builtins/abort
      unreachable
@@ -48192,7 +48154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3011
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48206,7 +48168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3012
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48220,7 +48182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3013
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48234,7 +48196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3014
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48248,7 +48210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3015
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48262,7 +48224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3016
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48276,7 +48238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3017
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48290,7 +48252,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3018
+   i32.const 3020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48304,7 +48266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3019
+   i32.const 3021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48318,7 +48280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3020
+   i32.const 3022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48332,7 +48294,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3023
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48346,7 +48308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3024
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48362,7 +48324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3025
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48376,7 +48338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3026
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48390,7 +48352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3027
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48404,7 +48366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3028
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48418,7 +48380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3029
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48432,7 +48394,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3030
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48446,7 +48408,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3031
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48460,7 +48422,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3032
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48474,7 +48436,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3033
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48488,7 +48450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3034
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48502,7 +48464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3035
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48516,7 +48478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3036
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48530,7 +48492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3037
+   i32.const 3039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48544,7 +48506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3038
+   i32.const 3040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48558,7 +48520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3039
+   i32.const 3041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48697,7 +48659,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3054
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48711,7 +48673,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3055
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48725,7 +48687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3056
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48739,7 +48701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3057
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48753,7 +48715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3058
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48767,7 +48729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3059
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48781,7 +48743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3060
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48795,7 +48757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3061
+   i32.const 3063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48809,7 +48771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3062
+   i32.const 3064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48823,7 +48785,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3063
+   i32.const 3065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48837,7 +48799,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3066
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48851,7 +48813,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3067
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48867,7 +48829,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3068
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48881,7 +48843,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3069
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48895,7 +48857,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3070
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48909,7 +48871,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3071
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48923,7 +48885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3072
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48937,7 +48899,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3073
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48951,7 +48913,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3074
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48965,7 +48927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3075
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48979,7 +48941,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3076
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48993,7 +48955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3077
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49007,7 +48969,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3078
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49021,7 +48983,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3079
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49035,7 +48997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3080
+   i32.const 3082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49049,7 +49011,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3081
+   i32.const 3083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49063,7 +49025,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3082
+   i32.const 3084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49077,7 +49039,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3093
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49091,7 +49053,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3094
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49105,7 +49067,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3095
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49119,7 +49081,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3096
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49133,7 +49095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3097
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49147,7 +49109,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3098
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49161,7 +49123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3099
+   i32.const 3101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49176,7 +49138,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3100
+   i32.const 3102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49190,7 +49152,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3101
+   i32.const 3103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49204,7 +49166,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3109
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49218,7 +49180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3110
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49232,7 +49194,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3111
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49246,7 +49208,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3112
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49260,7 +49222,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3113
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49274,7 +49236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3114
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49288,7 +49250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3115
+   i32.const 3117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49303,7 +49265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3116
+   i32.const 3118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49317,7 +49279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3117
+   i32.const 3119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49735,7 +49697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3155
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49749,7 +49711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3156
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49763,7 +49725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3157
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49777,7 +49739,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3158
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49791,7 +49753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3159
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49805,7 +49767,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3160
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49819,7 +49781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3161
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49833,7 +49795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3162
+   i32.const 3164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49847,7 +49809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3163
+   i32.const 3165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49861,7 +49823,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3164
+   i32.const 3166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49875,7 +49837,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3167
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49889,7 +49851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3168
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49903,7 +49865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3169
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49917,7 +49879,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3170
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49933,7 +49895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3171
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49949,7 +49911,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3172
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49963,7 +49925,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3173
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49977,7 +49939,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3174
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49991,7 +49953,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3175
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50005,7 +49967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3176
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50019,7 +49981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3177
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50033,7 +49995,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3178
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50047,7 +50009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3179
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50061,7 +50023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3180
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50075,7 +50037,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3181
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50089,7 +50051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3182
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50103,7 +50065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3183
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50117,7 +50079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3184
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50131,7 +50093,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3185
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50145,7 +50107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3186
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50159,7 +50121,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3187
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50173,7 +50135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3188
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50187,7 +50149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3189
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50201,7 +50163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3190
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50215,7 +50177,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3191
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50231,7 +50193,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3192
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50247,7 +50209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3193
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50263,7 +50225,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3194
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50279,7 +50241,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3195
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50295,7 +50257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3196
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50311,7 +50273,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3197
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50327,7 +50289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3198
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50343,7 +50305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3199
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50359,7 +50321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3200
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50375,7 +50337,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3201
+   i32.const 3203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50391,7 +50353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3202
+   i32.const 3204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50407,7 +50369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3203
+   i32.const 3205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50421,7 +50383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3206
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50435,7 +50397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3207
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50449,7 +50411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3208
+   i32.const 3210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50464,7 +50426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3209
+   i32.const 3211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50478,7 +50440,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3210
+   i32.const 3212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50515,7 +50477,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3213
+   i32.const 3215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50552,7 +50514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3214
+   i32.const 3216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50580,7 +50542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3217
+   i32.const 3219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50608,7 +50570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3218
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50636,7 +50598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3220
+   i32.const 3222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50664,7 +50626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3221
+   i32.const 3223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50692,7 +50654,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3224
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50720,7 +50682,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3225
+   i32.const 3227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50750,7 +50712,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3226
+   i32.const 3228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50781,7 +50743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3227
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50809,7 +50771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3229
+   i32.const 3231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50839,7 +50801,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3230
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50871,7 +50833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3232
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50903,7 +50865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3233
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50935,7 +50897,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3234
+   i32.const 3236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50967,7 +50929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3235
+   i32.const 3237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50999,7 +50961,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3236
+   i32.const 3238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51027,7 +50989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3239
+   i32.const 3241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51056,7 +51018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3240
+   i32.const 3242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51070,7 +51032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3249
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51084,7 +51046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3250
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51098,7 +51060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3251
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51112,7 +51074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3252
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51126,7 +51088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3253
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51140,7 +51102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3254
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51154,7 +51116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3255
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51168,7 +51130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3256
+   i32.const 3258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51182,7 +51144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3257
+   i32.const 3259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51196,7 +51158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3258
+   i32.const 3260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51210,7 +51172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3261
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51224,7 +51186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3262
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51238,7 +51200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3263
+   i32.const 3265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51253,7 +51215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3264
+   i32.const 3266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51267,7 +51229,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3265
+   i32.const 3267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51281,7 +51243,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3268
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51295,7 +51257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3269
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51309,7 +51271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3270
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51323,7 +51285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3271
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51339,7 +51301,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3272
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51355,7 +51317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3273
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51369,7 +51331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3274
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51383,7 +51345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3275
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51397,7 +51359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3276
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51411,7 +51373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3277
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51425,7 +51387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3278
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51439,7 +51401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3279
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51453,7 +51415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3280
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51467,7 +51429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3281
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51481,7 +51443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3282
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51495,7 +51457,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3283
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51509,7 +51471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3284
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51523,7 +51485,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3285
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51537,7 +51499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3286
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51551,7 +51513,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3287
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51565,7 +51527,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3288
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51579,7 +51541,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3289
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51593,7 +51555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3290
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51607,7 +51569,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3291
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51621,7 +51583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3292
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51635,7 +51597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3293
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51651,7 +51613,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3294
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51667,7 +51629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3295
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51683,7 +51645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3296
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51699,7 +51661,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3297
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51715,7 +51677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3298
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51731,7 +51693,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3299
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51747,7 +51709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3300
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51763,7 +51725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3301
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51779,7 +51741,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3302
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51795,7 +51757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3303
+   i32.const 3305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51811,7 +51773,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3304
+   i32.const 3306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51827,7 +51789,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3305
+   i32.const 3307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51841,7 +51803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3308
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51855,7 +51817,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3309
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51869,7 +51831,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3310
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51883,7 +51845,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3311
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51897,7 +51859,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3312
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51911,7 +51873,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3313
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51925,7 +51887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3314
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51939,7 +51901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3315
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51953,7 +51915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3316
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51967,7 +51929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3317
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51981,7 +51943,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3318
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51995,7 +51957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3319
+   i32.const 3321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52009,7 +51971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3320
+   i32.const 3322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52024,7 +51986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3321
+   i32.const 3323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52038,7 +52000,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3333
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52052,7 +52014,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3334
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52066,7 +52028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3335
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52080,7 +52042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3336
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52094,7 +52056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3337
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52108,7 +52070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3338
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52122,7 +52084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3339
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52136,7 +52098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3340
+   i32.const 3342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52150,7 +52112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3341
+   i32.const 3343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52164,7 +52126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3342
+   i32.const 3344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52178,7 +52140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3345
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52192,7 +52154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3346
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52206,7 +52168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3347
+   i32.const 3349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52222,7 +52184,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3348
+   i32.const 3350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52236,7 +52198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3349
+   i32.const 3351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52250,7 +52212,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3358
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52264,7 +52226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3359
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52278,7 +52240,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3360
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52292,7 +52254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3361
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52306,7 +52268,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3362
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52320,7 +52282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3363
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52334,7 +52296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3364
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52348,7 +52310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3365
+   i32.const 3367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52362,7 +52324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3366
+   i32.const 3368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52376,7 +52338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3367
+   i32.const 3369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52390,7 +52352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3370
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52404,7 +52366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3371
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52418,7 +52380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3372
+   i32.const 3374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52434,7 +52396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3373
+   i32.const 3375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52448,7 +52410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3374
+   i32.const 3376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52462,7 +52424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3386
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52476,7 +52438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3387
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52490,7 +52452,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3388
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52504,7 +52466,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3389
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52518,7 +52480,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3390
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52532,7 +52494,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3391
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52546,7 +52508,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3392
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52560,7 +52522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3393
+   i32.const 3395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52574,7 +52536,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3394
+   i32.const 3396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52588,7 +52550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3395
+   i32.const 3397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52602,7 +52564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3398
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52616,7 +52578,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3399
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52631,7 +52593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3400
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52645,7 +52607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3401
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52659,7 +52621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3402
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52673,7 +52635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3403
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52687,7 +52649,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3404
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52701,7 +52663,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3405
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52715,7 +52677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3406
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52729,7 +52691,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3407
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52743,7 +52705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3408
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52757,7 +52719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3409
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52771,7 +52733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3410
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52782,34 +52744,6 @@
   global.get $std/math/INEXACT
   call $std/math/test_sqrt
   i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 3411
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 1.0000000000000002
-  f64.const 1
-  f64.const -0.5
-  global.get $std/math/INEXACT
-  call $std/math/test_sqrt
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 32
-   i32.const 3412
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f64.const 2.0000000000000004
-  f64.const 1.4142135623730951
-  f64.const -0.27173060178756714
-  global.get $std/math/INEXACT
-  call $std/math/test_sqrt
-  i32.eqz
   if
    i32.const 0
    i32.const 32
@@ -52832,6 +52766,34 @@
    call $~lib/builtins/abort
    unreachable
   end
+  f64.const 2.0000000000000004
+  f64.const 1.4142135623730951
+  f64.const -0.27173060178756714
+  global.get $std/math/INEXACT
+  call $std/math/test_sqrt
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 3415
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f64.const 1.0000000000000002
+  f64.const 1
+  f64.const -0.5
+  global.get $std/math/INEXACT
+  call $std/math/test_sqrt
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 32
+   i32.const 3416
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
   f64.const 0.9999999999999999
   f64.const 0.9999999999999999
   f64.const -0.5
@@ -52841,7 +52803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3415
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52855,7 +52817,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3416
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52869,7 +52831,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3417
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52883,7 +52845,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3418
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52897,7 +52859,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3419
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52911,7 +52873,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3420
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52925,7 +52887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3421
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52939,7 +52901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3422
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52953,7 +52915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3423
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52967,7 +52929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3424
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52981,7 +52943,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3425
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52995,7 +52957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3426
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53009,7 +52971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3427
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53023,7 +52985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3428
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53037,7 +52999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3429
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53051,7 +53013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3430
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53065,7 +53027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3431
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53079,7 +53041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3432
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53093,7 +53055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3433
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53107,7 +53069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3434
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53121,7 +53083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3435
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53135,7 +53097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3436
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53149,7 +53111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3437
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53163,7 +53125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3438
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53177,7 +53139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3439
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53191,7 +53153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3440
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53205,7 +53167,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3441
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53219,7 +53181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3442
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53233,7 +53195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3443
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53247,7 +53209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3444
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53261,7 +53223,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3445
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53275,7 +53237,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3446
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53289,7 +53251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3447
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53303,7 +53265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3448
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53317,7 +53279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3449
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53331,7 +53293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3450
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53345,7 +53307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3451
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53359,7 +53321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3452
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53373,7 +53335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3453
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53387,7 +53349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3454
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53401,7 +53363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3455
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53415,7 +53377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3456
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53429,7 +53391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3457
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53443,7 +53405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3458
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53457,7 +53419,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3459
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53471,7 +53433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3460
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53485,7 +53447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3461
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53499,7 +53461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3462
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53513,7 +53475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3463
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53527,7 +53489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3464
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53541,7 +53503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3465
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53555,7 +53517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3466
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53569,7 +53531,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3467
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53583,7 +53545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3468
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53597,7 +53559,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3469
+   i32.const 3471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53611,7 +53573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3470
+   i32.const 3472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53625,7 +53587,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3471
+   i32.const 3473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53639,7 +53601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3480
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53653,7 +53615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3481
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53667,7 +53629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3482
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53681,7 +53643,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3483
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53695,7 +53657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3484
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53709,7 +53671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3485
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53723,7 +53685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3486
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53737,7 +53699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3487
+   i32.const 3489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53751,7 +53713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3488
+   i32.const 3490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53765,7 +53727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3489
+   i32.const 3491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53779,7 +53741,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3492
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53793,7 +53755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3493
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53808,7 +53770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3494
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53822,7 +53784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3495
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53836,7 +53798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3496
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53850,7 +53812,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3497
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53864,7 +53826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3498
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53878,7 +53840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3499
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53892,7 +53854,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3500
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53906,7 +53868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3501
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53920,7 +53882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3502
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53934,7 +53896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3503
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53948,7 +53910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3504
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53962,7 +53924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3505
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53976,7 +53938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3506
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53990,7 +53952,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3507
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54004,7 +53966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3508
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54018,7 +53980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3509
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54032,7 +53994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3510
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54046,7 +54008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3511
+   i32.const 3513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54060,7 +54022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3512
+   i32.const 3514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54074,7 +54036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3513
+   i32.const 3515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54088,7 +54050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3525
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54102,7 +54064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3526
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54116,7 +54078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3527
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54130,7 +54092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3528
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54144,7 +54106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3529
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54158,7 +54120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3530
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54172,7 +54134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3531
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54186,7 +54148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3532
+   i32.const 3534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54200,7 +54162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3533
+   i32.const 3535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54214,7 +54176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3534
+   i32.const 3536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54228,7 +54190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3537
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54242,7 +54204,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3538
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54256,7 +54218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3539
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54270,7 +54232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3540
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54286,7 +54248,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3541
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54302,7 +54264,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3542
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54316,7 +54278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3543
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54330,7 +54292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3544
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54344,7 +54306,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3545
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54358,7 +54320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3546
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54372,7 +54334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3547
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54386,7 +54348,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3548
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54400,7 +54362,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3549
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54414,7 +54376,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3550
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54428,7 +54390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3551
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54442,7 +54404,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3552
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54456,7 +54418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3553
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54470,7 +54432,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3554
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54484,7 +54446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3555
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54498,7 +54460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3556
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54512,7 +54474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3557
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54526,7 +54488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3558
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54540,7 +54502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3559
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54554,7 +54516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3560
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54568,7 +54530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3561
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54582,7 +54544,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3562
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54598,7 +54560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3563
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54614,7 +54576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3564
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54630,7 +54592,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3565
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54646,7 +54608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3566
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54662,7 +54624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3567
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54678,7 +54640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3568
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54694,7 +54656,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3569
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54710,7 +54672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3570
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54726,7 +54688,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3571
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54742,7 +54704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3572
+   i32.const 3574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54758,7 +54720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3573
+   i32.const 3575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54774,7 +54736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3574
+   i32.const 3576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54803,7 +54765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3577
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54832,7 +54794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3578
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54865,7 +54827,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3579
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54898,7 +54860,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3580
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54927,7 +54889,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3581
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54956,7 +54918,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3582
+   i32.const 3584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54985,7 +54947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3583
+   i32.const 3585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55018,7 +54980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3584
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55047,7 +55009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3586
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55076,7 +55038,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3587
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55113,7 +55075,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3588
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55150,7 +55112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3589
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55187,7 +55149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3590
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55224,7 +55186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3591
+   i32.const 3593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55253,7 +55215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3592
+   i32.const 3594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55284,7 +55246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3593
+   i32.const 3595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55298,7 +55260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3596
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55312,7 +55274,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3597
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55326,7 +55288,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3598
+   i32.const 3600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55341,7 +55303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3599
+   i32.const 3601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55355,7 +55317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3600
+   i32.const 3602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55369,7 +55331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3609
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55383,7 +55345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3610
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55397,7 +55359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3611
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55411,7 +55373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3612
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55425,7 +55387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3613
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55439,7 +55401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3614
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55453,7 +55415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3615
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55467,7 +55429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3616
+   i32.const 3618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55481,7 +55443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3617
+   i32.const 3619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55495,7 +55457,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3618
+   i32.const 3620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55509,7 +55471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3621
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55523,7 +55485,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3622
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55537,7 +55499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3623
+   i32.const 3625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55552,7 +55514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3624
+   i32.const 3626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55566,7 +55528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3625
+   i32.const 3627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55580,7 +55542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3628
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55594,7 +55556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3629
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55608,7 +55570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3630
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55622,7 +55584,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3631
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55638,7 +55600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3632
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55654,7 +55616,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3633
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55668,7 +55630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3634
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55682,7 +55644,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3635
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55696,7 +55658,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3636
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55710,7 +55672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3637
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55724,7 +55686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3638
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55738,7 +55700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3639
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55752,7 +55714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3640
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55766,7 +55728,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3641
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55780,7 +55742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3642
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55794,7 +55756,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3643
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55808,7 +55770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3644
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55822,7 +55784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3645
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55836,7 +55798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3646
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55850,7 +55812,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3647
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55864,7 +55826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3648
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55878,7 +55840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3649
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55892,7 +55854,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3650
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55906,7 +55868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3651
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55922,7 +55884,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3652
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55938,7 +55900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3653
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55954,7 +55916,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3654
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55970,7 +55932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3655
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55986,7 +55948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3656
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56002,7 +55964,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3657
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56018,7 +55980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3658
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56034,7 +55996,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3659
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56050,7 +56012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3660
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56066,7 +56028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3661
+   i32.const 3663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56082,7 +56044,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3662
+   i32.const 3664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56098,7 +56060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3663
+   i32.const 3665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56112,7 +56074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3675
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56126,7 +56088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3676
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56140,7 +56102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3677
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56154,7 +56116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3678
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56168,7 +56130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3679
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56182,7 +56144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3680
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56196,7 +56158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3681
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56210,7 +56172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3682
+   i32.const 3684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56224,7 +56186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3683
+   i32.const 3685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56238,7 +56200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3684
+   i32.const 3686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56252,7 +56214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3687
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56266,7 +56228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3688
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56280,7 +56242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3689
+   i32.const 3691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56295,7 +56257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3690
+   i32.const 3692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56309,7 +56271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3691
+   i32.const 3693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56323,7 +56285,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3700
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56337,7 +56299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3701
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56351,7 +56313,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3702
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56365,7 +56327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3703
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56379,7 +56341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3704
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56393,7 +56355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3705
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56407,7 +56369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3706
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56421,7 +56383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3707
+   i32.const 3709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56435,7 +56397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3708
+   i32.const 3710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56449,7 +56411,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3709
+   i32.const 3711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56463,7 +56425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3712
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56477,7 +56439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3713
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56491,7 +56453,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3714
+   i32.const 3716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56506,7 +56468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3715
+   i32.const 3717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56520,7 +56482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3716
+   i32.const 3718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56534,7 +56496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3728
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56548,7 +56510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3729
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56562,7 +56524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3730
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56576,7 +56538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3731
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56590,7 +56552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3732
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56604,7 +56566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3733
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56618,7 +56580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3734
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56632,7 +56594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3735
+   i32.const 3737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56646,7 +56608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3736
+   i32.const 3738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56660,7 +56622,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3737
+   i32.const 3739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56674,7 +56636,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3740
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56688,7 +56650,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3741
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56704,7 +56666,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3742
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56718,7 +56680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3743
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56732,7 +56694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3744
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56746,7 +56708,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3745
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56760,7 +56722,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3746
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56774,7 +56736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3747
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56788,7 +56750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3748
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56802,7 +56764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3749
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56816,7 +56778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3750
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56830,7 +56792,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3751
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56844,7 +56806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3752
+   i32.const 3754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56858,7 +56820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3753
+   i32.const 3755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56872,7 +56834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3754
+   i32.const 3756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56886,7 +56848,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3763
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56900,7 +56862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3764
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56914,7 +56876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3765
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56928,7 +56890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3766
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56942,7 +56904,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3767
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56956,7 +56918,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3768
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56970,7 +56932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3769
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56984,7 +56946,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3770
+   i32.const 3772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56998,7 +56960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3771
+   i32.const 3773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57012,7 +56974,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3772
+   i32.const 3774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57026,7 +56988,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3775
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57040,7 +57002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3776
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57056,7 +57018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3777
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57070,7 +57032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3778
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57084,7 +57046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3779
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57098,7 +57060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3780
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57112,7 +57074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3781
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57126,7 +57088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3782
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57140,7 +57102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3783
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57154,7 +57116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3784
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57168,7 +57130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3785
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57182,7 +57144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3786
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57196,7 +57158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3787
+   i32.const 3789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57210,7 +57172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3788
+   i32.const 3790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57224,7 +57186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3789
+   i32.const 3791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57318,7 +57280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3830
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57332,7 +57294,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3831
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57346,7 +57308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3832
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57360,7 +57322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3833
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57374,7 +57336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3834
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57388,7 +57350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3835
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57402,7 +57364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3836
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57416,7 +57378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3837
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57430,7 +57392,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3838
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57444,7 +57406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3839
+   i32.const 3841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57458,7 +57420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3840
+   i32.const 3842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57472,7 +57434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3841
+   i32.const 3843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57485,7 +57447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3845
+   i32.const 3847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57498,7 +57460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3846
+   i32.const 3848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57511,7 +57473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3847
+   i32.const 3849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57524,7 +57486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3848
+   i32.const 3850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57537,7 +57499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3849
+   i32.const 3851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57550,7 +57512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3850
+   i32.const 3852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57563,7 +57525,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3851
+   i32.const 3853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57576,7 +57538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3852
+   i32.const 3854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57589,7 +57551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3853
+   i32.const 3855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57602,7 +57564,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3854
+   i32.const 3856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57615,7 +57577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3855
+   i32.const 3857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57629,7 +57591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3856
+   i32.const 3858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57642,7 +57604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3857
+   i32.const 3859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57655,7 +57617,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3858
+   i32.const 3860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57669,7 +57631,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3859
+   i32.const 3861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57682,7 +57644,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3860
+   i32.const 3862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57696,7 +57658,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3864
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57710,7 +57672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3865
+   i32.const 3867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57724,7 +57686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3866
+   i32.const 3868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57738,7 +57700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3867
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57752,7 +57714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3869
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57766,7 +57728,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3870
+   i32.const 3872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57780,7 +57742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3871
+   i32.const 3873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57794,7 +57756,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3872
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57808,7 +57770,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3874
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57822,7 +57784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3875
+   i32.const 3877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57836,7 +57798,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3876
+   i32.const 3878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57850,7 +57812,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3877
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57864,7 +57826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3879
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57878,7 +57840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3880
+   i32.const 3882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57892,7 +57854,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3881
+   i32.const 3883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57906,7 +57868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3882
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57920,7 +57882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3884
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57934,7 +57896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3885
+   i32.const 3887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57948,7 +57910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3886
+   i32.const 3888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57962,7 +57924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3887
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57976,7 +57938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3889
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57990,7 +57952,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3890
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58004,7 +57966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3891
+   i32.const 3893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58018,7 +57980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3892
+   i32.const 3894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58032,7 +57994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3893
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58046,7 +58008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3895
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58060,7 +58022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3896
+   i32.const 3898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58074,7 +58036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3897
+   i32.const 3899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58088,7 +58050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3898
+   i32.const 3900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58120,7 +58082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3904
+   i32.const 3906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58134,7 +58096,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3905
+   i32.const 3907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58148,7 +58110,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3906
+   i32.const 3908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58162,7 +58124,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3907
+   i32.const 3909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58176,7 +58138,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3908
+   i32.const 3910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58190,7 +58152,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3909
+   i32.const 3911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58204,7 +58166,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3911
+   i32.const 3913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58218,7 +58180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3912
+   i32.const 3914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58250,7 +58212,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3915
+   i32.const 3917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58264,7 +58226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3917
+   i32.const 3919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58278,7 +58240,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3918
+   i32.const 3920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58310,7 +58272,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3921
+   i32.const 3923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58325,7 +58287,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3923
+   i32.const 3925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58340,7 +58302,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3924
+   i32.const 3926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58356,7 +58318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3925
+   i32.const 3927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58372,7 +58334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3926
+   i32.const 3928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58388,7 +58350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3927
+   i32.const 3929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58402,7 +58364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3929
+   i32.const 3931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58416,7 +58378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3930
+   i32.const 3932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58430,7 +58392,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3931
+   i32.const 3933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58444,7 +58406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3932
+   i32.const 3934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58458,7 +58420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3933
+   i32.const 3935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58472,7 +58434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3934
+   i32.const 3936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58486,7 +58448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3935
+   i32.const 3937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58500,7 +58462,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3936
+   i32.const 3938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58514,7 +58476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3937
+   i32.const 3939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58534,7 +58496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3939
+   i32.const 3941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58552,7 +58514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3940
+   i32.const 3942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58567,7 +58529,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3942
+   i32.const 3944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58582,7 +58544,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3943
+   i32.const 3945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58597,7 +58559,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3944
+   i32.const 3946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58611,7 +58573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3945
+   i32.const 3947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58625,7 +58587,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3946
+   i32.const 3948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat
index 3eecc23245..27ed6c0b6d 100644
--- a/tests/compiler/std/math.release.wat
+++ b/tests/compiler/std/math.release.wat
@@ -11380,7 +11380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 116
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11393,7 +11393,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 117
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11406,7 +11406,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 118
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11419,7 +11419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 119
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11432,7 +11432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 120
+   i32.const 122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11445,7 +11445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 121
+   i32.const 123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11458,7 +11458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 122
+   i32.const 124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11473,7 +11473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 133
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11488,7 +11488,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 134
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11503,7 +11503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 135
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11518,7 +11518,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 136
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11533,7 +11533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 137
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11548,7 +11548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 138
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11563,7 +11563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 139
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11578,7 +11578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 140
+   i32.const 142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11593,7 +11593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 141
+   i32.const 143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11608,7 +11608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 142
+   i32.const 144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11623,7 +11623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 145
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11638,7 +11638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 146
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11653,7 +11653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 147
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11668,7 +11668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 148
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11683,7 +11683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 149
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11698,7 +11698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 150
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11713,7 +11713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 151
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11728,7 +11728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 152
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11743,7 +11743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 153
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11758,7 +11758,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 154
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11773,7 +11773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 155
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11788,7 +11788,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 156
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11803,7 +11803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 157
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11818,7 +11818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 158
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11833,7 +11833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 159
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11848,7 +11848,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 160
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11863,7 +11863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 161
+   i32.const 163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11878,7 +11878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 162
+   i32.const 164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11893,7 +11893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 163
+   i32.const 165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11906,7 +11906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 172
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11919,7 +11919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 173
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11932,7 +11932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 174
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11945,7 +11945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 175
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11958,7 +11958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 176
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11971,7 +11971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 177
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11984,7 +11984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 178
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11997,7 +11997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 179
+   i32.const 181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12010,7 +12010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 180
+   i32.const 182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12023,7 +12023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 181
+   i32.const 183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12036,7 +12036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 184
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12049,7 +12049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 185
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12062,7 +12062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 186
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12075,7 +12075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 187
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12088,7 +12088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 188
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12101,7 +12101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 189
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12114,7 +12114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 190
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12127,7 +12127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 191
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12140,7 +12140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 192
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12153,7 +12153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 193
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12166,7 +12166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 194
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12179,7 +12179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 195
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12192,7 +12192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 196
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12205,7 +12205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 197
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12218,7 +12218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 198
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12231,7 +12231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 199
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12244,7 +12244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 200
+   i32.const 202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12257,7 +12257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 201
+   i32.const 203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12270,7 +12270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 202
+   i32.const 204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12292,7 +12292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 214
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12314,7 +12314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 215
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12336,7 +12336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 216
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12358,7 +12358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 217
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12380,7 +12380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 218
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12402,7 +12402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 219
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12424,7 +12424,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 220
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12446,7 +12446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 221
+   i32.const 223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12468,7 +12468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 222
+   i32.const 224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12490,7 +12490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 223
+   i32.const 225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12512,7 +12512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 226
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12534,7 +12534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 227
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12556,7 +12556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 228
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12578,7 +12578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 229
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12600,7 +12600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 230
+   i32.const 232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12622,7 +12622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 231
+   i32.const 233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12644,7 +12644,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 232
+   i32.const 234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12657,7 +12657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 241
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12670,7 +12670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 242
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12683,7 +12683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 243
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12696,7 +12696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 244
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12709,7 +12709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 245
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12722,7 +12722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 246
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12735,7 +12735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 247
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12748,7 +12748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 248
+   i32.const 250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12761,7 +12761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 249
+   i32.const 251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12774,7 +12774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 250
+   i32.const 252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12787,7 +12787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 253
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12800,7 +12800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 254
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12813,7 +12813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 255
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12826,7 +12826,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 256
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12839,7 +12839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 257
+   i32.const 259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12852,7 +12852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 258
+   i32.const 260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12865,7 +12865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 259
+   i32.const 261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12888,7 +12888,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 271
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12911,7 +12911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 272
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12934,7 +12934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 273
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12957,7 +12957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 274
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12980,7 +12980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 275
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13003,7 +13003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 276
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13026,7 +13026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 277
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13049,7 +13049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 278
+   i32.const 280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13072,7 +13072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 279
+   i32.const 281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13095,7 +13095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 280
+   i32.const 282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13118,7 +13118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 283
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13141,7 +13141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 284
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13164,7 +13164,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 285
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13187,7 +13187,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 286
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13210,7 +13210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 287
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13233,7 +13233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 288
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13256,7 +13256,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 289
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13279,7 +13279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 290
+   i32.const 292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13302,7 +13302,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 291
+   i32.const 293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13325,7 +13325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 292
+   i32.const 294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13338,7 +13338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 301
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13351,7 +13351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 302
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13364,7 +13364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 303
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13377,7 +13377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 304
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13390,7 +13390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 305
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13403,7 +13403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 306
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13416,7 +13416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 307
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13429,7 +13429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 308
+   i32.const 310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13442,7 +13442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 309
+   i32.const 311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13455,7 +13455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 310
+   i32.const 312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13468,7 +13468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 313
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13481,7 +13481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 314
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13494,7 +13494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 315
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13507,7 +13507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 316
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13520,7 +13520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 317
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13533,7 +13533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 318
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13546,7 +13546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 319
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13559,7 +13559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 320
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13572,7 +13572,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 321
+   i32.const 323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13585,7 +13585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 322
+   i32.const 324
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13598,7 +13598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 323
+   i32.const 325
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13611,7 +13611,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 335
+   i32.const 337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13624,7 +13624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 336
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13637,7 +13637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 337
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13650,7 +13650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 338
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13663,7 +13663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 339
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13676,7 +13676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 340
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13689,7 +13689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 341
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13702,7 +13702,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 342
+   i32.const 344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13715,7 +13715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 343
+   i32.const 345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13728,7 +13728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 344
+   i32.const 346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13741,7 +13741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 347
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13754,7 +13754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 348
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13767,7 +13767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 349
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13780,7 +13780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 350
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13793,7 +13793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 351
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13806,7 +13806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 352
+   i32.const 354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13819,7 +13819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 353
+   i32.const 355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13832,7 +13832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 354
+   i32.const 356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13845,7 +13845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 370
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13858,7 +13858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 372
+   i32.const 374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13871,7 +13871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 373
+   i32.const 375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13884,7 +13884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 382
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13897,7 +13897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 383
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13910,7 +13910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 384
+   i32.const 386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13923,7 +13923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 385
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13936,7 +13936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 386
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13949,7 +13949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 387
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13962,7 +13962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 388
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13975,7 +13975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 389
+   i32.const 391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13988,7 +13988,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 390
+   i32.const 392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14001,7 +14001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 391
+   i32.const 393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14014,7 +14014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 394
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14027,7 +14027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 395
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14040,7 +14040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 396
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14053,7 +14053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 397
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14066,7 +14066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 398
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14079,7 +14079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 399
+   i32.const 401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14092,7 +14092,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 400
+   i32.const 402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14105,7 +14105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 401
+   i32.const 403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14128,7 +14128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 413
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14151,7 +14151,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 414
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14174,7 +14174,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 415
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14197,7 +14197,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 416
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14220,7 +14220,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 417
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14243,7 +14243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 418
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14266,7 +14266,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 419
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14289,7 +14289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 420
+   i32.const 422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14312,7 +14312,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 421
+   i32.const 423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14335,7 +14335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 422
+   i32.const 424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14358,7 +14358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 425
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14381,7 +14381,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 426
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14404,7 +14404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 427
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14427,7 +14427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 428
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14450,7 +14450,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 429
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14473,7 +14473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 430
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14496,7 +14496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 431
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14519,7 +14519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 432
+   i32.const 434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14542,7 +14542,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 433
+   i32.const 435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14565,7 +14565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 434
+   i32.const 436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14578,7 +14578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 443
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14591,7 +14591,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 444
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14604,7 +14604,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 445
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14617,7 +14617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 446
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14630,7 +14630,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 447
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14643,7 +14643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 448
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14656,7 +14656,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 449
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14669,7 +14669,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 450
+   i32.const 452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14682,7 +14682,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 451
+   i32.const 453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14695,7 +14695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 452
+   i32.const 454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14708,7 +14708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 455
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14721,7 +14721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 456
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14734,7 +14734,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 457
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14747,7 +14747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 458
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14760,7 +14760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 459
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14773,7 +14773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 460
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14786,7 +14786,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 461
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14799,7 +14799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 462
+   i32.const 464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14812,7 +14812,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 463
+   i32.const 465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14825,7 +14825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 464
+   i32.const 466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14838,7 +14838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 476
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14851,7 +14851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 477
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14864,7 +14864,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 478
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14877,7 +14877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 479
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14890,7 +14890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 480
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14903,7 +14903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 481
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14916,7 +14916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 482
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14929,7 +14929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 483
+   i32.const 485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14942,7 +14942,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 484
+   i32.const 486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14955,7 +14955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 485
+   i32.const 487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14968,7 +14968,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 488
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14981,7 +14981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 489
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14994,7 +14994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 490
+   i32.const 492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15007,7 +15007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 491
+   i32.const 493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15020,7 +15020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 492
+   i32.const 494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15033,7 +15033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 521
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15046,7 +15046,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 522
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15059,7 +15059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 523
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15072,7 +15072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 524
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15085,7 +15085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 525
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15098,7 +15098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 526
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15111,7 +15111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 527
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15124,7 +15124,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 528
+   i32.const 530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15137,7 +15137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 529
+   i32.const 531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15150,7 +15150,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 530
+   i32.const 532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15163,7 +15163,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 533
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15176,7 +15176,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 534
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15189,7 +15189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 535
+   i32.const 537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15202,7 +15202,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 536
+   i32.const 538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15215,7 +15215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 537
+   i32.const 539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15238,7 +15238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 549
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15261,7 +15261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 550
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15284,7 +15284,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 551
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15307,7 +15307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 552
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15330,7 +15330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 553
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15353,7 +15353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 554
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15376,7 +15376,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 555
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15399,7 +15399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 556
+   i32.const 558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15422,7 +15422,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 557
+   i32.const 559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15445,7 +15445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 558
+   i32.const 560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15468,7 +15468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 561
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15491,7 +15491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 562
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15514,7 +15514,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 563
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15537,7 +15537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 564
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15560,7 +15560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 565
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15583,7 +15583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 566
+   i32.const 568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15606,7 +15606,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 567
+   i32.const 569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15629,7 +15629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 568
+   i32.const 570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15643,7 +15643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 577
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15657,7 +15657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 578
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15671,7 +15671,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 579
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15685,7 +15685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 580
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15699,7 +15699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 581
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15713,7 +15713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 582
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15727,7 +15727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 583
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15741,7 +15741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 584
+   i32.const 586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15755,7 +15755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 585
+   i32.const 587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15769,7 +15769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 586
+   i32.const 588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15783,7 +15783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 589
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15797,7 +15797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 590
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15811,7 +15811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 591
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15825,7 +15825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 592
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15839,7 +15839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 593
+   i32.const 595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15853,7 +15853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 594
+   i32.const 596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15867,7 +15867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 595
+   i32.const 597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15880,7 +15880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 607
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15893,7 +15893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 608
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15906,7 +15906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 609
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15919,7 +15919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 610
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15932,7 +15932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 611
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15945,7 +15945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 612
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15958,7 +15958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 613
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15971,7 +15971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 614
+   i32.const 616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15984,7 +15984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 615
+   i32.const 617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15997,7 +15997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 616
+   i32.const 618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16010,7 +16010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 619
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16023,7 +16023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 620
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16036,7 +16036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 621
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16049,7 +16049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 622
+   i32.const 624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16062,7 +16062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 623
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16075,7 +16075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 624
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16088,7 +16088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 625
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16101,7 +16101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 626
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16114,7 +16114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 627
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16127,7 +16127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 628
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16140,7 +16140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 629
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16153,7 +16153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 630
+   i32.const 632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16166,7 +16166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 631
+   i32.const 633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16179,7 +16179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 632
+   i32.const 634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16192,7 +16192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 641
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16205,7 +16205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 642
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16218,7 +16218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 643
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16231,7 +16231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 644
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16244,7 +16244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 645
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16257,7 +16257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 646
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16270,7 +16270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 647
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16283,7 +16283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 648
+   i32.const 650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16296,7 +16296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 649
+   i32.const 651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16309,7 +16309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 650
+   i32.const 652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16322,7 +16322,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 653
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16335,7 +16335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 654
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16348,7 +16348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 655
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16361,7 +16361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 656
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16374,7 +16374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 657
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16387,7 +16387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 658
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16400,7 +16400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 659
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16413,7 +16413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 660
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16426,7 +16426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 661
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16439,7 +16439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 662
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16452,7 +16452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 663
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16465,7 +16465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 664
+   i32.const 666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16478,7 +16478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 665
+   i32.const 667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16491,7 +16491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 666
+   i32.const 668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16505,7 +16505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 678
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16519,7 +16519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 679
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16533,7 +16533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 680
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16547,7 +16547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 681
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16561,7 +16561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 682
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16575,7 +16575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 683
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16589,7 +16589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 684
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16603,7 +16603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 685
+   i32.const 687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16617,7 +16617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 686
+   i32.const 688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16631,7 +16631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 687
+   i32.const 689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16645,7 +16645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 690
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16659,7 +16659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 691
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16673,7 +16673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 692
+   i32.const 694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16687,7 +16687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 693
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16701,7 +16701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 694
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16715,7 +16715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 695
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16729,7 +16729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 696
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16743,7 +16743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 697
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16757,7 +16757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 698
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16771,7 +16771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 699
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16785,7 +16785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 700
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16799,7 +16799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 701
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16813,7 +16813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 702
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16827,7 +16827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 703
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16841,7 +16841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 704
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16855,7 +16855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 705
+   i32.const 707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16869,7 +16869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 706
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16883,7 +16883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 707
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16897,7 +16897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 708
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16911,7 +16911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 709
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16925,7 +16925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 710
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16939,7 +16939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 711
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16953,7 +16953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 712
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16967,7 +16967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 713
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16981,7 +16981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 714
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16995,7 +16995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 715
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17009,7 +17009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 716
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17023,7 +17023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 717
+   i32.const 719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17037,7 +17037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 718
+   i32.const 720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17051,7 +17051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 719
+   i32.const 721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17065,7 +17065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 728
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17079,7 +17079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 729
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17093,7 +17093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 730
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17107,7 +17107,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 731
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17121,7 +17121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 732
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17135,7 +17135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 733
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17149,7 +17149,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 734
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17163,7 +17163,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 735
+   i32.const 737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17177,7 +17177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 736
+   i32.const 738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17191,7 +17191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 737
+   i32.const 739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17205,7 +17205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 740
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17219,7 +17219,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 741
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17233,7 +17233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 742
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17247,7 +17247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 743
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17261,7 +17261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 744
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17275,7 +17275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 745
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17289,7 +17289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 746
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17303,7 +17303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 747
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17317,7 +17317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 748
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17331,7 +17331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 749
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17345,7 +17345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 750
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17359,7 +17359,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 751
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17373,7 +17373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 752
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17387,7 +17387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 753
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17401,7 +17401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 754
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17415,7 +17415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 755
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17429,7 +17429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 756
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17443,7 +17443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 757
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17457,7 +17457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 758
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17471,7 +17471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 759
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17485,7 +17485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 760
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17499,7 +17499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 761
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17513,7 +17513,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 762
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17527,7 +17527,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 763
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17541,7 +17541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 764
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17555,7 +17555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 765
+   i32.const 767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17569,7 +17569,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 766
+   i32.const 768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17583,7 +17583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 767
+   i32.const 769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17596,7 +17596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 779
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17609,7 +17609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 780
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17622,7 +17622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 781
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17635,7 +17635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 782
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17648,7 +17648,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 783
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17661,7 +17661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 784
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17674,7 +17674,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 785
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17687,7 +17687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 786
+   i32.const 788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17700,7 +17700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 787
+   i32.const 789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17713,7 +17713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 788
+   i32.const 790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17726,7 +17726,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 791
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17739,7 +17739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 792
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17752,7 +17752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 793
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17765,7 +17765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 794
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17778,7 +17778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 795
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17791,7 +17791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 796
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17804,7 +17804,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 797
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17817,7 +17817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 798
+   i32.const 800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17830,7 +17830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 799
+   i32.const 801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17843,7 +17843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 800
+   i32.const 802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17856,7 +17856,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 809
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17869,7 +17869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 810
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17882,7 +17882,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 811
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17895,7 +17895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 812
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17908,7 +17908,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 813
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17921,7 +17921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 814
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17934,7 +17934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 815
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17947,7 +17947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 816
+   i32.const 818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17960,7 +17960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 817
+   i32.const 819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17973,7 +17973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 818
+   i32.const 820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17986,7 +17986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 821
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17999,7 +17999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 822
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18012,7 +18012,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 823
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18025,7 +18025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 824
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18038,7 +18038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 825
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18051,7 +18051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 826
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18064,7 +18064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 827
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18077,7 +18077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 828
+   i32.const 830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18090,7 +18090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 829
+   i32.const 831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18103,7 +18103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 830
+   i32.const 832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18125,7 +18125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 842
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18147,7 +18147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 843
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18169,7 +18169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 844
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18191,7 +18191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 845
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18213,7 +18213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 846
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18235,7 +18235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 847
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18257,7 +18257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 848
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18279,7 +18279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 849
+   i32.const 851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18301,7 +18301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 850
+   i32.const 852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18323,7 +18323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 851
+   i32.const 853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18345,7 +18345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 854
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18367,7 +18367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 855
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18389,7 +18389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 856
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18411,7 +18411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 857
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18433,7 +18433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 858
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18455,7 +18455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 859
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18477,7 +18477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 860
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18499,7 +18499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 861
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18521,7 +18521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 862
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18543,7 +18543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 863
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18565,7 +18565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 864
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18587,7 +18587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 865
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18609,7 +18609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 866
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18631,7 +18631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 867
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18653,7 +18653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 868
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18675,7 +18675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 869
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18697,7 +18697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 870
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18719,7 +18719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 871
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18741,7 +18741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 872
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18763,7 +18763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 873
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18785,7 +18785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 874
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18807,7 +18807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 875
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18829,7 +18829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 876
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18851,7 +18851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 877
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18873,7 +18873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 878
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18895,7 +18895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 879
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18917,7 +18917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 880
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18939,7 +18939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 881
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18961,7 +18961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 882
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18983,7 +18983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 883
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19005,7 +19005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 884
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19027,7 +19027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 885
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19049,7 +19049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 886
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19071,7 +19071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 887
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19093,7 +19093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 888
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19115,7 +19115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 889
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19137,7 +19137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 890
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19159,7 +19159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 891
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19181,7 +19181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 892
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19203,7 +19203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 893
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19225,7 +19225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 894
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19247,7 +19247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 895
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19269,7 +19269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 896
+   i32.const 898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19291,7 +19291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 897
+   i32.const 899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19313,7 +19313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 898
+   i32.const 900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19326,7 +19326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 907
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19339,7 +19339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 908
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19352,7 +19352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 909
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19365,7 +19365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 910
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19378,7 +19378,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 911
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19391,7 +19391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 912
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19404,7 +19404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 913
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19417,7 +19417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 914
+   i32.const 916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19430,7 +19430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 915
+   i32.const 917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19443,7 +19443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 916
+   i32.const 918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19456,7 +19456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 919
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19469,7 +19469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 920
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19482,7 +19482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 921
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19495,7 +19495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 922
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19508,7 +19508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 923
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19521,7 +19521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 924
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19534,7 +19534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 925
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19547,7 +19547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 926
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19560,7 +19560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 927
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19573,7 +19573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 928
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19586,7 +19586,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 929
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19599,7 +19599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 930
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19612,7 +19612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 931
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19625,7 +19625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 932
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19638,7 +19638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 933
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19651,7 +19651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 934
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19664,7 +19664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 935
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19677,7 +19677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 936
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19690,7 +19690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 937
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19703,7 +19703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 938
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19716,7 +19716,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 939
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19729,7 +19729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 940
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19742,7 +19742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 941
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19755,7 +19755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 942
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19768,7 +19768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 943
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19781,7 +19781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 944
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19794,7 +19794,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 945
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19807,7 +19807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 946
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19820,7 +19820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 947
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19833,7 +19833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 948
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19846,7 +19846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 949
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19859,7 +19859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 950
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19872,7 +19872,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 951
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19885,7 +19885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 952
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19898,7 +19898,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 953
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19911,7 +19911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 954
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19924,7 +19924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 955
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19937,7 +19937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 956
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19950,7 +19950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 957
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19963,7 +19963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 958
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19976,7 +19976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 959
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19989,7 +19989,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 960
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20002,7 +20002,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 961
+   i32.const 963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20015,7 +20015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 962
+   i32.const 964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20028,7 +20028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 963
+   i32.const 965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20051,7 +20051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 974
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20074,7 +20074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 975
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20097,7 +20097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 976
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20120,7 +20120,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 977
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20143,7 +20143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 978
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20166,7 +20166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 979
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20189,7 +20189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 980
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20212,7 +20212,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 981
+   i32.const 983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20235,7 +20235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 982
+   i32.const 984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20258,7 +20258,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 983
+   i32.const 985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20281,7 +20281,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 986
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20304,7 +20304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 987
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20327,7 +20327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 988
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20350,7 +20350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 989
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20373,7 +20373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 990
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20396,7 +20396,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 991
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20419,7 +20419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 992
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20442,7 +20442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 993
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20465,7 +20465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 994
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20488,7 +20488,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 995
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20511,7 +20511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 996
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20534,7 +20534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 997
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20557,7 +20557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 998
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20580,7 +20580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 999
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20603,7 +20603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1000
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20626,7 +20626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1001
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20649,7 +20649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1002
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20672,7 +20672,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1003
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20695,7 +20695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1004
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20718,7 +20718,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1005
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20741,7 +20741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1006
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20764,7 +20764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1007
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20787,7 +20787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1008
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20810,7 +20810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1009
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20833,7 +20833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1010
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20856,7 +20856,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1011
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20879,7 +20879,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1012
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20902,7 +20902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1013
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20925,7 +20925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1014
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20948,7 +20948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1015
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20971,7 +20971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1016
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20994,7 +20994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1017
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21017,7 +21017,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1018
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21040,7 +21040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1019
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21063,7 +21063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1020
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21086,7 +21086,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1021
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21109,7 +21109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1022
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21132,7 +21132,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1023
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21155,7 +21155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1024
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21178,7 +21178,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1025
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21201,7 +21201,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1026
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21224,7 +21224,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1027
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21247,7 +21247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1028
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21270,7 +21270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1029
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21293,7 +21293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1030
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21316,7 +21316,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1031
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21339,7 +21339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1032
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21362,7 +21362,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1033
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21385,7 +21385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1034
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21408,7 +21408,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1035
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21431,7 +21431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1036
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21454,7 +21454,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1037
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21477,7 +21477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1038
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21500,7 +21500,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1039
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21523,7 +21523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1040
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21546,7 +21546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1041
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21569,7 +21569,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1042
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21592,7 +21592,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1043
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21615,7 +21615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1044
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21638,7 +21638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1045
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21661,7 +21661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1046
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21684,7 +21684,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1047
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21707,7 +21707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1048
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21730,7 +21730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1049
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21753,7 +21753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1050
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21776,7 +21776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1051
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21799,7 +21799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1052
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21822,7 +21822,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1053
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21845,7 +21845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1054
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21868,7 +21868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1055
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21891,7 +21891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1056
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21914,7 +21914,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1057
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21937,7 +21937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1058
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21960,7 +21960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1059
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21983,7 +21983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1060
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22006,7 +22006,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1061
+   i32.const 1063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22029,7 +22029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1062
+   i32.const 1064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22052,7 +22052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1063
+   i32.const 1065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22075,7 +22075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1066
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22098,7 +22098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1067
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22121,7 +22121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1068
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22144,7 +22144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1069
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22167,7 +22167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1070
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22190,7 +22190,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1071
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22213,7 +22213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1072
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22236,7 +22236,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1073
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22259,7 +22259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1074
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22282,7 +22282,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1075
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22305,7 +22305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1076
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22328,7 +22328,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1077
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22351,7 +22351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1078
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22374,7 +22374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1079
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22397,7 +22397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1080
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22420,7 +22420,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1081
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22443,7 +22443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1082
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22466,7 +22466,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1083
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22489,7 +22489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1084
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22512,7 +22512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1085
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22535,7 +22535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1086
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22558,7 +22558,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1087
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22581,7 +22581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1088
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22604,7 +22604,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1089
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22627,7 +22627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1090
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22650,7 +22650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1091
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22673,7 +22673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1092
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22696,7 +22696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1093
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22719,7 +22719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1094
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22742,7 +22742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1095
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22765,7 +22765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1096
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22788,7 +22788,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1097
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22811,7 +22811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1098
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22834,7 +22834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1099
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22857,7 +22857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1100
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22880,7 +22880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1101
+   i32.const 1103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22903,7 +22903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1102
+   i32.const 1104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22926,7 +22926,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1103
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22939,7 +22939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1105
+   i32.const 1107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22952,7 +22952,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1106
+   i32.const 1108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22965,7 +22965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1107
+   i32.const 1109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22977,7 +22977,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1111
+   i32.const 1113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22989,7 +22989,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1112
+   i32.const 1114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23001,7 +23001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1115
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23013,7 +23013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1117
+   i32.const 1119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23025,7 +23025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1118
+   i32.const 1120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23037,7 +23037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1121
+   i32.const 1123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23049,7 +23049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1123
+   i32.const 1125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23061,7 +23061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1126
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23073,7 +23073,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1128
+   i32.const 1130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23085,7 +23085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1129
+   i32.const 1131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23097,7 +23097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1130
+   i32.const 1132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23109,7 +23109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1132
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23121,7 +23121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1134
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23133,7 +23133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1135
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23145,7 +23145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1136
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23157,7 +23157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1137
+   i32.const 1139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23169,7 +23169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1138
+   i32.const 1140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23181,7 +23181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1139
+   i32.const 1141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23195,7 +23195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1148
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23209,7 +23209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1149
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23223,7 +23223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1150
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23237,7 +23237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1151
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23251,7 +23251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1152
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23265,7 +23265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1153
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23279,7 +23279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1154
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23293,7 +23293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1155
+   i32.const 1157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23307,7 +23307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1156
+   i32.const 1158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23321,7 +23321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1157
+   i32.const 1159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23335,7 +23335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1160
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23349,7 +23349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1161
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23363,7 +23363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1162
+   i32.const 1164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23377,7 +23377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1163
+   i32.const 1165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23391,7 +23391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1164
+   i32.const 1166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23405,7 +23405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1167
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23419,7 +23419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1168
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23433,7 +23433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1169
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23447,7 +23447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1170
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23461,7 +23461,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1171
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23475,7 +23475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1172
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23489,7 +23489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1173
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23503,7 +23503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1174
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23517,7 +23517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1175
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23531,7 +23531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1176
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23545,7 +23545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1177
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23559,7 +23559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1178
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23573,7 +23573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1179
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23587,7 +23587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1180
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23601,7 +23601,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1181
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23615,7 +23615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1182
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23629,7 +23629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1183
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23643,7 +23643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1184
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23657,7 +23657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1185
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23671,7 +23671,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1186
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23685,7 +23685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1187
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23699,7 +23699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1188
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23713,7 +23713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1189
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23727,7 +23727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1190
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23741,7 +23741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1191
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23755,7 +23755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1192
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23769,7 +23769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1193
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23783,7 +23783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1194
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23797,7 +23797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1195
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23811,7 +23811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1196
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23825,7 +23825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1197
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23839,7 +23839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1198
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23853,7 +23853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1199
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23867,7 +23867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1200
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23881,7 +23881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1201
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23895,7 +23895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1202
+   i32.const 1204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23909,7 +23909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1203
+   i32.const 1205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23923,7 +23923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1204
+   i32.const 1206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23937,7 +23937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1207
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23951,7 +23951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1208
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23965,7 +23965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1209
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23979,7 +23979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1210
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23993,7 +23993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1211
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24007,7 +24007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1212
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24021,7 +24021,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1213
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24035,7 +24035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1214
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24049,7 +24049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1215
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24063,7 +24063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1216
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24077,7 +24077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1217
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24091,7 +24091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1218
+   i32.const 1220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24105,7 +24105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1219
+   i32.const 1221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24119,7 +24119,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1220
+   i32.const 1222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24132,7 +24132,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1231
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24145,7 +24145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1232
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24158,7 +24158,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1233
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24171,7 +24171,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1234
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24184,7 +24184,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1235
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24197,7 +24197,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1236
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24210,7 +24210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1237
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24223,7 +24223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1238
+   i32.const 1240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24236,7 +24236,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1239
+   i32.const 1241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24249,7 +24249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1240
+   i32.const 1242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24262,7 +24262,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1243
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24275,7 +24275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1244
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24288,7 +24288,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1245
+   i32.const 1247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24301,7 +24301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1246
+   i32.const 1248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24314,7 +24314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1247
+   i32.const 1249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24327,7 +24327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1256
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24340,7 +24340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1257
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24353,7 +24353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1258
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24366,7 +24366,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1259
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24379,7 +24379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1260
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24392,7 +24392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1261
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24405,7 +24405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1262
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24418,7 +24418,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1263
+   i32.const 1265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24431,7 +24431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1264
+   i32.const 1266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24444,7 +24444,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1265
+   i32.const 1267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24457,7 +24457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1268
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24470,7 +24470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1269
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24483,7 +24483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1270
+   i32.const 1272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24496,7 +24496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1271
+   i32.const 1273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24509,7 +24509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1272
+   i32.const 1274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24532,7 +24532,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1284
+   i32.const 1286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24555,7 +24555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1285
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24578,7 +24578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1286
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24601,7 +24601,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1287
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24624,7 +24624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1288
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24647,7 +24647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1289
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24670,7 +24670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1290
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24693,7 +24693,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1291
+   i32.const 1293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24716,7 +24716,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1292
+   i32.const 1294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24739,7 +24739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1293
+   i32.const 1295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24762,7 +24762,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1296
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24785,7 +24785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1297
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24808,7 +24808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1298
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24831,7 +24831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1299
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24854,7 +24854,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1300
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24877,7 +24877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1301
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24900,7 +24900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1302
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24923,7 +24923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1303
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24946,7 +24946,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1304
+   i32.const 1306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24969,7 +24969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1305
+   i32.const 1307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24992,7 +24992,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1306
+   i32.const 1308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25015,7 +25015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1309
+   i32.const 1311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25038,7 +25038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1310
+   i32.const 1312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25061,7 +25061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1312
+   i32.const 1314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25084,7 +25084,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1319
+   i32.const 1321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25107,7 +25107,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1320
+   i32.const 1322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25130,7 +25130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1327
+   i32.const 1329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25153,7 +25153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1334
+   i32.const 1336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25176,7 +25176,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1341
+   i32.const 1343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25199,7 +25199,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1348
+   i32.const 1350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25222,7 +25222,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1355
+   i32.const 1357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25245,7 +25245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1362
+   i32.const 1364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25268,7 +25268,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1368
+   i32.const 1370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25291,7 +25291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1374
+   i32.const 1376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25314,7 +25314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1380
+   i32.const 1382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25337,7 +25337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1387
+   i32.const 1389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25360,7 +25360,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1394
+   i32.const 1396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25383,7 +25383,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1401
+   i32.const 1403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25406,7 +25406,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1408
+   i32.const 1410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25429,7 +25429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1415
+   i32.const 1417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25452,7 +25452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1422
+   i32.const 1424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25475,7 +25475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1429
+   i32.const 1431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25498,7 +25498,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1436
+   i32.const 1438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25512,7 +25512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1450
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25526,7 +25526,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1451
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25540,7 +25540,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1452
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25554,7 +25554,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1453
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25568,7 +25568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1454
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25582,7 +25582,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1455
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25596,7 +25596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1456
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25610,7 +25610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1457
+   i32.const 1459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25624,7 +25624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1458
+   i32.const 1460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25638,7 +25638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1459
+   i32.const 1461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25652,7 +25652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1462
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25666,7 +25666,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1463
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25680,7 +25680,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1464
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25694,7 +25694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1465
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25708,7 +25708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1466
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25722,7 +25722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1467
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25736,7 +25736,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1468
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25750,7 +25750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1469
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25764,7 +25764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1470
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25778,7 +25778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1471
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25792,7 +25792,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1472
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25806,7 +25806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1473
+   i32.const 1475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25820,7 +25820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1474
+   i32.const 1476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25834,7 +25834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1475
+   i32.const 1477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25857,7 +25857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1487
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25880,7 +25880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1488
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25903,7 +25903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1489
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25926,7 +25926,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1490
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25949,7 +25949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1491
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25972,7 +25972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1492
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25995,7 +25995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1493
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26018,7 +26018,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1494
+   i32.const 1496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26041,7 +26041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1495
+   i32.const 1497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26064,7 +26064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1496
+   i32.const 1498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26087,7 +26087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1499
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26110,7 +26110,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1500
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26133,7 +26133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1501
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26156,7 +26156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1502
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26179,7 +26179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1503
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26202,7 +26202,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1504
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26225,7 +26225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1505
+   i32.const 1507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26248,7 +26248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1506
+   i32.const 1508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26271,7 +26271,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1507
+   i32.const 1509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26285,7 +26285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1516
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26299,7 +26299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1517
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26313,7 +26313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1518
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26327,7 +26327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1519
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26341,7 +26341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1520
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26355,7 +26355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1521
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26369,7 +26369,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1522
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26383,7 +26383,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1523
+   i32.const 1525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26397,7 +26397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1524
+   i32.const 1526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26411,7 +26411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1525
+   i32.const 1527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26425,7 +26425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1528
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26439,7 +26439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1529
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26453,7 +26453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1530
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26467,7 +26467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1531
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26481,7 +26481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1532
+   i32.const 1534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26495,7 +26495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1533
+   i32.const 1535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26509,7 +26509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1534
+   i32.const 1536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26522,7 +26522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1546
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26535,7 +26535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1547
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26548,7 +26548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1548
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26561,7 +26561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1549
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26574,7 +26574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1550
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26587,7 +26587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1551
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26600,7 +26600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1552
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26613,7 +26613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1553
+   i32.const 1555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26626,7 +26626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1554
+   i32.const 1556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26639,7 +26639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1555
+   i32.const 1557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26652,7 +26652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1558
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26665,7 +26665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1559
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26678,7 +26678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1560
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26691,7 +26691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1561
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26704,7 +26704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1562
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26717,7 +26717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1563
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26730,7 +26730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1564
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26743,7 +26743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1565
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26756,7 +26756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1566
+   i32.const 1568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26769,7 +26769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1567
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26782,7 +26782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1568
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26795,7 +26795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1569
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26808,7 +26808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1570
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26821,7 +26821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1571
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26834,7 +26834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1572
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26847,7 +26847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1573
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26860,7 +26860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1574
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26873,7 +26873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1575
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26886,7 +26886,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1576
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26899,7 +26899,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1577
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26912,7 +26912,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1578
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26925,7 +26925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1579
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26938,7 +26938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1580
+   i32.const 1582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26951,7 +26951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1581
+   i32.const 1583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26964,7 +26964,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1582
+   i32.const 1584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26977,7 +26977,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1593
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26990,7 +26990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1594
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27003,7 +27003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1595
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27016,7 +27016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1596
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27029,7 +27029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1597
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27042,7 +27042,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1598
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27055,7 +27055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1599
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27068,7 +27068,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1600
+   i32.const 1602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27081,7 +27081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1601
+   i32.const 1603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27094,7 +27094,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1602
+   i32.const 1604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27116,7 +27116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1614
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27138,7 +27138,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1615
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27160,7 +27160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1616
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27182,7 +27182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1617
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27204,7 +27204,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1618
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27226,7 +27226,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1619
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27248,7 +27248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1620
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27270,7 +27270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1621
+   i32.const 1623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27292,7 +27292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1622
+   i32.const 1624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27314,7 +27314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1623
+   i32.const 1625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27336,7 +27336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1626
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27358,7 +27358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1627
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27380,7 +27380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1628
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27402,7 +27402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1629
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27424,7 +27424,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1630
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27446,7 +27446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1631
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27468,7 +27468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1632
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27490,7 +27490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1633
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27512,7 +27512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1634
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27534,7 +27534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1635
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27556,7 +27556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1636
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27578,7 +27578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1637
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27600,7 +27600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1638
+   i32.const 1640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27622,7 +27622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1639
+   i32.const 1641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27644,7 +27644,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1640
+   i32.const 1642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27657,7 +27657,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1649
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27670,7 +27670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1650
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27683,7 +27683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1651
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27696,7 +27696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1652
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27709,7 +27709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1653
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27722,7 +27722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1654
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27735,7 +27735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1655
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27748,7 +27748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1656
+   i32.const 1658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27761,7 +27761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1657
+   i32.const 1659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27774,7 +27774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1658
+   i32.const 1660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27787,7 +27787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1661
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27800,7 +27800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1662
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27813,7 +27813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1663
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27826,7 +27826,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1664
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27839,7 +27839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1665
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27852,7 +27852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1666
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27865,7 +27865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1667
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27878,7 +27878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1668
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27891,7 +27891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1669
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27904,7 +27904,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1670
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27914,32 +27914,6 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 1671
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 0
-  f32.const 0
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 1672
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -27974,6 +27948,32 @@
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const 0
+  f32.const 0
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 1676
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 1677
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
   f64.const -8.06684839057968
   f64.const 4.535662560676869
   f64.const 9.25452742288464
@@ -27983,7 +27983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1689
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27997,7 +27997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1690
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28011,7 +28011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1691
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28025,7 +28025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1692
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28039,7 +28039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1693
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28053,7 +28053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1694
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28067,7 +28067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1695
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28081,7 +28081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1696
+   i32.const 1698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28095,7 +28095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1697
+   i32.const 1699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28109,7 +28109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1698
+   i32.const 1700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28123,7 +28123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1701
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28137,7 +28137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1702
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28151,7 +28151,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1703
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28165,7 +28165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1704
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28179,7 +28179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1705
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28193,7 +28193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1706
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28207,7 +28207,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1707
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28221,7 +28221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1708
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28235,7 +28235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1709
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28249,7 +28249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1710
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28263,7 +28263,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1711
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28277,7 +28277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1712
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28291,7 +28291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1713
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28305,7 +28305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1714
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28319,7 +28319,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1715
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28333,7 +28333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1716
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28347,7 +28347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1717
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28361,7 +28361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1718
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28375,7 +28375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1719
+   i32.const 1721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28389,7 +28389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1720
+   i32.const 1722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28403,7 +28403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1721
+   i32.const 1723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28417,7 +28417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1730
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28431,7 +28431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1731
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28445,7 +28445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1732
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28459,7 +28459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1733
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28473,7 +28473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1734
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28487,7 +28487,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1735
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28501,7 +28501,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1736
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28515,7 +28515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1737
+   i32.const 1739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28529,7 +28529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1738
+   i32.const 1740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28543,7 +28543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1739
+   i32.const 1741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28557,7 +28557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1742
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28571,7 +28571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1743
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28585,7 +28585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1744
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28599,7 +28599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1745
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28613,7 +28613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1746
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28627,7 +28627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1747
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28641,7 +28641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1748
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28655,7 +28655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1749
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28669,7 +28669,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1750
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28683,7 +28683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1751
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28697,7 +28697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1752
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28711,7 +28711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1753
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28725,7 +28725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1754
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28739,7 +28739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1755
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28753,7 +28753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1756
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28767,7 +28767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1757
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28781,7 +28781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1758
+   i32.const 1760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28795,7 +28795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1759
+   i32.const 1761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28809,7 +28809,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1760
+   i32.const 1762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28832,7 +28832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1772
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28855,7 +28855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1773
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28878,7 +28878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1774
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28901,7 +28901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1775
+   i32.const 1777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28924,7 +28924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1776
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28947,7 +28947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1777
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28970,7 +28970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1778
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28993,7 +28993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1779
+   i32.const 1781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29016,7 +29016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1780
+   i32.const 1782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29039,7 +29039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1781
+   i32.const 1783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29062,7 +29062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1784
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29085,7 +29085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1785
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29108,7 +29108,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1786
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29131,7 +29131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1787
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29154,7 +29154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1788
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29177,7 +29177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1789
+   i32.const 1791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29200,7 +29200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1790
+   i32.const 1792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29223,7 +29223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1791
+   i32.const 1793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29237,7 +29237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1800
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29251,7 +29251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1801
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29265,7 +29265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1802
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29279,7 +29279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1803
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29293,7 +29293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1804
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29307,7 +29307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1805
+   i32.const 1807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29321,7 +29321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1806
+   i32.const 1808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29335,7 +29335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1807
+   i32.const 1809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29349,7 +29349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1810
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29363,7 +29363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1811
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29377,7 +29377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1812
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29391,7 +29391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1813
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29405,7 +29405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1814
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29419,7 +29419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1815
+   i32.const 1817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29433,7 +29433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1816
+   i32.const 1818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29447,7 +29447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1817
+   i32.const 1819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29460,7 +29460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1829
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29473,7 +29473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1830
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29486,7 +29486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1831
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29499,7 +29499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1832
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29512,7 +29512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1833
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29525,7 +29525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1834
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29538,7 +29538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1835
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29551,7 +29551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1836
+   i32.const 1838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29564,7 +29564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1837
+   i32.const 1839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29577,7 +29577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1838
+   i32.const 1840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29590,7 +29590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1841
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29603,7 +29603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1842
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29616,7 +29616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1843
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29629,7 +29629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1844
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29642,7 +29642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1845
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29655,7 +29655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1846
+   i32.const 1848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29668,7 +29668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1847
+   i32.const 1849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29681,7 +29681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1848
+   i32.const 1850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29694,7 +29694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1857
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29707,7 +29707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1858
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29720,7 +29720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1859
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29733,7 +29733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1860
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29746,7 +29746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1861
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29759,7 +29759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1862
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29772,7 +29772,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1863
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29785,7 +29785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1864
+   i32.const 1866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29798,7 +29798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1865
+   i32.const 1867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29811,7 +29811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1866
+   i32.const 1868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29824,7 +29824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1869
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29837,7 +29837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1870
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29850,7 +29850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1871
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29863,7 +29863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1872
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29876,7 +29876,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1873
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29889,7 +29889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1874
+   i32.const 1876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29902,7 +29902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1875
+   i32.const 1877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29915,7 +29915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1876
+   i32.const 1878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29938,7 +29938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1888
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29961,7 +29961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1889
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29984,7 +29984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1890
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30007,7 +30007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1891
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30030,7 +30030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1892
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30053,7 +30053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1893
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30076,7 +30076,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1894
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30099,7 +30099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1895
+   i32.const 1897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30122,7 +30122,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1896
+   i32.const 1898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30145,7 +30145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1897
+   i32.const 1899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30168,7 +30168,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1900
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30191,7 +30191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1901
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30214,7 +30214,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1902
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30237,7 +30237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1903
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30260,7 +30260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1904
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30283,7 +30283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1905
+   i32.const 1907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30306,7 +30306,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1906
+   i32.const 1908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30329,7 +30329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1907
+   i32.const 1909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30343,7 +30343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1916
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30357,7 +30357,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1917
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30371,7 +30371,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1918
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30385,7 +30385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1919
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30399,7 +30399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1920
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30413,7 +30413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1921
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30427,7 +30427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1922
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30441,7 +30441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1923
+   i32.const 1925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30455,7 +30455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1924
+   i32.const 1926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30469,7 +30469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1925
+   i32.const 1927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30483,7 +30483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1928
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30497,7 +30497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1929
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30511,7 +30511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1930
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30525,7 +30525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1931
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30539,7 +30539,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1932
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30553,7 +30553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1933
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30567,7 +30567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1934
+   i32.const 1936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30581,7 +30581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1935
+   i32.const 1937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30595,7 +30595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1936
+   i32.const 1938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30618,7 +30618,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1948
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30641,7 +30641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1949
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30664,7 +30664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1950
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30687,7 +30687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1951
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30710,7 +30710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1952
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30733,7 +30733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1953
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30756,7 +30756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1954
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30779,7 +30779,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1955
+   i32.const 1957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30802,7 +30802,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1956
+   i32.const 1958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30825,7 +30825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1957
+   i32.const 1959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30848,7 +30848,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1960
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30871,7 +30871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1961
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30894,7 +30894,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1962
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30917,7 +30917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1963
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30940,7 +30940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1964
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30963,7 +30963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1965
+   i32.const 1967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30986,7 +30986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1966
+   i32.const 1968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31009,7 +31009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1967
+   i32.const 1969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31022,7 +31022,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1976
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31035,7 +31035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1977
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31048,7 +31048,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1978
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31061,7 +31061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1979
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31074,7 +31074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1980
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31087,7 +31087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1981
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31100,7 +31100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1982
+   i32.const 1984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31113,7 +31113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1983
+   i32.const 1985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31126,7 +31126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1984
+   i32.const 1986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31139,7 +31139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1985
+   i32.const 1987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31152,7 +31152,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1988
+   i32.const 1990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31165,7 +31165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1989
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31178,7 +31178,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1990
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31191,7 +31191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1991
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31204,7 +31204,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1992
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31217,7 +31217,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1993
+   i32.const 1995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31230,7 +31230,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1994
+   i32.const 1996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31243,7 +31243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1995
+   i32.const 1997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31256,7 +31256,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2007
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31269,7 +31269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2008
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31282,7 +31282,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2009
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31295,7 +31295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2010
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31308,7 +31308,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2011
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31321,7 +31321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2012
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31334,7 +31334,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2013
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31347,7 +31347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2014
+   i32.const 2016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31360,7 +31360,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2015
+   i32.const 2017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31373,7 +31373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2016
+   i32.const 2018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31386,7 +31386,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2019
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31399,7 +31399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2020
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31412,7 +31412,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2021
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31425,7 +31425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2022
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31438,7 +31438,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2023
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31451,7 +31451,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2024
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31464,7 +31464,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2025
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31477,7 +31477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2026
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31490,7 +31490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2027
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31503,7 +31503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2028
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31516,7 +31516,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2029
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31529,7 +31529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2030
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31542,7 +31542,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2031
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31555,7 +31555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2032
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31568,7 +31568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2033
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31581,7 +31581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2034
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31594,7 +31594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2035
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31607,7 +31607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2036
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31620,7 +31620,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2037
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31633,7 +31633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2038
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31646,7 +31646,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2039
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31659,7 +31659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2040
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31672,7 +31672,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2041
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31685,7 +31685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2042
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31698,7 +31698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2043
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31711,7 +31711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2044
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31724,7 +31724,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2045
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31737,7 +31737,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2046
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31750,7 +31750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2047
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31763,7 +31763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2048
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31776,7 +31776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2049
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31789,7 +31789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2050
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31802,7 +31802,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2051
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31815,7 +31815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2052
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31828,7 +31828,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2053
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31841,7 +31841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2054
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31854,7 +31854,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2055
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31867,7 +31867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2056
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31880,7 +31880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2057
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31893,7 +31893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2058
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31906,7 +31906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2059
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31919,7 +31919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2060
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31932,7 +31932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2061
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31945,7 +31945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2062
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31958,7 +31958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2063
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31971,7 +31971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2064
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31984,7 +31984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2065
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31997,7 +31997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2066
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32010,7 +32010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2067
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32023,7 +32023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2068
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32036,7 +32036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2069
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32049,7 +32049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2070
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32062,7 +32062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2071
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32075,7 +32075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2072
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32088,7 +32088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2073
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32101,7 +32101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2074
+   i32.const 2076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32114,7 +32114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2075
+   i32.const 2077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32127,7 +32127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2076
+   i32.const 2078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32140,7 +32140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2085
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32153,7 +32153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2086
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32166,7 +32166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2087
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32179,7 +32179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2088
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32192,7 +32192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2089
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32205,7 +32205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2090
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32218,7 +32218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2091
+   i32.const 2093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32231,7 +32231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2092
+   i32.const 2094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32244,7 +32244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2093
+   i32.const 2095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32257,33 +32257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2094
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2097
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2098
+   i32.const 2096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32340,8 +32314,8 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const inf
-  f32.const inf
+  f32.const 1
+  f32.const 1
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
@@ -32366,6 +32340,32 @@
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const inf
+  f32.const inf
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2105
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2106
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
   f32.const nan:0x400000
   f32.const nan:0x400000
   f32.const 0
@@ -32374,7 +32374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2105
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32387,7 +32387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2106
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32400,7 +32400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2107
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32413,7 +32413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2108
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32426,7 +32426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2109
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32439,7 +32439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2110
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32452,7 +32452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2111
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32465,7 +32465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2112
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32478,7 +32478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2113
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32491,7 +32491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2114
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32504,7 +32504,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2115
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32517,7 +32517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2116
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32530,7 +32530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2117
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32543,7 +32543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2118
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32556,7 +32556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2119
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32569,7 +32569,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2120
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32582,7 +32582,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2121
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32595,7 +32595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2122
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32608,7 +32608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2123
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32621,7 +32621,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2124
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32634,7 +32634,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2125
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32647,7 +32647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2126
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32660,7 +32660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2127
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32673,7 +32673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2128
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32686,7 +32686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2129
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32699,7 +32699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2130
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32712,7 +32712,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2131
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32725,7 +32725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2132
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32738,7 +32738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2133
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32751,7 +32751,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2134
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32764,7 +32764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2135
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32777,7 +32777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2136
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32790,7 +32790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2137
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32803,7 +32803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2138
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32816,7 +32816,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2139
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32829,7 +32829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2140
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32842,7 +32842,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2141
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32855,7 +32855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2142
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32868,7 +32868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2143
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32881,7 +32881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2144
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32894,7 +32894,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2145
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32907,7 +32907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2146
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32920,7 +32920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2147
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32933,7 +32933,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2148
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32946,7 +32946,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2149
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32959,7 +32959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2150
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32972,7 +32972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2151
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32985,7 +32985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2152
+   i32.const 2154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32998,7 +32998,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2153
+   i32.const 2155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33011,7 +33011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2154
+   i32.const 2156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33024,7 +33024,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2166
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33037,7 +33037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2167
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33050,7 +33050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2168
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33063,7 +33063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2169
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33076,7 +33076,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2170
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33089,7 +33089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2171
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33102,7 +33102,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2172
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33115,7 +33115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2173
+   i32.const 2175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33128,7 +33128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2174
+   i32.const 2176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33141,7 +33141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2175
+   i32.const 2177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33154,7 +33154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2178
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33167,7 +33167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2179
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33180,7 +33180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2180
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33193,7 +33193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2181
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33206,7 +33206,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2182
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33219,7 +33219,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2183
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33232,7 +33232,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2184
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33245,7 +33245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2185
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33258,7 +33258,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2186
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33271,7 +33271,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2187
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33284,7 +33284,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2188
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33297,7 +33297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2189
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33310,7 +33310,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2190
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33323,7 +33323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2191
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33336,7 +33336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2192
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33349,7 +33349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2193
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33362,7 +33362,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2194
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33375,7 +33375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2195
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33388,7 +33388,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2196
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33401,7 +33401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2197
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33414,7 +33414,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2198
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33427,7 +33427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2199
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33440,7 +33440,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2200
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33453,7 +33453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2201
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33466,7 +33466,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2202
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33479,7 +33479,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2203
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33492,7 +33492,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2204
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33505,7 +33505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2205
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33518,7 +33518,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2206
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33531,7 +33531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2207
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33544,7 +33544,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2208
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33557,7 +33557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2209
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33570,7 +33570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2210
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33583,7 +33583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2211
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33596,7 +33596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2212
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33609,7 +33609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2213
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33622,7 +33622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2214
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33635,7 +33635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2215
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33648,7 +33648,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2216
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33661,7 +33661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2217
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33674,7 +33674,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2218
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33687,7 +33687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2219
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33700,7 +33700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2220
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33713,7 +33713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2221
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33726,7 +33726,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2222
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33739,7 +33739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2223
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33752,7 +33752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2224
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33765,7 +33765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2225
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33778,7 +33778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2226
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33791,7 +33791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2227
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33804,7 +33804,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2228
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33817,7 +33817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2229
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33830,7 +33830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2230
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33843,7 +33843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2231
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33856,7 +33856,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2232
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33869,7 +33869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2233
+   i32.const 2235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33882,7 +33882,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2234
+   i32.const 2236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33895,7 +33895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2235
+   i32.const 2237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33908,7 +33908,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2244
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33921,7 +33921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2245
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33934,7 +33934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2246
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33947,7 +33947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2247
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33960,7 +33960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2248
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33973,7 +33973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2249
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33986,7 +33986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2250
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33999,7 +33999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2251
+   i32.const 2253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34012,7 +34012,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2252
+   i32.const 2254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34025,7 +34025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2253
+   i32.const 2255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34038,7 +34038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2256
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34051,7 +34051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2257
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34064,7 +34064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2258
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34077,7 +34077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2259
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34090,7 +34090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2260
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34103,7 +34103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2261
+   i32.const 2263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34116,7 +34116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2262
+   i32.const 2264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34129,7 +34129,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2263
+   i32.const 2265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34139,32 +34139,6 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2264
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2265
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -34238,6 +34212,32 @@
    call $~lib/builtins/abort
    unreachable
   end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2272
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2273
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
   f32.const -inf
   f32.const -inf
   f32.const 0
@@ -34246,7 +34246,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2272
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34259,7 +34259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2273
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34272,7 +34272,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2274
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34285,7 +34285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2275
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34298,7 +34298,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2276
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34311,7 +34311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2277
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34324,7 +34324,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2278
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34337,7 +34337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2279
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34350,7 +34350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2280
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34363,7 +34363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2281
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34376,7 +34376,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2282
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34389,7 +34389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2283
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34402,7 +34402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2284
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34415,7 +34415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2285
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34428,7 +34428,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2286
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34441,7 +34441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2287
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34454,7 +34454,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2288
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34467,7 +34467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2289
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34480,7 +34480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2290
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34493,7 +34493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2291
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34506,7 +34506,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2292
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34519,7 +34519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2293
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34532,7 +34532,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2294
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34545,7 +34545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2295
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34558,7 +34558,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2296
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34571,7 +34571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2297
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34584,7 +34584,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2298
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34597,7 +34597,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2299
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34610,7 +34610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2300
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34623,7 +34623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2301
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34636,7 +34636,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2302
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34649,7 +34649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2303
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34662,7 +34662,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2304
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34675,7 +34675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2305
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34688,7 +34688,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2306
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34701,7 +34701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2307
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34714,7 +34714,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2308
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34727,7 +34727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2309
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34740,7 +34740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2310
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34753,7 +34753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2311
+   i32.const 2313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34766,7 +34766,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2312
+   i32.const 2314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34779,7 +34779,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2313
+   i32.const 2315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34792,7 +34792,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2327
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34805,7 +34805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2328
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34818,7 +34818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2329
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34831,7 +34831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2330
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34844,7 +34844,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2331
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34857,7 +34857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2332
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34870,7 +34870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2333
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34883,7 +34883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2334
+   i32.const 2336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34896,7 +34896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2335
+   i32.const 2337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34909,7 +34909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2336
+   i32.const 2338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34922,7 +34922,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2339
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34935,7 +34935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2340
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34948,7 +34948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2341
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34961,7 +34961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2342
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34974,7 +34974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2343
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34987,7 +34987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2344
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35000,7 +35000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2345
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35013,7 +35013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2346
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35026,7 +35026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2347
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35039,7 +35039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2348
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35052,7 +35052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2349
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35065,7 +35065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2350
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35078,7 +35078,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2351
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35091,7 +35091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2352
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35104,7 +35104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2353
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35117,7 +35117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2354
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35130,7 +35130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2355
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35143,7 +35143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2356
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35156,7 +35156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2357
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35169,7 +35169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2358
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35182,7 +35182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2359
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35195,7 +35195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2360
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35208,7 +35208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2361
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35221,7 +35221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2362
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35234,7 +35234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2363
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35247,7 +35247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2364
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35260,7 +35260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2365
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35273,7 +35273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2366
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35286,7 +35286,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2367
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35299,7 +35299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2368
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35312,7 +35312,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2369
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35325,7 +35325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2370
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35338,7 +35338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2371
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35351,7 +35351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2372
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35364,7 +35364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2373
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35377,7 +35377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2374
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35390,7 +35390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2375
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35403,7 +35403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2376
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35416,7 +35416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2377
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35429,7 +35429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2378
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35442,7 +35442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2379
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35455,7 +35455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2380
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35468,7 +35468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2381
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35481,7 +35481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2382
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35494,7 +35494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2383
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35507,7 +35507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2384
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35520,7 +35520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2385
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35533,7 +35533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2386
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35546,7 +35546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2387
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35559,7 +35559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2388
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35572,7 +35572,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2389
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35585,7 +35585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2390
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35598,7 +35598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2391
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35611,7 +35611,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2392
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35624,7 +35624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2393
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35637,7 +35637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2394
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35650,7 +35650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2395
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35663,7 +35663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2396
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35676,7 +35676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2397
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35689,7 +35689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2398
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35702,7 +35702,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2399
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35715,7 +35715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2400
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35728,7 +35728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2401
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35741,7 +35741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2402
+   i32.const 2404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35754,7 +35754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2403
+   i32.const 2405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35767,7 +35767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2404
+   i32.const 2406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35780,7 +35780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2407
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35793,7 +35793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2408
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35806,7 +35806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2409
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35819,7 +35819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2410
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35832,7 +35832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2411
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35845,7 +35845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2412
+   i32.const 2414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35858,7 +35858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2413
+   i32.const 2415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35871,7 +35871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2414
+   i32.const 2416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35884,7 +35884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2417
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35897,7 +35897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2418
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35910,7 +35910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2419
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35923,7 +35923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2420
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35936,7 +35936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2421
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35949,7 +35949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2422
+   i32.const 2424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35962,7 +35962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2423
+   i32.const 2425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35975,7 +35975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2424
+   i32.const 2426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35988,7 +35988,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2427
+   i32.const 2429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36001,7 +36001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2428
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36014,7 +36014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2430
+   i32.const 2432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36027,7 +36027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2431
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36040,7 +36040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2433
+   i32.const 2435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36053,7 +36053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2434
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36066,7 +36066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2436
+   i32.const 2438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36079,7 +36079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2437
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36092,7 +36092,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2439
+   i32.const 2441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36105,7 +36105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2440
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36118,7 +36118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2442
+   i32.const 2444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36131,7 +36131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2443
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36144,7 +36144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2445
+   i32.const 2447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36157,7 +36157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2446
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36170,7 +36170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2448
+   i32.const 2450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36183,7 +36183,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2449
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36196,7 +36196,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2451
+   i32.const 2453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36209,7 +36209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2452
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36222,7 +36222,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2454
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36235,7 +36235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2455
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36248,7 +36248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2456
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36261,7 +36261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2457
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36274,7 +36274,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2458
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36287,7 +36287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2459
+   i32.const 2461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36300,7 +36300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2460
+   i32.const 2462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36313,7 +36313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2461
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36326,7 +36326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2463
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36339,7 +36339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2464
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36352,7 +36352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2465
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36365,7 +36365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2466
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36378,7 +36378,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2467
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36391,7 +36391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2468
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36404,7 +36404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2469
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36417,7 +36417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2470
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36430,7 +36430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2471
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36443,7 +36443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2472
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36456,7 +36456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2473
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36469,7 +36469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2474
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36482,7 +36482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2475
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36495,7 +36495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2476
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36508,7 +36508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2477
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36521,7 +36521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2478
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36534,7 +36534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2479
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36547,7 +36547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2480
+   i32.const 2482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36560,7 +36560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2481
+   i32.const 2483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36573,7 +36573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2482
+   i32.const 2484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36588,7 +36588,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2491
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36603,7 +36603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2492
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36618,7 +36618,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2493
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36633,7 +36633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2494
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36648,7 +36648,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2495
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36663,7 +36663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2496
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36678,7 +36678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2497
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36693,7 +36693,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2498
+   i32.const 2500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36708,7 +36708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2499
+   i32.const 2501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36723,7 +36723,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2500
+   i32.const 2502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36738,7 +36738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2503
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36753,7 +36753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2504
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36768,7 +36768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2505
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36783,7 +36783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2506
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36798,7 +36798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2507
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36813,7 +36813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2508
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36828,7 +36828,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2509
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36843,7 +36843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2510
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36858,7 +36858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2511
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36873,7 +36873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2512
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36888,7 +36888,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2513
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36903,7 +36903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2514
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36918,7 +36918,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2515
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36933,7 +36933,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2516
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36948,7 +36948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2517
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36963,7 +36963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2518
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36978,7 +36978,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2519
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36993,7 +36993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2520
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37008,7 +37008,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2521
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37023,7 +37023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2522
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37038,7 +37038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2523
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37053,7 +37053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2524
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37068,7 +37068,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2525
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37083,7 +37083,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2526
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37098,7 +37098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2527
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37113,7 +37113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2528
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37128,7 +37128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2529
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37143,7 +37143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2530
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37158,7 +37158,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2531
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37173,7 +37173,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2532
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37188,7 +37188,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2533
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37203,7 +37203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2534
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37218,7 +37218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2535
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37233,7 +37233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2536
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37248,7 +37248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2537
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37263,7 +37263,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2538
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37278,7 +37278,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2539
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37293,7 +37293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2540
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37308,7 +37308,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2541
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37323,7 +37323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2542
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37338,7 +37338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2543
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37353,7 +37353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2544
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37368,7 +37368,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2545
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37383,7 +37383,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2546
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37398,7 +37398,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2547
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37413,7 +37413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2548
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37428,7 +37428,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2549
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37443,7 +37443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2550
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37458,7 +37458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2551
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37473,7 +37473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2552
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37488,7 +37488,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2553
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37503,7 +37503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2554
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37518,7 +37518,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2555
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37533,7 +37533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2556
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37548,7 +37548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2557
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37563,7 +37563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2558
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37578,7 +37578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2559
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37593,7 +37593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2560
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37608,7 +37608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2561
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37623,7 +37623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2562
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37638,7 +37638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2563
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37653,7 +37653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2564
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37668,7 +37668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2565
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37683,7 +37683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2566
+   i32.const 2568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37698,7 +37698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2567
+   i32.const 2569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37713,7 +37713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2568
+   i32.const 2570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37727,7 +37727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2580
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37741,7 +37741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2581
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37755,7 +37755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2582
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37769,7 +37769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2583
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37783,7 +37783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2584
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37797,7 +37797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2585
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37811,7 +37811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2586
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37825,7 +37825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2587
+   i32.const 2589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37839,7 +37839,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2588
+   i32.const 2590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37853,7 +37853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2589
+   i32.const 2591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37867,7 +37867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2592
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37881,7 +37881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2593
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37895,7 +37895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2594
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37909,7 +37909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2595
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37923,7 +37923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2596
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37937,7 +37937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2597
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37951,7 +37951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2598
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37965,7 +37965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2599
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37979,7 +37979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2600
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37993,7 +37993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2601
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38007,7 +38007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2602
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38021,7 +38021,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2603
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38035,7 +38035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2604
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38049,7 +38049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2605
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38063,7 +38063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2606
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38077,7 +38077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2607
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38091,7 +38091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2608
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38105,7 +38105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2609
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38119,7 +38119,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2610
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38133,7 +38133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2611
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38147,7 +38147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2612
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38161,7 +38161,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2613
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38175,7 +38175,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2614
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38189,7 +38189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2615
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38203,7 +38203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2616
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38217,7 +38217,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2617
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38231,7 +38231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2618
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38245,7 +38245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2619
+   i32.const 2621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38259,7 +38259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2620
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38273,7 +38273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2621
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38287,7 +38287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2622
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38301,7 +38301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2623
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38315,7 +38315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2624
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38329,7 +38329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2625
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38343,7 +38343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2626
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38357,7 +38357,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2627
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38371,7 +38371,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2628
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38385,7 +38385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2629
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38399,7 +38399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2630
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38413,7 +38413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2631
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38427,7 +38427,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2632
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38441,7 +38441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2633
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38455,7 +38455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2634
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38469,7 +38469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2635
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38483,7 +38483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2636
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38497,7 +38497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2637
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38511,7 +38511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2638
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38525,7 +38525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2639
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38539,7 +38539,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2640
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38553,7 +38553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2641
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38567,7 +38567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2642
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38581,7 +38581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2643
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38595,7 +38595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2644
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38609,7 +38609,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2645
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38623,7 +38623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2646
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38637,7 +38637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2647
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38651,7 +38651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2648
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38665,7 +38665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2649
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38679,7 +38679,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2650
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38693,7 +38693,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2651
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38707,7 +38707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2652
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38721,7 +38721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2653
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38735,7 +38735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2654
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38749,7 +38749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2655
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38763,7 +38763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2656
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38777,7 +38777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2657
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38791,7 +38791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2658
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38805,7 +38805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2659
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38819,7 +38819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2660
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38833,7 +38833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2661
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38847,7 +38847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2662
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38861,7 +38861,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2663
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38875,7 +38875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2664
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38889,7 +38889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2665
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38903,7 +38903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2666
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38917,7 +38917,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2667
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38931,7 +38931,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2668
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38945,7 +38945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2669
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38959,7 +38959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2670
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38973,7 +38973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2671
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38987,7 +38987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2672
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39001,7 +39001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2673
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39015,7 +39015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2674
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39029,7 +39029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2675
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39043,7 +39043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2676
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39057,7 +39057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2677
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39071,7 +39071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2678
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39085,7 +39085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2679
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39099,7 +39099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2680
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39113,7 +39113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2681
+   i32.const 2683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39127,7 +39127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2682
+   i32.const 2684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39141,7 +39141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2683
+   i32.const 2685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39154,7 +39154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2686
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39167,7 +39167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2687
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39180,7 +39180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2688
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39193,7 +39193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2689
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39206,7 +39206,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2690
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39219,7 +39219,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2691
+   i32.const 2693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39232,7 +39232,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2692
+   i32.const 2694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39245,7 +39245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2693
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39258,7 +39258,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2695
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39271,7 +39271,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2696
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39284,7 +39284,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2697
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39297,7 +39297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2698
+   i32.const 2700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39310,7 +39310,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2699
+   i32.const 2701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39324,7 +39324,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2700
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39337,7 +39337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2702
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39350,7 +39350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2703
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39363,7 +39363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2704
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39376,7 +39376,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2705
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39389,7 +39389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2706
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39402,7 +39402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2707
+   i32.const 2709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39415,7 +39415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2708
+   i32.const 2710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39429,7 +39429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2709
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39442,7 +39442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2711
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39455,7 +39455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2712
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39468,7 +39468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2713
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39481,7 +39481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2714
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39494,7 +39494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2715
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39507,7 +39507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2716
+   i32.const 2718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39520,7 +39520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2717
+   i32.const 2719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39534,7 +39534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2718
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39547,7 +39547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2720
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39560,7 +39560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2721
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39574,7 +39574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2722
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39587,7 +39587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2723
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39600,7 +39600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2724
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39613,7 +39613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2725
+   i32.const 2727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39626,7 +39626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2726
+   i32.const 2728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39640,7 +39640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2727
+   i32.const 2729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39655,7 +39655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2736
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39670,7 +39670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2737
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39685,7 +39685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2738
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39700,7 +39700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2739
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39715,7 +39715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2740
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39730,7 +39730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2741
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39745,7 +39745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2742
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39760,7 +39760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2743
+   i32.const 2745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39775,7 +39775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2744
+   i32.const 2746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39790,7 +39790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2745
+   i32.const 2747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39805,7 +39805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2748
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39820,7 +39820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2749
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39835,7 +39835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2750
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39850,7 +39850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2751
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39865,7 +39865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2752
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39880,7 +39880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2753
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39895,7 +39895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2754
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39910,7 +39910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2755
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39925,7 +39925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2756
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39940,7 +39940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2757
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39955,7 +39955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2758
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39970,7 +39970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2759
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39985,7 +39985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2760
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40000,7 +40000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2761
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40015,7 +40015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2762
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40030,7 +40030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2763
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40045,7 +40045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2764
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40060,7 +40060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2765
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40075,7 +40075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2766
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40090,7 +40090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2767
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40105,7 +40105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2768
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40120,7 +40120,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2769
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40135,7 +40135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2770
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40150,7 +40150,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2771
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40165,7 +40165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2772
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40180,7 +40180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2773
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40195,7 +40195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2774
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40210,7 +40210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2775
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40225,7 +40225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2776
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40240,7 +40240,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2777
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40255,7 +40255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2778
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40270,7 +40270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2779
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40285,7 +40285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2780
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40300,7 +40300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2781
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40315,7 +40315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2782
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40330,7 +40330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2783
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40345,7 +40345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2784
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40360,7 +40360,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2785
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40375,7 +40375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2786
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40390,7 +40390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2787
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40405,7 +40405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2788
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40420,7 +40420,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2789
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40435,7 +40435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2790
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40450,7 +40450,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2791
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40465,7 +40465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2792
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40480,7 +40480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2793
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40495,7 +40495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2794
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40510,7 +40510,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2795
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40525,7 +40525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2796
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40540,7 +40540,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2797
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40555,7 +40555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2798
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40570,7 +40570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2799
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40585,7 +40585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2800
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40600,7 +40600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2801
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40615,7 +40615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2802
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40630,7 +40630,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2803
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40645,7 +40645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2804
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40660,7 +40660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2805
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40675,7 +40675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2806
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40690,7 +40690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2807
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40705,7 +40705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2808
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40720,7 +40720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2809
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40735,7 +40735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2810
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40750,7 +40750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2811
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40765,7 +40765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2812
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40780,7 +40780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2813
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40795,7 +40795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2814
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40810,7 +40810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2815
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40825,7 +40825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2816
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40840,7 +40840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2817
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40855,7 +40855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2818
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40870,7 +40870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2819
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40885,7 +40885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2820
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40900,7 +40900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2821
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40915,7 +40915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2822
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40930,7 +40930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2823
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40945,7 +40945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2824
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40960,7 +40960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2825
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40975,7 +40975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2826
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40990,7 +40990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2827
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41005,7 +41005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2828
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41020,7 +41020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2829
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41035,7 +41035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2830
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41050,7 +41050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2831
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41065,7 +41065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2832
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41080,7 +41080,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2833
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41095,7 +41095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2834
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41110,7 +41110,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2835
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41125,7 +41125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2836
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41140,7 +41140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2837
+   i32.const 2839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41155,7 +41155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2838
+   i32.const 2840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41170,7 +41170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2839
+   i32.const 2841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41185,7 +41185,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2842
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41200,7 +41200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2843
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41215,7 +41215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2844
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41230,7 +41230,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2845
+   i32.const 2847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41245,7 +41245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2846
+   i32.const 2848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41260,7 +41260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2847
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41275,7 +41275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2849
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41290,7 +41290,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2850
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41305,7 +41305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2851
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41320,7 +41320,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2852
+   i32.const 2854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41335,7 +41335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2853
+   i32.const 2855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41350,7 +41350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2854
+   i32.const 2856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41365,7 +41365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2856
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41380,7 +41380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2858
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41395,7 +41395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2859
+   i32.const 2861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41410,7 +41410,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2860
+   i32.const 2862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41425,7 +41425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2861
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41440,7 +41440,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2863
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41455,7 +41455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2864
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41470,7 +41470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2865
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41485,7 +41485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2866
+   i32.const 2868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41500,7 +41500,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2867
+   i32.const 2869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41515,7 +41515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2868
+   i32.const 2870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41530,7 +41530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2869
+   i32.const 2871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41545,7 +41545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2870
+   i32.const 2872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41560,7 +41560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2871
+   i32.const 2873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41575,7 +41575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2872
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41590,7 +41590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2874
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41605,7 +41605,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2875
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41620,7 +41620,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2876
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41635,7 +41635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2877
+   i32.const 2879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41650,7 +41650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2878
+   i32.const 2880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41665,7 +41665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2879
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41680,7 +41680,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2881
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41695,7 +41695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2882
+   i32.const 2884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41710,7 +41710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2883
+   i32.const 2885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41725,7 +41725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2884
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41740,7 +41740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2886
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41755,7 +41755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2887
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41770,7 +41770,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2888
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41785,7 +41785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2889
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41800,7 +41800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2890
+   i32.const 2892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41815,7 +41815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2891
+   i32.const 2893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41830,7 +41830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2892
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41845,7 +41845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2894
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41860,7 +41860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2895
+   i32.const 2897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41875,7 +41875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2896
+   i32.const 2898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41890,7 +41890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2897
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41905,7 +41905,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2899
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41920,7 +41920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2900
+   i32.const 2902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41935,7 +41935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2901
+   i32.const 2903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41950,7 +41950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2902
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41965,7 +41965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2904
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41980,7 +41980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2905
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41995,7 +41995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2906
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42010,7 +42010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2907
+   i32.const 2909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42025,7 +42025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2908
+   i32.const 2910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42040,7 +42040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2909
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42055,7 +42055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2911
+   i32.const 2913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42070,7 +42070,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2912
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42085,7 +42085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2914
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42100,7 +42100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2915
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42115,7 +42115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2916
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42130,7 +42130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2917
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42145,7 +42145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2918
+   i32.const 2920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42160,7 +42160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2919
+   i32.const 2921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42175,7 +42175,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2920
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42190,7 +42190,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2922
+   i32.const 2924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42205,7 +42205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2923
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42220,7 +42220,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2925
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42235,7 +42235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2926
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42250,7 +42250,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2927
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42265,7 +42265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2928
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42280,7 +42280,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2929
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42295,7 +42295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2930
+   i32.const 2932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42310,7 +42310,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2931
+   i32.const 2933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42325,7 +42325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2932
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42340,7 +42340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2934
+   i32.const 2936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42355,7 +42355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2935
+   i32.const 2937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42370,7 +42370,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2936
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42385,7 +42385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2938
+   i32.const 2940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42400,7 +42400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2939
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42415,7 +42415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2941
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42430,7 +42430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2942
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42445,7 +42445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2943
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42460,7 +42460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2944
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42475,7 +42475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2945
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42490,7 +42490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2946
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42505,7 +42505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2947
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42520,7 +42520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2948
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42535,7 +42535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2949
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42550,7 +42550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2950
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42565,7 +42565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2951
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42580,7 +42580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2952
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42595,7 +42595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2953
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42610,7 +42610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2954
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42625,7 +42625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2955
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42640,7 +42640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2956
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42655,7 +42655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2957
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42670,7 +42670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2958
+   i32.const 2960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42685,7 +42685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2959
+   i32.const 2961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42700,7 +42700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2960
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42715,7 +42715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2962
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42730,7 +42730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2963
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42745,7 +42745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2964
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42760,7 +42760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2965
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42775,7 +42775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2966
+   i32.const 2968
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42790,7 +42790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2967
+   i32.const 2969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42805,7 +42805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2968
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42820,7 +42820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2970
+   i32.const 2972
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42835,7 +42835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2971
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42850,7 +42850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2973
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42865,7 +42865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2974
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42880,7 +42880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2975
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42895,7 +42895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2976
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42910,7 +42910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2977
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42925,7 +42925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2978
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42940,7 +42940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2979
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42955,7 +42955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2980
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42970,7 +42970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2981
+   i32.const 2983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42985,7 +42985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2982
+   i32.const 2984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43000,7 +43000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2983
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43015,7 +43015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2985
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43030,7 +43030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2986
+   i32.const 2988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43045,7 +43045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2987
+   i32.const 2989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43060,7 +43060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2988
+   i32.const 2990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43222,7 +43222,7 @@
     if
      i32.const 0
      i32.const 1056
-     i32.const 2997
+     i32.const 2999
      i32.const 3
      call $~lib/builtins/abort
      unreachable
@@ -43241,7 +43241,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3011
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43253,7 +43253,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3012
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43265,7 +43265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3013
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43277,7 +43277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3014
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43289,7 +43289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3015
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43301,7 +43301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3016
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43313,7 +43313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3017
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43325,7 +43325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3018
+   i32.const 3020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43337,7 +43337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3019
+   i32.const 3021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43349,7 +43349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3020
+   i32.const 3022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43361,7 +43361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3023
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43373,7 +43373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3024
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43385,7 +43385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3025
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43397,7 +43397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3026
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43409,7 +43409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3027
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43421,7 +43421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3028
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43433,7 +43433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3029
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43445,7 +43445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3030
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43457,7 +43457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3031
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43469,7 +43469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3032
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43481,7 +43481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3033
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43493,7 +43493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3034
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43505,7 +43505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3035
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43517,7 +43517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3036
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43529,7 +43529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3037
+   i32.const 3039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43541,7 +43541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3038
+   i32.const 3040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43553,7 +43553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3039
+   i32.const 3041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43565,7 +43565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3054
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43577,7 +43577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3055
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43589,7 +43589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3056
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43601,7 +43601,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3057
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43613,7 +43613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3058
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43625,7 +43625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3059
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43637,7 +43637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3060
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43649,7 +43649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3061
+   i32.const 3063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43661,7 +43661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3062
+   i32.const 3064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43673,7 +43673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3063
+   i32.const 3065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43685,7 +43685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3066
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43697,7 +43697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3067
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43709,7 +43709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3068
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43721,7 +43721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3069
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43733,7 +43733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3070
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43745,7 +43745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3071
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43757,7 +43757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3072
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43769,7 +43769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3073
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43781,7 +43781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3074
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43793,7 +43793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3075
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43805,7 +43805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3076
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43817,7 +43817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3077
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43829,7 +43829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3078
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43841,7 +43841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3079
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43853,7 +43853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3080
+   i32.const 3082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43865,7 +43865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3081
+   i32.const 3083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43877,7 +43877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3082
+   i32.const 3084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43889,7 +43889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3093
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43901,7 +43901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3094
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43913,7 +43913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3095
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43925,7 +43925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3096
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43937,7 +43937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3097
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43949,7 +43949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3098
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43961,7 +43961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3099
+   i32.const 3101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43973,7 +43973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3100
+   i32.const 3102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43985,7 +43985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3101
+   i32.const 3103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43997,7 +43997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3109
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44009,7 +44009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3110
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44021,7 +44021,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3111
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44033,7 +44033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3112
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44045,7 +44045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3113
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44057,7 +44057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3114
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44069,7 +44069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3115
+   i32.const 3117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44081,7 +44081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3116
+   i32.const 3118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44093,7 +44093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3117
+   i32.const 3119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44116,7 +44116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3155
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44139,7 +44139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3156
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44162,7 +44162,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3157
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44185,7 +44185,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3158
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44208,7 +44208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3159
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44231,7 +44231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3160
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44254,7 +44254,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3161
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44277,7 +44277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3162
+   i32.const 3164
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44300,7 +44300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3163
+   i32.const 3165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44323,7 +44323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3164
+   i32.const 3166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44346,7 +44346,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3167
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44369,7 +44369,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3168
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44392,7 +44392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3169
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44415,7 +44415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3170
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44438,7 +44438,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3171
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44461,7 +44461,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3172
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44484,7 +44484,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3173
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44507,7 +44507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3174
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44530,7 +44530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3175
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44553,7 +44553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3176
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44576,7 +44576,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3177
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44599,7 +44599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3178
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44622,7 +44622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3179
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44645,7 +44645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3180
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44668,7 +44668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3181
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44691,7 +44691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3182
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44714,7 +44714,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3183
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44737,7 +44737,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3184
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44760,7 +44760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3185
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44783,7 +44783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3186
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44806,7 +44806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3187
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44829,7 +44829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3188
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44852,7 +44852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3189
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44875,7 +44875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3190
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44898,7 +44898,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3191
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44921,7 +44921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3192
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44944,7 +44944,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3193
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44967,7 +44967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3194
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44990,7 +44990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3195
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45013,7 +45013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3196
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45036,7 +45036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3197
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45059,7 +45059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3198
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45082,7 +45082,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3199
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45105,7 +45105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3200
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45128,7 +45128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3201
+   i32.const 3203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45151,7 +45151,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3202
+   i32.const 3204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45174,7 +45174,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3203
+   i32.const 3205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45197,7 +45197,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3206
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45220,7 +45220,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3207
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45243,7 +45243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3208
+   i32.const 3210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45266,7 +45266,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3209
+   i32.const 3211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45289,7 +45289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3210
+   i32.const 3212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45302,7 +45302,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3213
+   i32.const 3215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45315,7 +45315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3214
+   i32.const 3216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45327,7 +45327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3217
+   i32.const 3219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45339,7 +45339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3218
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45351,7 +45351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3220
+   i32.const 3222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45363,7 +45363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3221
+   i32.const 3223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45375,7 +45375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3224
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45387,7 +45387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3225
+   i32.const 3227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45399,7 +45399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3226
+   i32.const 3228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45411,7 +45411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3227
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45423,7 +45423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3229
+   i32.const 3231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45435,7 +45435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3230
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45447,7 +45447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3232
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45459,7 +45459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3233
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45471,7 +45471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3234
+   i32.const 3236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45483,7 +45483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3235
+   i32.const 3237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45495,7 +45495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3236
+   i32.const 3238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45507,7 +45507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3239
+   i32.const 3241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45519,7 +45519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3240
+   i32.const 3242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45533,7 +45533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3249
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45547,7 +45547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3250
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45561,7 +45561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3251
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45575,7 +45575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3252
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45589,7 +45589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3253
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45603,7 +45603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3254
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45617,7 +45617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3255
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45631,7 +45631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3256
+   i32.const 3258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45645,7 +45645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3257
+   i32.const 3259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45659,7 +45659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3258
+   i32.const 3260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45673,7 +45673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3261
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45687,7 +45687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3262
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45701,7 +45701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3263
+   i32.const 3265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45715,7 +45715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3264
+   i32.const 3266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45729,7 +45729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3265
+   i32.const 3267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45743,7 +45743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3268
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45757,7 +45757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3269
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45771,7 +45771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3270
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45785,7 +45785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3271
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45799,7 +45799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3272
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45813,7 +45813,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3273
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45827,7 +45827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3274
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45841,7 +45841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3275
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45855,7 +45855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3276
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45869,7 +45869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3277
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45883,7 +45883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3278
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45897,7 +45897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3279
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45911,7 +45911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3280
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45925,7 +45925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3281
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45939,7 +45939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3282
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45953,7 +45953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3283
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45967,7 +45967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3284
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45981,7 +45981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3285
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45995,7 +45995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3286
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46009,7 +46009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3287
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46023,7 +46023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3288
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46037,7 +46037,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3289
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46051,7 +46051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3290
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46065,7 +46065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3291
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46079,7 +46079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3292
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46093,7 +46093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3293
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46107,7 +46107,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3294
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46121,7 +46121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3295
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46135,7 +46135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3296
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46149,7 +46149,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3297
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46163,7 +46163,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3298
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46177,7 +46177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3299
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46191,7 +46191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3300
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46205,7 +46205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3301
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46219,7 +46219,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3302
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46233,7 +46233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3303
+   i32.const 3305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46247,7 +46247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3304
+   i32.const 3306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46261,7 +46261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3305
+   i32.const 3307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46275,7 +46275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3308
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46289,7 +46289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3309
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46303,7 +46303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3310
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46317,7 +46317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3311
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46331,7 +46331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3312
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46345,7 +46345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3313
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46359,7 +46359,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3314
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46373,7 +46373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3315
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46387,7 +46387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3316
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46401,7 +46401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3317
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46415,7 +46415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3318
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46429,7 +46429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3319
+   i32.const 3321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46443,7 +46443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3320
+   i32.const 3322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46457,7 +46457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3321
+   i32.const 3323
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46470,7 +46470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3333
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46483,7 +46483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3334
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46496,7 +46496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3335
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46509,7 +46509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3336
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46522,7 +46522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3337
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46535,7 +46535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3338
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46548,7 +46548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3339
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46561,7 +46561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3340
+   i32.const 3342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46574,7 +46574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3341
+   i32.const 3343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46587,7 +46587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3342
+   i32.const 3344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46600,7 +46600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3345
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46613,7 +46613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3346
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46626,7 +46626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3347
+   i32.const 3349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46639,7 +46639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3348
+   i32.const 3350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46652,7 +46652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3349
+   i32.const 3351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46665,7 +46665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3358
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46678,7 +46678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3359
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46691,7 +46691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3360
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46704,7 +46704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3361
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46717,7 +46717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3362
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46730,7 +46730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3363
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46743,7 +46743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3364
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46756,7 +46756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3365
+   i32.const 3367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46769,7 +46769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3366
+   i32.const 3368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46782,7 +46782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3367
+   i32.const 3369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46795,7 +46795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3370
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46808,7 +46808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3371
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46821,7 +46821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3372
+   i32.const 3374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46834,7 +46834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3373
+   i32.const 3375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46847,7 +46847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3374
+   i32.const 3376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46869,7 +46869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3386
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46891,7 +46891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3387
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46913,7 +46913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3388
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46935,7 +46935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3389
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46957,7 +46957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3390
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46979,7 +46979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3391
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47001,7 +47001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3392
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47023,7 +47023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3393
+   i32.const 3395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47045,7 +47045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3394
+   i32.const 3396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47067,7 +47067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3395
+   i32.const 3397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47089,7 +47089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3398
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47111,7 +47111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3399
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47133,7 +47133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3400
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47155,7 +47155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3401
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47177,7 +47177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3402
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47199,7 +47199,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3403
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47221,7 +47221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3404
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47243,7 +47243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3405
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47265,7 +47265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3406
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47287,7 +47287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3407
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47309,7 +47309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3408
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47331,7 +47331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3409
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47353,7 +47353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3410
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47375,7 +47375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3411
+   i32.const 3413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47397,7 +47397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3412
+   i32.const 3414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47419,7 +47419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3413
+   i32.const 3415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47441,7 +47441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3414
+   i32.const 3416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47463,7 +47463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3415
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47485,7 +47485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3416
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47507,7 +47507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3417
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47529,7 +47529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3418
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47551,7 +47551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3419
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47573,7 +47573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3420
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47595,7 +47595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3421
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47617,7 +47617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3422
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47639,7 +47639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3423
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47661,7 +47661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3424
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47683,7 +47683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3425
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47705,7 +47705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3426
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47727,7 +47727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3427
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47749,7 +47749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3428
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47771,7 +47771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3429
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47793,7 +47793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3430
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47815,7 +47815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3431
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47837,7 +47837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3432
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47859,7 +47859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3433
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47881,7 +47881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3434
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47903,7 +47903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3435
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47925,7 +47925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3436
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47947,7 +47947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3437
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47969,7 +47969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3438
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47991,7 +47991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3439
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48013,7 +48013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3440
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48035,7 +48035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3441
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48057,7 +48057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3442
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48079,7 +48079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3443
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48101,7 +48101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3444
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48123,7 +48123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3445
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48145,7 +48145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3446
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48167,7 +48167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3447
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48189,7 +48189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3448
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48211,7 +48211,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3449
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48233,7 +48233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3450
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48255,7 +48255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3451
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48277,7 +48277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3452
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48299,7 +48299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3453
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48321,7 +48321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3454
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48343,7 +48343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3455
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48365,7 +48365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3456
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48387,7 +48387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3457
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48409,7 +48409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3458
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48431,7 +48431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3459
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48453,7 +48453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3460
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48475,7 +48475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3461
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48497,7 +48497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3462
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48519,7 +48519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3463
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48541,7 +48541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3464
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48563,7 +48563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3465
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48585,7 +48585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3466
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48607,7 +48607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3467
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48629,7 +48629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3468
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48651,7 +48651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3469
+   i32.const 3471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48673,7 +48673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3470
+   i32.const 3472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48695,7 +48695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3471
+   i32.const 3473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48708,7 +48708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3480
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48721,7 +48721,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3481
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48734,7 +48734,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3482
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48747,7 +48747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3483
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48760,7 +48760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3484
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48773,7 +48773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3485
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48786,7 +48786,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3486
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48799,7 +48799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3487
+   i32.const 3489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48812,7 +48812,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3488
+   i32.const 3490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48825,7 +48825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3489
+   i32.const 3491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48838,7 +48838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3492
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48851,7 +48851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3493
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48864,7 +48864,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3494
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48877,7 +48877,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3495
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48890,7 +48890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3496
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48903,7 +48903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3497
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48916,7 +48916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3498
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48929,7 +48929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3499
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48942,7 +48942,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3500
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48955,7 +48955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3501
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48968,7 +48968,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3502
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48981,7 +48981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3503
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48994,7 +48994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3504
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49007,7 +49007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3505
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49020,7 +49020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3506
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49033,7 +49033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3507
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49046,7 +49046,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3508
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49059,7 +49059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3509
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49072,7 +49072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3510
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49085,7 +49085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3511
+   i32.const 3513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49098,7 +49098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3512
+   i32.const 3514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49111,7 +49111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3513
+   i32.const 3515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49134,7 +49134,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3525
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49157,7 +49157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3526
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49180,7 +49180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3527
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49203,7 +49203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3528
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49226,7 +49226,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3529
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49249,7 +49249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3530
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49272,7 +49272,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3531
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49295,7 +49295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3532
+   i32.const 3534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49318,7 +49318,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3533
+   i32.const 3535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49341,7 +49341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3534
+   i32.const 3536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49364,7 +49364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3537
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49387,7 +49387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3538
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49410,7 +49410,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3539
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49433,7 +49433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3540
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49456,7 +49456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3541
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49479,7 +49479,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3542
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49502,7 +49502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3543
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49525,7 +49525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3544
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49548,7 +49548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3545
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49571,7 +49571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3546
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49594,7 +49594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3547
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49617,7 +49617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3548
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49640,7 +49640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3549
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49663,7 +49663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3550
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49686,7 +49686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3551
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49709,7 +49709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3552
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49732,7 +49732,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3553
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49755,7 +49755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3554
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49778,7 +49778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3555
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49801,7 +49801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3556
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49824,7 +49824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3557
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49847,7 +49847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3558
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49870,7 +49870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3559
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49893,7 +49893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3560
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49916,7 +49916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3561
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49939,7 +49939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3562
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49962,7 +49962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3563
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49985,7 +49985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3564
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50008,7 +50008,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3565
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50031,7 +50031,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3566
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50054,7 +50054,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3567
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50077,7 +50077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3568
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50100,7 +50100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3569
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50123,7 +50123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3570
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50146,7 +50146,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3571
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50169,7 +50169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3572
+   i32.const 3574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50192,7 +50192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3573
+   i32.const 3575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50215,7 +50215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3574
+   i32.const 3576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50228,7 +50228,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3577
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50241,7 +50241,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3578
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50254,7 +50254,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3579
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50267,7 +50267,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3580
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50280,7 +50280,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3581
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50293,7 +50293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3582
+   i32.const 3584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50306,7 +50306,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3583
+   i32.const 3585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50319,7 +50319,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3584
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50332,7 +50332,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3586
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50345,7 +50345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3587
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50358,7 +50358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3588
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50371,7 +50371,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3589
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50384,7 +50384,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3590
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50397,7 +50397,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3591
+   i32.const 3593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50410,7 +50410,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3592
+   i32.const 3594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50423,7 +50423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3593
+   i32.const 3595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50446,7 +50446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3596
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50469,7 +50469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3597
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50492,7 +50492,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3598
+   i32.const 3600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50515,7 +50515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3599
+   i32.const 3601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50538,7 +50538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3600
+   i32.const 3602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50552,7 +50552,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3609
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50566,7 +50566,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3610
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50580,7 +50580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3611
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50594,7 +50594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3612
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50608,7 +50608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3613
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50622,7 +50622,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3614
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50636,7 +50636,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3615
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50650,7 +50650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3616
+   i32.const 3618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50664,7 +50664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3617
+   i32.const 3619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50678,7 +50678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3618
+   i32.const 3620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50692,7 +50692,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3621
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50706,7 +50706,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3622
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50720,7 +50720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3623
+   i32.const 3625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50734,7 +50734,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3624
+   i32.const 3626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50748,7 +50748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3625
+   i32.const 3627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50762,7 +50762,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3628
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50776,7 +50776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3629
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50790,7 +50790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3630
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50804,7 +50804,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3631
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50818,7 +50818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3632
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50832,7 +50832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3633
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50846,7 +50846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3634
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50860,7 +50860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3635
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50874,7 +50874,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3636
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50888,7 +50888,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3637
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50902,7 +50902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3638
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50916,7 +50916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3639
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50930,7 +50930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3640
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50944,7 +50944,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3641
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50958,7 +50958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3642
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50972,7 +50972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3643
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50986,7 +50986,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3644
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51000,7 +51000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3645
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51014,7 +51014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3646
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51028,7 +51028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3647
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51042,7 +51042,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3648
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51056,7 +51056,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3649
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51070,7 +51070,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3650
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51084,7 +51084,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3651
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51098,7 +51098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3652
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51112,7 +51112,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3653
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51126,7 +51126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3654
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51140,7 +51140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3655
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51154,7 +51154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3656
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51168,7 +51168,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3657
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51182,7 +51182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3658
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51196,7 +51196,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3659
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51210,7 +51210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3660
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51224,7 +51224,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3661
+   i32.const 3663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51238,7 +51238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3662
+   i32.const 3664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51252,7 +51252,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3663
+   i32.const 3665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51265,7 +51265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3675
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51278,7 +51278,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3676
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51291,7 +51291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3677
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51304,7 +51304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3678
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51317,7 +51317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3679
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51330,7 +51330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3680
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51343,7 +51343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3681
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51356,7 +51356,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3682
+   i32.const 3684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51369,7 +51369,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3683
+   i32.const 3685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51382,7 +51382,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3684
+   i32.const 3686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51395,7 +51395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3687
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51408,7 +51408,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3688
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51421,7 +51421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3689
+   i32.const 3691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51434,7 +51434,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3690
+   i32.const 3692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51447,7 +51447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3691
+   i32.const 3693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51460,7 +51460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3700
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51473,7 +51473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3701
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51486,7 +51486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3702
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51499,7 +51499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3703
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51512,7 +51512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3704
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51525,7 +51525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3705
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51538,7 +51538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3706
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51551,7 +51551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3707
+   i32.const 3709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51564,7 +51564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3708
+   i32.const 3710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51577,7 +51577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3709
+   i32.const 3711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51590,7 +51590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3712
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51603,7 +51603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3713
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51616,7 +51616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3714
+   i32.const 3716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51629,7 +51629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3715
+   i32.const 3717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51642,7 +51642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3716
+   i32.const 3718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51664,7 +51664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3728
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51686,7 +51686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3729
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51708,7 +51708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3730
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51730,7 +51730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3731
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51752,7 +51752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3732
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51774,7 +51774,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3733
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51796,7 +51796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3734
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51818,7 +51818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3735
+   i32.const 3737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51840,7 +51840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3736
+   i32.const 3738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51862,7 +51862,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3737
+   i32.const 3739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51884,7 +51884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3740
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51906,7 +51906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3741
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51928,7 +51928,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3742
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51950,7 +51950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3743
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51972,7 +51972,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3744
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51994,7 +51994,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3745
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52016,7 +52016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3746
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52038,7 +52038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3747
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52060,7 +52060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3748
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52082,7 +52082,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3749
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52104,7 +52104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3750
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52126,7 +52126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3751
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52148,7 +52148,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3752
+   i32.const 3754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52170,7 +52170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3753
+   i32.const 3755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52192,7 +52192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3754
+   i32.const 3756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52205,7 +52205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3763
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52218,7 +52218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3764
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52231,7 +52231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3765
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52244,7 +52244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3766
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52257,7 +52257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3767
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52270,7 +52270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3768
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52283,7 +52283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3769
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52296,7 +52296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3770
+   i32.const 3772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52309,7 +52309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3771
+   i32.const 3773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52322,7 +52322,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3772
+   i32.const 3774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52335,7 +52335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3775
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52348,7 +52348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3776
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52361,7 +52361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3777
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52374,7 +52374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3778
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52387,7 +52387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3779
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52400,7 +52400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3780
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52413,7 +52413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3781
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52426,7 +52426,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3782
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52439,7 +52439,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3783
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52452,7 +52452,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3784
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52465,7 +52465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3785
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52478,7 +52478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3786
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52491,7 +52491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3787
+   i32.const 3789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52504,7 +52504,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3788
+   i32.const 3790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52517,7 +52517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3789
+   i32.const 3791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52590,7 +52590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3830
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52603,7 +52603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3831
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52616,7 +52616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3832
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52629,7 +52629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3833
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52642,7 +52642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3834
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52655,7 +52655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3835
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52668,7 +52668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3836
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52681,7 +52681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3837
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52694,7 +52694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3838
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52707,7 +52707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3839
+   i32.const 3841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52720,7 +52720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3840
+   i32.const 3842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52733,7 +52733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3841
+   i32.const 3843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52746,7 +52746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3864
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52759,7 +52759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3865
+   i32.const 3867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52772,7 +52772,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3866
+   i32.const 3868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52785,7 +52785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3867
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52798,7 +52798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3869
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52811,7 +52811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3870
+   i32.const 3872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52824,7 +52824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3871
+   i32.const 3873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52837,7 +52837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3872
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52850,7 +52850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3874
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52863,7 +52863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3875
+   i32.const 3877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52876,7 +52876,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3876
+   i32.const 3878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52889,7 +52889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3877
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52902,7 +52902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3879
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52915,7 +52915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3880
+   i32.const 3882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52928,7 +52928,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3881
+   i32.const 3883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52941,7 +52941,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3882
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52954,7 +52954,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3884
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52967,7 +52967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3885
+   i32.const 3887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52980,7 +52980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3886
+   i32.const 3888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52993,7 +52993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3887
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53006,7 +53006,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3889
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53019,7 +53019,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3890
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53032,7 +53032,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3891
+   i32.const 3893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53045,7 +53045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3892
+   i32.const 3894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53058,7 +53058,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3893
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53071,7 +53071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3895
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53084,7 +53084,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3896
+   i32.const 3898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53097,7 +53097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3897
+   i32.const 3899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53110,7 +53110,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3898
+   i32.const 3900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53123,7 +53123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3942
+   i32.const 3944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53136,7 +53136,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3943
+   i32.const 3945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53149,7 +53149,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3944
+   i32.const 3946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts
index f3884109a7..c459c4d549 100644
--- a/tests/compiler/std/math.ts
+++ b/tests/compiler/std/math.ts
@@ -31,6 +31,8 @@
 */
 
 import {
+  mod32,
+  mod64,
   scalbn32,
   scalbn64,
   ipow64
@@ -2319,8 +2321,8 @@ assert(test_minf(-1.75, -0.5, -1.75, 0.0, 0));
 declare function mod(x: f64, y: f64): f64;
 
 function test_mod(left: f64, right: f64, expected: f64, error: f64, flags: i32): bool {
-  return  check<f64>(NativeMath.mod(left, right), expected, error, flags) &&
-  (!js || check<f64>(           mod(left, right), expected, error, flags));
+  return  check<f64>(mod64(left, right), expected, error, flags) &&
+  (!js || check<f64>(  mod(left, right), expected, error, flags));
 }
 
 // sanity
@@ -2484,7 +2486,7 @@ assert(test_mod(reinterpret<f64>(0x009FFFFFFFFFFFFF), reinterpret<f64>(0x0090000
 // Math.mod<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
 function test_modf(left: f32, right: f32, expected: f32, error: f32, flags: i32): bool {
-  return check<f32>(NativeMath.mod<f32>(left, right), expected, error, flags);
+  return check<f32>(mod32(left, right), expected, error, flags);
 }
 
 // sanity

From 562d0089f7e08f82e7b960b117ddf937edee69c3 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 09:41:53 +0300
Subject: [PATCH 06/14] skip ts specialise input types as literals and break
 flow analysis

---
 std/assembly/index.d.ts    |  74 ++++++++++----------
 tests/compiler/std/math.ts | 138 ++++++++++++++++++-------------------
 2 files changed, 108 insertions(+), 104 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 0c123a4437..12f707297e 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2024,6 +2024,10 @@ interface SymbolConstructor {
 
 declare const Symbol: SymbolConstructor;
 
+// prevent infer T as literal
+/** @internal */
+type Narrow<T> = T extends number ? number : T;
+
 /** @internal */
 interface IMath {
   /** The base of natural logarithms, e, approximately 2.718. */
@@ -2043,77 +2047,77 @@ interface IMath {
   /** The square root of 2, approximately 1.414. */
   readonly SQRT2: f64;
   /** Returns the absolute value of `x`. */
-  abs<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  abs<T extends Narrow<u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>>(x: T): Narrow<T>;
   /** Returns the arccosine (in radians) of `x`. */
-  acos<T extends f32 | f64>(x: T): T;
+  acos<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the hyperbolic arc-cosine of `x`. */
-  acosh<T extends f32 | f64>(x: T): T;
+  acosh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the arcsine (in radians) of `x`. */
-  asin<T extends f32 | f64>(x: T): T;
+  asin<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the hyperbolic arcsine of `x`. */
-  asinh<T extends f32 | f64>(x: T): T;
+  asinh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the arctangent (in radians) of `x`. */
-  atan<T extends f32 | f64>(x: T): T;
+  atan<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the arctangent of the quotient of its arguments. */
-  atan2<T extends f32 | f64>(y: T, x: T): T;
+  atan2<T extends f32 | f64>(y: T, x: T): Narrow<T>;
   /** Returns the hyperbolic arctangent of `x`. */
-  atanh<T extends f32 | f64>(x: T): T;
+  atanh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the cube root of `x`. */
-  cbrt<T extends f32 | f64>(x: T): T;
+  cbrt<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the smallest integer greater than or equal to `x`. */
-  ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. @deprecate */
-  clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns the cosine (in radians) of `x`. */
-  cos<T extends f32 | f64>(x: T): T;
+  cos<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the hyperbolic cosine of `x`. */
-  cosh<T extends f32 | f64>(x: T): T;
+  cosh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns e to the power of `x`. */
-  exp<T extends f32 | f64>(x: T): T;
+  exp<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns e to the power of `x`, minus 1. */
-  expm1<T extends f32 | f64>(x: T): T;
+  expm1<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the largest integer less than or equal to `x`. */
-  floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns the nearest 32-bit single precision float representation of `x`. */
-  fround<T extends f32 | f64>(x: T): T;
+  fround<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the square root of the sum of squares of its arguments. */
-  hypot<T extends f32 | f64>(a: T, b: T): T; // TODO: rest
+  hypot<T extends f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
   /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. @deprecate */
-  imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T;
+  imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>;
   /** Returns the natural logarithm (base e) of `x`. */
-  log<T extends f32 | f64>(x: T): T;
+  log<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the base 10 logarithm of `x`. */
-  log10<T extends f32 | f64>(x: T): T;
+  log10<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the natural logarithm (base e) of 1 + `x`. */
-  log1p<T extends f32 | f64>(x: T): T;
+  log1p<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the base 2 logarithm of `x`. */
-  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns the largest-valued number of its arguments. */
-  max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T; // TODO: rest
+  max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
   /** Returns the lowest-valued number of its arguments. */
-  min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): T; // TODO: rest
+  min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
   /** Returns `base` to the power of `exponent`. */
-  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): T;
+  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): Narrow<T>;
   /** Returns a pseudo-random number in the range from 0.0 inclusive up to but not including 1.0. */
   random(): f64;
   /** Returns the value of `x` rounded to the nearest integer. */
-  round<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  round<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns the sign of `x`, indicating whether the number is positive, negative or zero. */
-  sign<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  sign<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
   /** Returns whether the sign bit of `x` is set. */
   signbit<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): bool;
   /** Returns the sine of `x`. */
-  sin<T extends f32 | f64>(x: T): T;
+  sin<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the hyperbolic sine of `x`. */
-  sinh<T extends f32 | f64>(x: T): T;
+  sinh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the square root of `x`. */
-  sqrt<T extends f32 | f64>(x: T): T;
+  sqrt<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the tangent of `x`. */
-  tan<T extends f32 | f64>(x: T): T;
+  tan<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the hyperbolic tangent of `x`. */
-  tanh<T extends f32 | f64>(x: T): T;
+  tanh<T extends f32 | f64>(x: T): Narrow<T>;
   /** Returns the integer part of `x` by removing any fractional digits. */
-  trunc<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): T;
+  trunc<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
 }
 
 /** @internal */
@@ -2127,7 +2131,7 @@ interface INativeMath extends IMath {
   /** Returns sin and cos simultaneously for same angle. Results stored to `sincos_s32/64` and `sincos_c32/64` globals */
   sincos<T extends f32 | f64>(x: T): void;
   /** Returns 2 raised to the given power x. Equivalent to 2 ** x. */
-  exp2<T extends f32 | f64>(x: T): T;
+  exp2<T extends f32 | f64>(x: T): Narrow<T>;
 }
 
 /** Double precision math imported from JavaScript. */
diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts
index c459c4d549..dc8f19afb7 100644
--- a/tests/compiler/std/math.ts
+++ b/tests/compiler/std/math.ts
@@ -1110,34 +1110,34 @@ assert(NativeMath.cos(1e90 * kPI) == JSMath.cos(1e90 * kPI));
 
 // v8 ieee754-unittest.cc
 // cos(x) = 1 for |x| < 2^-27
-assert(NativeMath.cos<f64>(+2.3283064365386963e-10) == 1.0);
-assert(NativeMath.cos<f64>(-2.3283064365386963e-10) == 1.0);
+assert(NativeMath.cos(+2.3283064365386963e-10) == 1.0);
+assert(NativeMath.cos(-2.3283064365386963e-10) == 1.0);
 // Test KERNELCOS for |x| < 0.3.
 // cos(pi/20) = sqrt(sqrt(2)*sqrt(sqrt(5)+5)+4)/2^(3/2)
-assert(NativeMath.cos<f64>(0.15707963267948966) == 0.9876883405951378);
+assert(NativeMath.cos(0.15707963267948966) == 0.9876883405951378);
 // Test KERNELCOS for x ~= 0.78125
-assert(NativeMath.cos<f64>(0.7812504768371582) == 0.7100335477927638);
-assert(NativeMath.cos<f64>(0.78125) == 0.7100338835660797);
+assert(NativeMath.cos(0.7812504768371582) == 0.7100335477927638);
+assert(NativeMath.cos(0.78125) == 0.7100338835660797);
 // Test KERNELCOS for |x| > 0.3.
 // cos(pi/8) = sqrt(sqrt(2)+1)/2^(3/4)
-assert(NativeMath.cos<f64>(0.39269908169872414) == 0.9238795325112867);
+assert(NativeMath.cos(0.39269908169872414) == 0.9238795325112867);
 // Test KERNELTAN for |x| < 0.67434.
-assert(NativeMath.cos<f64>(-0.39269908169872414) == 0.9238795325112867);
+assert(NativeMath.cos(-0.39269908169872414) == 0.9238795325112867);
 
 // Tests for cos.
-assert(NativeMath.cos<f64>(3.725290298461914e-9) == 1.0);
+assert(NativeMath.cos(3.725290298461914e-9) == 1.0);
 // Cover different code paths in KERNELCOS.
-assert(NativeMath.cos<f64>(0.25) == 0.9689124217106447);
-assert(NativeMath.cos<f64>(0.5) == 0.8775825618903728);
-assert(NativeMath.cos<f64>(0.785) == 0.7073882691671998);
+assert(NativeMath.cos(0.25) == 0.9689124217106447);
+assert(NativeMath.cos(0.5) == 0.8775825618903728);
+assert(NativeMath.cos(0.785) == 0.7073882691671998);
 // Test that cos(Math.PI/2) != 0 since Math.PI is not exact.
-assert(NativeMath.cos<f64>(1.5707963267948966) == 6.123233995736766e-17);
+assert(NativeMath.cos(1.5707963267948966) == 6.123233995736766e-17);
 // Test cos for various phases.
 assert(NativeMath.cos(7.0 / 4 * kPI) == 0.7071067811865474);
 assert(NativeMath.cos(9.0 / 4 * kPI) == 0.7071067811865477);
 assert(NativeMath.cos(11.0 / 4 * kPI) == -0.7071067811865467);
 assert(NativeMath.cos(13.0 / 4 * kPI) == -0.7071067811865471);
-assert(NativeMath.cos<f64>(1000000.0) == 0.9367521275331447);
+assert(NativeMath.cos(1000000.0) == 0.9367521275331447);
 assert(NativeMath.cos(1048575.0 / 2 * kPI) == -3.435757038074824e-12);
 
 // Math.cos<f32> ///////////////////////////////////////////////////////////////////////////////////////
@@ -2685,48 +2685,48 @@ assert(test_pow(-2.0, 1.0, -2.0, 0.0, 0));
 assert(test_pow(-2.0, -1.0, -0.5, 0.0, 0));
 
 // Fast paths
-assert(NativeMath.pow<f64>(+0.0,+0.0) == 1.0);
-assert(NativeMath.pow<f64>(-0.0,+0.0) == 1.0);
-assert(NativeMath.pow<f64>(-0.0,-0.0) == 1.0);
-assert(NativeMath.pow<f64>(+0.0,-0.0) == 1.0);
-assert(NativeMath.pow<f64>(-1.0, 0.0) == 1.0);
-assert(NativeMath.pow<f64>(+Infinity, 0.0) == 1.0);
-assert(NativeMath.pow<f64>(-Infinity, 0.0) == 1.0);
-assert(NativeMath.pow<f64>(NaN, 0.0) == 1.0);
-
-assert(NativeMath.pow<f64>(+0.0,+1.0) == +0.0);
-assert(NativeMath.pow<f64>(-0.0,+1.0) == -0.0);
-assert(NativeMath.pow<f64>(-1.0, 1.0) == -1.0);
-assert(NativeMath.pow<f64>(+Infinity, 1.0) == +Infinity);
-assert(NativeMath.pow<f64>(-Infinity, 1.0) == -Infinity);
-assert(isNaN(NativeMath.pow<f64>(NaN, 1.0)));
-
-assert(NativeMath.pow<f64>(+0.0,-1.0) == +Infinity);
-assert(NativeMath.pow<f64>(-0.0,-1.0) == -Infinity);
-assert(NativeMath.pow<f64>(-1.0,-1.0) == -1.0);
-assert(NativeMath.pow<f64>( 0.5,-1.0) == +2.0);
-assert(NativeMath.pow<f64>( 1.0,-1.0) == +1.0);
-assert(NativeMath.pow<f64>(+Infinity,-1.0) == +0.0);
-assert(NativeMath.pow<f64>(-Infinity,-1.0) == -0.0);
+assert(NativeMath.pow(+0.0,+0.0) == 1.0);
+assert(NativeMath.pow(-0.0,+0.0) == 1.0);
+assert(NativeMath.pow(-0.0,-0.0) == 1.0);
+assert(NativeMath.pow(+0.0,-0.0) == 1.0);
+assert(NativeMath.pow(-1.0, 0.0) == 1.0);
+assert(NativeMath.pow(+Infinity, 0.0) == 1.0);
+assert(NativeMath.pow(-Infinity, 0.0) == 1.0);
+assert(NativeMath.pow(NaN, 0.0) == 1.0);
+
+assert(NativeMath.pow(+0.0,+1.0) == +0.0);
+assert(NativeMath.pow(-0.0,+1.0) == -0.0);
+assert(NativeMath.pow(-1.0, 1.0) == -1.0);
+assert(NativeMath.pow(+Infinity, 1.0) == +Infinity);
+assert(NativeMath.pow(-Infinity, 1.0) == -Infinity);
+assert(isNaN(NativeMath.pow(NaN, 1.0)));
+
+assert(NativeMath.pow(+0.0,-1.0) == +Infinity);
+assert(NativeMath.pow(-0.0,-1.0) == -Infinity);
+assert(NativeMath.pow(-1.0,-1.0) == -1.0);
+assert(NativeMath.pow( 0.5,-1.0) == +2.0);
+assert(NativeMath.pow( 1.0,-1.0) == +1.0);
+assert(NativeMath.pow(+Infinity,-1.0) == +0.0);
+assert(NativeMath.pow(-Infinity,-1.0) == -0.0);
 assert(isNaN(NativeMath.pow(NaN,-1.0)));
 
-assert(NativeMath.pow<f64>(+0.0, 2.0) == +0.0);
-assert(NativeMath.pow<f64>(-0.0, 2.0) == +0.0);
-assert(NativeMath.pow<f64>(-1.0, 2.0) == +1.0);
-assert(NativeMath.pow<f64>( 0.5, 2.0) == +0.25);
-assert(NativeMath.pow<f64>( 1.0, 2.0) == +1.0);
-assert(NativeMath.pow<f64>(+Infinity, 2.0) == +Infinity);
-assert(NativeMath.pow<f64>(-Infinity, 2.0) == +Infinity);
-assert(isNaN(NativeMath.pow<f64>(NaN, 2.0)));
-
-assert(NativeMath.pow<f64>(+0.0, 0.5) == +0.0);
-assert(NativeMath.pow<f64>(-0.0, 0.5) == +0.0);
-assert(isNaN(NativeMath.pow<f64>(-1.0, 0.5)));
-assert(NativeMath.pow<f64>( 4.0, 0.5) == +2.0);
-assert(NativeMath.pow<f64>( 1.0, 0.5) == +1.0);
-assert(NativeMath.pow<f64>(+Infinity, 0.5) == +Infinity);
-assert(NativeMath.pow<f64>(-Infinity, 0.5) == +Infinity);
-assert(isNaN(NativeMath.pow<f64>(NaN, 0.5)));
+assert(NativeMath.pow(+0.0, 2.0) == +0.0);
+assert(NativeMath.pow(-0.0, 2.0) == +0.0);
+assert(NativeMath.pow(-1.0, 2.0) == +1.0);
+assert(NativeMath.pow( 0.5, 2.0) == +0.25);
+assert(NativeMath.pow( 1.0, 2.0) == +1.0);
+assert(NativeMath.pow(+Infinity, 2.0) == +Infinity);
+assert(NativeMath.pow(-Infinity, 2.0) == +Infinity);
+assert(isNaN(NativeMath.pow(NaN, 2.0)));
+
+assert(NativeMath.pow(+0.0, 0.5) == +0.0);
+assert(NativeMath.pow(-0.0, 0.5) == +0.0);
+assert(isNaN(NativeMath.pow(-1.0, 0.5)));
+assert(NativeMath.pow( 4.0, 0.5) == +2.0);
+assert(NativeMath.pow( 1.0, 0.5) == +1.0);
+assert(NativeMath.pow(+Infinity, 0.5) == +Infinity);
+assert(NativeMath.pow(-Infinity, 0.5) == +Infinity);
+assert(isNaN(NativeMath.pow(NaN, 0.5)));
 
 // Math.pow<f32> ///////////////////////////////////////////////////////////////////////////////////////
 
@@ -3844,22 +3844,22 @@ assert(NativeMath.imul<f64>(f64.MAX_VALUE, f64.MAX_VALUE) == 0);
 
 // Math.clz32 /////////////////////////////////////////////////////////////////////////////////
 
-assert(NativeMath.clz32<f64>(+0.0) == 32);
-assert(NativeMath.clz32<f64>(+1.0) == 31);
-assert(NativeMath.clz32<f64>(-1.0) == 0);
-assert(NativeMath.clz32<f64>(-128.0) == 0);
-assert(NativeMath.clz32<f64>(4294967295.0) == 0);
-assert(NativeMath.clz32<f64>(4294967295.5) == 0);
-assert(NativeMath.clz32<f64>(4294967296.0) == 32);
-assert(NativeMath.clz32<f64>(4294967297.0) == 31);
-assert(NativeMath.clz32<f64>(NaN) == 32);
-assert(NativeMath.clz32<f64>(Infinity) == 32);
-assert(NativeMath.clz32<f64>(+f64.MAX_SAFE_INTEGER) == 0);
-assert(NativeMath.clz32<f64>(-f64.MAX_SAFE_INTEGER) == 31);
-assert(NativeMath.clz32<f64>(+f64.MAX_VALUE) == 32);
-assert(NativeMath.clz32<f64>(+f64.MIN_VALUE) == 32);
-assert(NativeMath.clz32<f64>(-f64.MAX_VALUE) == 32);
-assert(NativeMath.clz32<f64>(+f64.EPSILON)   == 32);
+assert(NativeMath.clz32(+0.0) == 32);
+assert(NativeMath.clz32(+1.0) == 31);
+assert(NativeMath.clz32(-1.0) == 0);
+assert(NativeMath.clz32(-128.0) == 0);
+assert(NativeMath.clz32(4294967295.0) == 0);
+assert(NativeMath.clz32(4294967295.5) == 0);
+assert(NativeMath.clz32(4294967296.0) == 32);
+assert(NativeMath.clz32(4294967297.0) == 31);
+assert(NativeMath.clz32(NaN) == 32);
+assert(NativeMath.clz32(Infinity) == 32);
+assert(NativeMath.clz32(+f64.MAX_SAFE_INTEGER) == 0);
+assert(NativeMath.clz32(-f64.MAX_SAFE_INTEGER) == 31);
+assert(NativeMath.clz32(+f64.MAX_VALUE) == 32);
+assert(NativeMath.clz32(+f64.MIN_VALUE) == 32);
+assert(NativeMath.clz32(-f64.MAX_VALUE) == 32);
+assert(NativeMath.clz32(+f64.EPSILON)   == 32);
 
 // ipow64 /////////////////////////////////////////////////////////////////////////////////////
 

From 1b66da9ee8dd78214af54584ead613b1d09683a0 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 09:47:38 +0300
Subject: [PATCH 07/14] refactor some definitions

---
 std/assembly/index.d.ts | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 12f707297e..3bfbfd21c0 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2228,8 +2228,10 @@ interface TypedPropertyDescriptor<T> {
 
 /** Annotates a method as a binary operator overload for the specified `token`. */
 declare function operator(token:
-  "[]" | "[]=" | "{}" | "{}=" | "==" | "!=" | ">" | "<" | "<=" | ">=" |
-  ">>" | ">>>" | "<<" |  "&"  | "|"  | "^"  | "+" | "-" | "*"  | "**" | "/"  | "%"
+  | "[]" | "[]=" | "{}" | "{}="
+  | "==" |  "!=" |  ">" | "<"  | "<=" | ">="
+  | ">>" | ">>>" | "<<" | "&"  | "|"  | "^"
+  |  "+" |   "-" |  "*" | "**" | "/"  | "%"
 ): (
   target: any,
   propertyKey: string,
@@ -2239,8 +2241,10 @@ declare function operator(token:
 declare namespace operator {
   /** Annotates a method as a binary operator overload for the specified `token`. */
   export function binary(token:
-    "[]" | "[]=" | "{}" | "{}=" | "==" | "!=" | ">" | "<" | "<=" | ">=" |
-    ">>" | ">>>" | "<<" |  "&"  | "|"  | "^"  | "+" | "-" | "*"  | "**" | "/"  | "%"
+    | "[]" | "[]=" | "{}" | "{}="
+    | "==" |  "!=" |  ">" | "<"  | "<=" | ">="
+    | ">>" | ">>>" | "<<" | "&"  | "|"  | "^"
+    |  "+" |   "-" |  "*" | "**" | "/"  | "%"
   ): (
     target: any,
     propertyKey: string,

From 081dd084a24ddc9e34f07c4af88dcf5522c966e7 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 09:58:17 +0300
Subject: [PATCH 08/14] Narrow -> Widen

---
 std/assembly/index.d.ts | 72 ++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 36 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 3bfbfd21c0..32d796f0ed 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2026,7 +2026,7 @@ declare const Symbol: SymbolConstructor;
 
 // prevent infer T as literal
 /** @internal */
-type Narrow<T> = T extends number ? number : T;
+type Widen<T> = T extends number ? number : T;
 
 /** @internal */
 interface IMath {
@@ -2047,77 +2047,77 @@ interface IMath {
   /** The square root of 2, approximately 1.414. */
   readonly SQRT2: f64;
   /** Returns the absolute value of `x`. */
-  abs<T extends Narrow<u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>>(x: T): Narrow<T>;
+  abs<T extends Widen<u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>>(x: T): Widen<T>;
   /** Returns the arccosine (in radians) of `x`. */
-  acos<T extends f32 | f64>(x: T): Narrow<T>;
+  acos<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the hyperbolic arc-cosine of `x`. */
-  acosh<T extends f32 | f64>(x: T): Narrow<T>;
+  acosh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the arcsine (in radians) of `x`. */
-  asin<T extends f32 | f64>(x: T): Narrow<T>;
+  asin<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the hyperbolic arcsine of `x`. */
-  asinh<T extends f32 | f64>(x: T): Narrow<T>;
+  asinh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the arctangent (in radians) of `x`. */
-  atan<T extends f32 | f64>(x: T): Narrow<T>;
+  atan<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the arctangent of the quotient of its arguments. */
-  atan2<T extends f32 | f64>(y: T, x: T): Narrow<T>;
+  atan2<T extends f32 | f64>(y: T, x: T): Widen<T>;
   /** Returns the hyperbolic arctangent of `x`. */
-  atanh<T extends f32 | f64>(x: T): Narrow<T>;
+  atanh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the cube root of `x`. */
-  cbrt<T extends f32 | f64>(x: T): Narrow<T>;
+  cbrt<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the smallest integer greater than or equal to `x`. */
-  ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. @deprecate */
-  clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the cosine (in radians) of `x`. */
-  cos<T extends f32 | f64>(x: T): Narrow<T>;
+  cos<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the hyperbolic cosine of `x`. */
-  cosh<T extends f32 | f64>(x: T): Narrow<T>;
+  cosh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns e to the power of `x`. */
-  exp<T extends f32 | f64>(x: T): Narrow<T>;
+  exp<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns e to the power of `x`, minus 1. */
-  expm1<T extends f32 | f64>(x: T): Narrow<T>;
+  expm1<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the largest integer less than or equal to `x`. */
-  floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the nearest 32-bit single precision float representation of `x`. */
-  fround<T extends f32 | f64>(x: T): Narrow<T>;
+  fround<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the square root of the sum of squares of its arguments. */
-  hypot<T extends f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
+  hypot<T extends f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
   /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. @deprecate */
-  imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>;
+  imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>;
   /** Returns the natural logarithm (base e) of `x`. */
-  log<T extends f32 | f64>(x: T): Narrow<T>;
+  log<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the base 10 logarithm of `x`. */
-  log10<T extends f32 | f64>(x: T): Narrow<T>;
+  log10<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the natural logarithm (base e) of 1 + `x`. */
-  log1p<T extends f32 | f64>(x: T): Narrow<T>;
+  log1p<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the base 2 logarithm of `x`. */
-  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the largest-valued number of its arguments. */
-  max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
+  max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
   /** Returns the lowest-valued number of its arguments. */
-  min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Narrow<T>; // TODO: rest
+  min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
   /** Returns `base` to the power of `exponent`. */
-  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): Narrow<T>;
+  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): Widen<T>;
   /** Returns a pseudo-random number in the range from 0.0 inclusive up to but not including 1.0. */
   random(): f64;
   /** Returns the value of `x` rounded to the nearest integer. */
-  round<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  round<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the sign of `x`, indicating whether the number is positive, negative or zero. */
-  sign<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  sign<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns whether the sign bit of `x` is set. */
   signbit<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): bool;
   /** Returns the sine of `x`. */
-  sin<T extends f32 | f64>(x: T): Narrow<T>;
+  sin<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the hyperbolic sine of `x`. */
-  sinh<T extends f32 | f64>(x: T): Narrow<T>;
+  sinh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the square root of `x`. */
-  sqrt<T extends f32 | f64>(x: T): Narrow<T>;
+  sqrt<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the tangent of `x`. */
-  tan<T extends f32 | f64>(x: T): Narrow<T>;
+  tan<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the hyperbolic tangent of `x`. */
-  tanh<T extends f32 | f64>(x: T): Narrow<T>;
+  tanh<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the integer part of `x` by removing any fractional digits. */
-  trunc<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Narrow<T>;
+  trunc<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
 }
 
 /** @internal */
@@ -2131,7 +2131,7 @@ interface INativeMath extends IMath {
   /** Returns sin and cos simultaneously for same angle. Results stored to `sincos_s32/64` and `sincos_c32/64` globals */
   sincos<T extends f32 | f64>(x: T): void;
   /** Returns 2 raised to the given power x. Equivalent to 2 ** x. */
-  exp2<T extends f32 | f64>(x: T): Narrow<T>;
+  exp2<T extends f32 | f64>(x: T): Widen<T>;
 }
 
 /** Double precision math imported from JavaScript. */

From fa53220dfcf0bdb4fb93981c2368254f6149ae49 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 13:43:00 +0300
Subject: [PATCH 09/14] refactor test utils

---
 tests/compiler/std/math.debug.wat   | 5450 +++++++++++++-------------
 tests/compiler/std/math.release.wat | 5476 +++++++++++++--------------
 tests/compiler/std/math.ts          |   55 +-
 3 files changed, 5479 insertions(+), 5502 deletions(-)

diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat
index 887d6e8af2..12c0747f18 100644
--- a/tests/compiler/std/math.debug.wat
+++ b/tests/compiler/std/math.debug.wat
@@ -117,7 +117,7 @@
  (elem $0 (i32.const 1))
  (export "memory" (memory $0))
  (start $~start)
- (func $std/math/eulp (param $0 f64) (result i32)
+ (func $std/math/eulp64 (param $0 f64) (result i32)
   (local $1 i64)
   (local $2 i32)
   local.get $0
@@ -235,7 +235,7 @@
   f64.reinterpret_i64
   f64.mul
  )
- (func $std/math/ulperr (param $0 f64) (param $1 f64) (param $2 f64) (result f64)
+ (func $std/math/ulperr64 (param $0 f64) (param $1 f64) (param $2 f64) (result f64)
   (local $3 f64)
   local.get $0
   local.get $0
@@ -334,7 +334,7 @@
   f64.sub
   i32.const 0
   local.get $1
-  call $std/math/eulp
+  call $std/math/eulp64
   i32.sub
   call $~lib/util/math/scalbn64
   local.get $2
@@ -359,23 +359,22 @@
    return
   end
   i32.const 8
+  i32.const 4
+  i32.eq
+  drop
+  i32.const 8
   i32.const 8
   i32.eq
   drop
   local.get $0
   local.get $1
   local.get $2
-  call $std/math/ulperr
+  call $std/math/ulperr64
   local.set $4
   local.get $4
   f64.abs
   f64.const 1.5
-  f64.ge
-  if
-   i32.const 0
-   return
-  end
-  i32.const 1
+  f64.lt
  )
  (func $std/math/test_scalbn (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32)
   local.get $0
@@ -476,7 +475,7 @@
   f32.reinterpret_i32
   f32.mul
  )
- (func $std/math/eulpf (param $0 f32) (result i32)
+ (func $std/math/eulp32 (param $0 f32) (result i32)
   (local $1 i32)
   (local $2 i32)
   local.get $0
@@ -502,7 +501,7 @@
   i32.const 23
   i32.sub
  )
- (func $std/math/ulperrf (param $0 f32) (param $1 f32) (param $2 f32) (result f32)
+ (func $std/math/ulperr32 (param $0 f32) (param $1 f32) (param $2 f32) (result f32)
   (local $3 f32)
   local.get $0
   local.get $0
@@ -589,7 +588,7 @@
   f32.sub
   i32.const 0
   local.get $1
-  call $std/math/eulpf
+  call $std/math/eulp32
   i32.sub
   call $~lib/util/math/scalbn32
   local.get $2
@@ -614,27 +613,18 @@
    return
   end
   i32.const 4
-  i32.const 8
-  i32.eq
-  drop
-  i32.const 4
   i32.const 4
   i32.eq
   drop
   local.get $0
   local.get $1
   local.get $2
-  call $std/math/ulperrf
+  call $std/math/ulperr32
   local.set $4
   local.get $4
   f32.abs
   f32.const 1.5
-  f32.ge
-  if
-   i32.const 0
-   return
-  end
-  i32.const 1
+  f32.lt
  )
  (func $std/math/test_scalbnf (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32)
   local.get $0
@@ -16354,7 +16344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 118
+   i32.const 115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16368,7 +16358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 119
+   i32.const 116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16382,7 +16372,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 120
+   i32.const 117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16396,7 +16386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 121
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16410,7 +16400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 122
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16424,7 +16414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 123
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16438,7 +16428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 124
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16453,7 +16443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 135
+   i32.const 132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16468,7 +16458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 136
+   i32.const 133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16483,7 +16473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 137
+   i32.const 134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16498,7 +16488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 138
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16513,7 +16503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 139
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16528,7 +16518,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 140
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16543,7 +16533,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 141
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16558,7 +16548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 142
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16573,7 +16563,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 143
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16588,7 +16578,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 144
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16603,7 +16593,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 147
+   i32.const 144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16618,7 +16608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 148
+   i32.const 145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16633,7 +16623,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 149
+   i32.const 146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16648,7 +16638,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 150
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16663,7 +16653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 151
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16680,7 +16670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 152
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16695,7 +16685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 153
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16710,7 +16700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 154
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16725,7 +16715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 155
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16742,7 +16732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 156
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16757,7 +16747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 157
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16772,7 +16762,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 158
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16787,7 +16777,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 159
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16804,7 +16794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 160
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16819,7 +16809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 161
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16834,7 +16824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 162
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16851,7 +16841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 163
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16868,7 +16858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 164
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16885,7 +16875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 165
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16900,7 +16890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 174
+   i32.const 171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16915,7 +16905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 175
+   i32.const 172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16930,7 +16920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 176
+   i32.const 173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16945,7 +16935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 177
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16960,7 +16950,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 178
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16975,7 +16965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 179
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16990,7 +16980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 180
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17005,7 +16995,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 181
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17020,7 +17010,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 182
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17035,7 +17025,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 183
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17050,7 +17040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 186
+   i32.const 183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17065,7 +17055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 187
+   i32.const 184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17080,7 +17070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 188
+   i32.const 185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17095,7 +17085,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 189
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17110,7 +17100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 190
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17127,7 +17117,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 191
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17142,7 +17132,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 192
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17157,7 +17147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 193
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17172,7 +17162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 194
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17189,7 +17179,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 195
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17204,7 +17194,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 196
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17219,7 +17209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 197
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17234,7 +17224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 198
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17251,7 +17241,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 199
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17266,7 +17256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 200
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17281,7 +17271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 201
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17298,7 +17288,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 202
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17315,7 +17305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 203
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17332,7 +17322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 204
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17346,7 +17336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 216
+   i32.const 213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17360,7 +17350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 217
+   i32.const 214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17374,7 +17364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 218
+   i32.const 215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17388,7 +17378,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 219
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17402,7 +17392,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 220
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17416,7 +17406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 221
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17430,7 +17420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 222
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17444,7 +17434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 223
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17458,7 +17448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 224
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17472,7 +17462,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 225
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17486,7 +17476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 228
+   i32.const 225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17500,7 +17490,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 229
+   i32.const 226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17514,7 +17504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 230
+   i32.const 227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17528,7 +17518,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 231
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17542,7 +17532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 232
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17557,7 +17547,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 233
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17571,7 +17561,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 234
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17585,7 +17575,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 243
+   i32.const 240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17599,7 +17589,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 244
+   i32.const 241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17613,7 +17603,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 245
+   i32.const 242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17627,7 +17617,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 246
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17641,7 +17631,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 247
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17655,7 +17645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 248
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17669,7 +17659,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 249
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17683,7 +17673,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 250
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17697,7 +17687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 251
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17711,7 +17701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 252
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17725,7 +17715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 255
+   i32.const 252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17739,7 +17729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 256
+   i32.const 253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17753,7 +17743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 257
+   i32.const 254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17767,7 +17757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 258
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17781,7 +17771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 259
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17796,7 +17786,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 260
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17810,7 +17800,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 261
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17824,7 +17814,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 273
+   i32.const 270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17838,7 +17828,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 274
+   i32.const 271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17852,7 +17842,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 275
+   i32.const 272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17866,7 +17856,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 276
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17880,7 +17870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 277
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17894,7 +17884,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 278
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17908,7 +17898,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 279
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17922,7 +17912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 280
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17936,7 +17926,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 281
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17950,7 +17940,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 282
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17964,7 +17954,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 285
+   i32.const 282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17978,7 +17968,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 286
+   i32.const 283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17992,7 +17982,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 287
+   i32.const 284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18006,7 +17996,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 288
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18020,7 +18010,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 289
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18034,7 +18024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 290
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18049,7 +18039,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 291
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18063,7 +18053,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 292
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18077,7 +18067,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 293
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18091,7 +18081,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 294
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18105,7 +18095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 303
+   i32.const 300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18119,7 +18109,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 304
+   i32.const 301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18133,7 +18123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 305
+   i32.const 302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18147,7 +18137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 306
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18161,7 +18151,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 307
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18175,7 +18165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 308
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18189,7 +18179,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 309
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18203,7 +18193,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 310
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18217,7 +18207,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 311
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18231,7 +18221,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 312
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18245,7 +18235,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 315
+   i32.const 312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18259,7 +18249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 316
+   i32.const 313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18273,7 +18263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 317
+   i32.const 314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18287,7 +18277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 318
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18301,7 +18291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 319
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18315,7 +18305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 320
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18330,7 +18320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 321
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18344,7 +18334,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 322
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18358,7 +18348,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 323
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18372,7 +18362,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 324
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18386,7 +18376,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 325
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18400,7 +18390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 337
+   i32.const 334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18414,7 +18404,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 338
+   i32.const 335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18428,7 +18418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 339
+   i32.const 336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18442,7 +18432,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 340
+   i32.const 337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18456,7 +18446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 341
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18470,7 +18460,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 342
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18484,7 +18474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 343
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18498,7 +18488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 344
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18512,7 +18502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 345
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18526,7 +18516,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 346
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18540,7 +18530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 349
+   i32.const 346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18554,7 +18544,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 350
+   i32.const 347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18568,7 +18558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 351
+   i32.const 348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18582,7 +18572,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 352
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18596,7 +18586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 353
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18610,7 +18600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 354
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18624,7 +18614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 355
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18639,7 +18629,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 356
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18653,7 +18643,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 372
+   i32.const 369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18667,7 +18657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 374
+   i32.const 371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18681,7 +18671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 375
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18695,7 +18685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 384
+   i32.const 381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18709,7 +18699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 385
+   i32.const 382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18723,7 +18713,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 386
+   i32.const 383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18737,7 +18727,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 387
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18751,7 +18741,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 388
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18765,7 +18755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 389
+   i32.const 386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18779,7 +18769,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 390
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18793,7 +18783,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 391
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18807,7 +18797,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 392
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18821,7 +18811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 393
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18835,7 +18825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 396
+   i32.const 393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18849,7 +18839,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 397
+   i32.const 394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18863,7 +18853,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 398
+   i32.const 395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18877,7 +18867,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 399
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18891,7 +18881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 400
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18905,7 +18895,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 401
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18920,7 +18910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 402
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18934,7 +18924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 403
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18948,7 +18938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 415
+   i32.const 412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18962,7 +18952,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 416
+   i32.const 413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18976,7 +18966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 417
+   i32.const 414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18990,7 +18980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 418
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19004,7 +18994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 419
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19018,7 +19008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 420
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19032,7 +19022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 421
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19046,7 +19036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 422
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19060,7 +19050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 423
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19074,7 +19064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 424
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19088,7 +19078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 427
+   i32.const 424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19102,7 +19092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 428
+   i32.const 425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19116,7 +19106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 429
+   i32.const 426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19130,7 +19120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 430
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19144,7 +19134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 431
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19158,7 +19148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 432
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19172,7 +19162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 433
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19187,7 +19177,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 434
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19201,7 +19191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 435
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19215,7 +19205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 436
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19229,7 +19219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 445
+   i32.const 442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19243,7 +19233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 446
+   i32.const 443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19257,7 +19247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 447
+   i32.const 444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19271,7 +19261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 448
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19285,7 +19275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 449
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19299,7 +19289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 450
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19313,7 +19303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 451
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19327,7 +19317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 452
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19341,7 +19331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 453
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19355,7 +19345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 454
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19369,7 +19359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 457
+   i32.const 454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19383,7 +19373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 458
+   i32.const 455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19397,7 +19387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 459
+   i32.const 456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19411,7 +19401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 460
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19425,7 +19415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 461
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19439,7 +19429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 462
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19453,7 +19443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 463
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19468,7 +19458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 464
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19482,7 +19472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 465
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19496,7 +19486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 466
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19510,7 +19500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 478
+   i32.const 475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19524,7 +19514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 479
+   i32.const 476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19538,7 +19528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 480
+   i32.const 477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19552,7 +19542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 481
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19566,7 +19556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 482
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19580,7 +19570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 483
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19594,7 +19584,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 484
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19608,7 +19598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 485
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19622,7 +19612,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 486
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19636,7 +19626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 487
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19650,7 +19640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 490
+   i32.const 487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19664,7 +19654,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 491
+   i32.const 488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19680,7 +19670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 492
+   i32.const 489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19694,7 +19684,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 493
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19708,7 +19698,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 494
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19722,7 +19712,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 523
+   i32.const 520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19736,7 +19726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 524
+   i32.const 521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19750,7 +19740,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 525
+   i32.const 522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19764,7 +19754,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 526
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19778,7 +19768,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 527
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19792,7 +19782,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 528
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19806,7 +19796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 529
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19820,7 +19810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 530
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19834,7 +19824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 531
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19848,7 +19838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 532
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19862,7 +19852,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 535
+   i32.const 532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19876,7 +19866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 536
+   i32.const 533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19892,7 +19882,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 537
+   i32.const 534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19906,7 +19896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 538
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19920,7 +19910,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 539
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19934,7 +19924,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 551
+   i32.const 548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19948,7 +19938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 552
+   i32.const 549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19962,7 +19952,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 553
+   i32.const 550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19976,7 +19966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 554
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19990,7 +19980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 555
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20004,7 +19994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 556
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20018,7 +20008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 557
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20032,7 +20022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 558
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20046,7 +20036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 559
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20060,7 +20050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 560
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20074,7 +20064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 563
+   i32.const 560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20088,7 +20078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 564
+   i32.const 561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20102,7 +20092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 565
+   i32.const 562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20116,7 +20106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 566
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20130,7 +20120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 567
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20145,7 +20135,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 568
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20159,7 +20149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 569
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20173,7 +20163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 570
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20187,7 +20177,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 579
+   i32.const 576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20201,7 +20191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 580
+   i32.const 577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20215,7 +20205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 581
+   i32.const 578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20229,7 +20219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 582
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20243,7 +20233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 583
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20257,7 +20247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 584
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20271,7 +20261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 585
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20285,7 +20275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 586
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20299,7 +20289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 587
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20313,7 +20303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 588
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20327,7 +20317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 591
+   i32.const 588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20341,7 +20331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 592
+   i32.const 589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20355,7 +20345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 593
+   i32.const 590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20369,7 +20359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 594
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20383,7 +20373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 595
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20398,7 +20388,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 596
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20412,7 +20402,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 597
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20426,7 +20416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 609
+   i32.const 606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20440,7 +20430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 610
+   i32.const 607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20454,7 +20444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 611
+   i32.const 608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20468,7 +20458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 612
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20482,7 +20472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 613
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20496,7 +20486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 614
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20510,7 +20500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 615
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20524,7 +20514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 616
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20538,7 +20528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 617
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20552,7 +20542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 618
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20566,7 +20556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 621
+   i32.const 618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20580,7 +20570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 622
+   i32.const 619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20595,7 +20585,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 623
+   i32.const 620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20609,7 +20599,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 624
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20623,7 +20613,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 625
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20637,7 +20627,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 626
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20652,7 +20642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 627
+   i32.const 624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20666,7 +20656,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 628
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20680,7 +20670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 629
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20694,7 +20684,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 630
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20708,7 +20698,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 631
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20724,7 +20714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 632
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20740,7 +20730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 633
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20754,7 +20744,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 634
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20768,7 +20758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 643
+   i32.const 640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20782,7 +20772,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 644
+   i32.const 641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20796,7 +20786,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 645
+   i32.const 642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20810,7 +20800,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 646
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20824,7 +20814,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 647
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20838,7 +20828,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 648
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20852,7 +20842,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 649
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20866,7 +20856,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 650
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20880,7 +20870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 651
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20894,7 +20884,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 652
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20908,7 +20898,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 655
+   i32.const 652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20922,7 +20912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 656
+   i32.const 653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20937,7 +20927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 657
+   i32.const 654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20951,7 +20941,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 658
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20965,7 +20955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 659
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20979,7 +20969,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 660
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20994,7 +20984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 661
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21008,7 +20998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 662
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21022,7 +21012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 663
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21036,7 +21026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 664
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21050,7 +21040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 665
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21066,7 +21056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 666
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21082,7 +21072,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 667
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21096,7 +21086,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 668
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21111,7 +21101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 680
+   i32.const 677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21126,7 +21116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 681
+   i32.const 678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21141,7 +21131,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 682
+   i32.const 679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21156,7 +21146,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 683
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21171,7 +21161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 684
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21186,7 +21176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 685
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21201,7 +21191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 686
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21216,7 +21206,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 687
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21231,7 +21221,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 688
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21246,7 +21236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 689
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21261,7 +21251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 692
+   i32.const 689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21276,7 +21266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 693
+   i32.const 690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21291,7 +21281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 694
+   i32.const 691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21307,7 +21297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 695
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21322,7 +21312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 696
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21337,7 +21327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 697
+   i32.const 694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21352,7 +21342,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 698
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21367,7 +21357,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 699
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21382,7 +21372,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 700
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21398,7 +21388,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 701
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21413,7 +21403,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 702
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21428,7 +21418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 703
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21443,7 +21433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 704
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21458,7 +21448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 705
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21473,7 +21463,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 706
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21488,7 +21478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 707
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21503,7 +21493,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 708
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21518,7 +21508,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 709
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21534,7 +21524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 710
+   i32.const 707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21550,7 +21540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 711
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21565,7 +21555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 712
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21581,7 +21571,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 713
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21596,7 +21586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 714
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21612,7 +21602,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 715
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21628,7 +21618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 716
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21645,7 +21635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 717
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21662,7 +21652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 718
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21679,7 +21669,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 719
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21696,7 +21686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 720
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21711,7 +21701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 721
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21726,7 +21716,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 730
+   i32.const 727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21741,7 +21731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 731
+   i32.const 728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21756,7 +21746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 732
+   i32.const 729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21771,7 +21761,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 733
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21786,7 +21776,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 734
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21801,7 +21791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 735
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21816,7 +21806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 736
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21831,7 +21821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 737
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21846,7 +21836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 738
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21861,7 +21851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 739
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21876,7 +21866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 742
+   i32.const 739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21891,7 +21881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 743
+   i32.const 740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21906,7 +21896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 744
+   i32.const 741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21922,7 +21912,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 745
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21937,7 +21927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 746
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21952,7 +21942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 747
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21967,7 +21957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 748
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21982,7 +21972,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 749
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21997,7 +21987,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 750
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22013,7 +22003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 751
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22028,7 +22018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 752
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22043,7 +22033,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 753
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22058,7 +22048,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 754
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22073,7 +22063,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 755
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22088,7 +22078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 756
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22103,7 +22093,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 757
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22118,7 +22108,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 758
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22133,7 +22123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 759
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22149,7 +22139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 760
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22165,7 +22155,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 761
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22180,7 +22170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 762
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22196,7 +22186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 763
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22211,7 +22201,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 764
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22227,7 +22217,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 765
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22243,7 +22233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 766
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22260,7 +22250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 767
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22277,7 +22267,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 768
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22294,7 +22284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 769
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22308,7 +22298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 781
+   i32.const 778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22322,7 +22312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 782
+   i32.const 779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22336,7 +22326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 783
+   i32.const 780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22350,7 +22340,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 784
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22364,7 +22354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 785
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22378,7 +22368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 786
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22392,7 +22382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 787
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22406,7 +22396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 788
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22420,7 +22410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 789
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22434,7 +22424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 790
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22448,7 +22438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 793
+   i32.const 790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22462,7 +22452,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 794
+   i32.const 791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22478,7 +22468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 795
+   i32.const 792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22492,7 +22482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 796
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22506,7 +22496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 797
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22520,7 +22510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 798
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22534,7 +22524,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 799
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22548,7 +22538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 800
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22562,7 +22552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 801
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22576,7 +22566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 802
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22590,7 +22580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 811
+   i32.const 808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22604,7 +22594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 812
+   i32.const 809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22618,7 +22608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 813
+   i32.const 810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22632,7 +22622,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 814
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22646,7 +22636,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 815
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22660,7 +22650,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 816
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22674,7 +22664,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 817
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22688,7 +22678,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 818
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22702,7 +22692,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 819
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22716,7 +22706,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 820
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22730,7 +22720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 823
+   i32.const 820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22744,7 +22734,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 824
+   i32.const 821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22760,7 +22750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 825
+   i32.const 822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22774,7 +22764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 826
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22788,7 +22778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 827
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22802,7 +22792,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 828
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22816,7 +22806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 829
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22830,7 +22820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 830
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22844,7 +22834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 831
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22858,7 +22848,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 832
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22872,7 +22862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 844
+   i32.const 841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22886,7 +22876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 845
+   i32.const 842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22900,7 +22890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 846
+   i32.const 843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22914,7 +22904,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 847
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22928,7 +22918,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 848
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22942,7 +22932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 849
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22956,7 +22946,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 850
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22970,7 +22960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 851
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22984,7 +22974,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 852
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22998,7 +22988,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 853
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23012,7 +23002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 856
+   i32.const 853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23026,7 +23016,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 857
+   i32.const 854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23042,7 +23032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 858
+   i32.const 855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23056,7 +23046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 859
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23070,7 +23060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 860
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23084,7 +23074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 861
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23098,7 +23088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 862
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23112,7 +23102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 863
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23126,7 +23116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 864
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23140,7 +23130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 865
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23154,7 +23144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 866
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23168,7 +23158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 867
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23182,7 +23172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 868
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23196,7 +23186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 869
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23210,7 +23200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 870
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23224,7 +23214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 871
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23238,7 +23228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 872
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23254,7 +23244,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 873
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23268,7 +23258,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 874
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23282,7 +23272,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 875
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23296,7 +23286,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 876
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23310,7 +23300,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 877
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23324,7 +23314,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 878
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23338,7 +23328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 879
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23352,7 +23342,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 880
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23366,7 +23356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 881
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23380,7 +23370,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 882
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23394,7 +23384,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 883
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23408,7 +23398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 884
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23422,7 +23412,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 885
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23436,7 +23426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 886
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23450,7 +23440,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 887
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23466,7 +23456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 888
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23480,7 +23470,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 889
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23494,7 +23484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 890
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23508,7 +23498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 891
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23522,7 +23512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 892
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23536,7 +23526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 893
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23550,7 +23540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 894
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23564,7 +23554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 895
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23578,7 +23568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 896
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23592,7 +23582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 897
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23606,7 +23596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 898
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23620,7 +23610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 899
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23634,7 +23624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 900
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23648,7 +23638,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 909
+   i32.const 906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23662,7 +23652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 910
+   i32.const 907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23676,7 +23666,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 911
+   i32.const 908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23690,7 +23680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 912
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23704,7 +23694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 913
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23718,7 +23708,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 914
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23732,7 +23722,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 915
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23746,7 +23736,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 916
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23760,7 +23750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 917
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23774,7 +23764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 918
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23788,7 +23778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 921
+   i32.const 918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23802,7 +23792,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 922
+   i32.const 919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23818,7 +23808,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 923
+   i32.const 920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23832,7 +23822,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 924
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23846,7 +23836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 925
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23860,7 +23850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 926
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23874,7 +23864,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 927
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23888,7 +23878,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 928
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23902,7 +23892,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 929
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23916,7 +23906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 930
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23930,7 +23920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 931
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23944,7 +23934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 932
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23958,7 +23948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 933
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23972,7 +23962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 934
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23986,7 +23976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 935
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24000,7 +23990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 936
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24014,7 +24004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 937
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24030,7 +24020,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 938
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24044,7 +24034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 939
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24058,7 +24048,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 940
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24072,7 +24062,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 941
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24086,7 +24076,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 942
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24100,7 +24090,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 943
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24114,7 +24104,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 944
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24128,7 +24118,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 945
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24142,7 +24132,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 946
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24156,7 +24146,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 947
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24170,7 +24160,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 948
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24184,7 +24174,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 949
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24198,7 +24188,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 950
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24212,7 +24202,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 951
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24226,7 +24216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 952
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24242,7 +24232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 953
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24256,7 +24246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 954
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24270,7 +24260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 955
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24284,7 +24274,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 956
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24298,7 +24288,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 957
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24312,7 +24302,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 958
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24326,7 +24316,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 959
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24340,7 +24330,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 960
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24354,7 +24344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 961
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24368,7 +24358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 962
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24382,7 +24372,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 963
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24396,7 +24386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 964
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24410,7 +24400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 965
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24424,7 +24414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 976
+   i32.const 973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24438,7 +24428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 977
+   i32.const 974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24452,7 +24442,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 978
+   i32.const 975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24466,7 +24456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 979
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24480,7 +24470,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 980
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24494,7 +24484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 981
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24508,7 +24498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 982
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24522,7 +24512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 983
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24536,7 +24526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 984
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24550,7 +24540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 985
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24564,7 +24554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 988
+   i32.const 985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24578,7 +24568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 989
+   i32.const 986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24592,7 +24582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 990
+   i32.const 987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24607,7 +24597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 991
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24621,7 +24611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 992
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24635,7 +24625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 993
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24649,7 +24639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 994
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24663,7 +24653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 995
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24677,7 +24667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 996
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24691,7 +24681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 997
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24705,7 +24695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 998
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24719,7 +24709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 999
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24733,7 +24723,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1000
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24747,7 +24737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1001
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24761,7 +24751,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1002
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24775,7 +24765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1003
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24789,7 +24779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1004
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24803,7 +24793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1005
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24817,7 +24807,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1006
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24831,7 +24821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1007
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24845,7 +24835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1008
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24859,7 +24849,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1009
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24873,7 +24863,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1010
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24887,7 +24877,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1011
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24901,7 +24891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1012
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24915,7 +24905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1013
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24929,7 +24919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1014
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24943,7 +24933,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1015
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24957,7 +24947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1016
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24971,7 +24961,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1017
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24985,7 +24975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1018
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24999,7 +24989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1019
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25013,7 +25003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1020
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25027,7 +25017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1021
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25041,7 +25031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1022
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25055,7 +25045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1023
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25069,7 +25059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1024
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25083,7 +25073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1025
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25097,7 +25087,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1026
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25111,7 +25101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1027
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25125,7 +25115,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1028
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25139,7 +25129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1029
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25153,7 +25143,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1030
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25167,7 +25157,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1031
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25181,7 +25171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1032
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25195,7 +25185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1033
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25209,7 +25199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1034
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25223,7 +25213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1035
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25237,7 +25227,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1036
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25251,7 +25241,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1037
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25265,7 +25255,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1038
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25279,7 +25269,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1039
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25293,7 +25283,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1040
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25307,7 +25297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1041
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25321,7 +25311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1042
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25335,7 +25325,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1043
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25349,7 +25339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1044
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25363,7 +25353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1045
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25377,7 +25367,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1046
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25391,7 +25381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1047
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25405,7 +25395,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1048
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25419,7 +25409,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1049
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25433,7 +25423,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1050
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25447,7 +25437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1051
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25461,7 +25451,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1052
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25475,7 +25465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1053
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25489,7 +25479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1054
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25503,7 +25493,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1055
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25517,7 +25507,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1056
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25531,7 +25521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1057
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25545,7 +25535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1058
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25559,7 +25549,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1059
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25573,7 +25563,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1060
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25587,7 +25577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1061
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25601,7 +25591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1062
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25615,7 +25605,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1063
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25629,7 +25619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1064
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25643,7 +25633,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1065
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25657,7 +25647,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1068
+   i32.const 1065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25671,7 +25661,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1069
+   i32.const 1066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25685,7 +25675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1070
+   i32.const 1067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25699,7 +25689,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1071
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25713,7 +25703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1072
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25727,7 +25717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1073
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25741,7 +25731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1074
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25755,7 +25745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1075
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25769,7 +25759,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1076
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25783,7 +25773,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1077
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25797,7 +25787,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1078
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25811,7 +25801,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1079
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25825,7 +25815,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1080
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25839,7 +25829,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1081
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25853,7 +25843,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1082
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25867,7 +25857,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1083
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25881,7 +25871,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1084
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25895,7 +25885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1085
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25909,7 +25899,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1086
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25923,7 +25913,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1087
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25937,7 +25927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1088
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25951,7 +25941,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1089
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25965,7 +25955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1090
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25979,7 +25969,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1091
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25993,7 +25983,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1092
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26007,7 +25997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1093
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26021,7 +26011,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1094
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26035,7 +26025,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1095
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26049,7 +26039,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1096
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26063,7 +26053,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1097
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26077,7 +26067,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1098
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26091,7 +26081,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1099
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26105,7 +26095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1100
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26119,7 +26109,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1101
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26133,7 +26123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1102
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26147,7 +26137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1103
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26161,7 +26151,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1104
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26175,7 +26165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1105
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26208,7 +26198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1107
+   i32.const 1104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26245,7 +26235,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1108
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26278,7 +26268,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1109
+   i32.const 1106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26306,7 +26296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1113
+   i32.const 1110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26334,7 +26324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1114
+   i32.const 1111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26362,7 +26352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1117
+   i32.const 1114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26390,7 +26380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1119
+   i32.const 1116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26418,7 +26408,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1120
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26446,7 +26436,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1123
+   i32.const 1120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26474,7 +26464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1125
+   i32.const 1122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26502,7 +26492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1128
+   i32.const 1125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26530,7 +26520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1130
+   i32.const 1127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26558,7 +26548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1131
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26586,7 +26576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1132
+   i32.const 1129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26614,7 +26604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1134
+   i32.const 1131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26646,7 +26636,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1136
+   i32.const 1133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26678,7 +26668,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1137
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26710,7 +26700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1138
+   i32.const 1135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26742,7 +26732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1139
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26770,7 +26760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1140
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26802,7 +26792,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1141
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26816,7 +26806,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1150
+   i32.const 1147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26830,7 +26820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1151
+   i32.const 1148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26844,7 +26834,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1152
+   i32.const 1149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26858,7 +26848,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1153
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26872,7 +26862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1154
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26886,7 +26876,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1155
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26900,7 +26890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1156
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26914,7 +26904,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1157
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26928,7 +26918,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1158
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26942,7 +26932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1159
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26956,7 +26946,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1162
+   i32.const 1159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26970,7 +26960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1163
+   i32.const 1160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26984,7 +26974,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1164
+   i32.const 1161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26999,7 +26989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1165
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27013,7 +27003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1166
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27027,7 +27017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1169
+   i32.const 1166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27041,7 +27031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1170
+   i32.const 1167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27055,7 +27045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1171
+   i32.const 1168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27069,7 +27059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1172
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27083,7 +27073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1173
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27097,7 +27087,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1174
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27111,7 +27101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1175
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27125,7 +27115,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1176
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27139,7 +27129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1177
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27153,7 +27143,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1178
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27167,7 +27157,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1179
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27181,7 +27171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1180
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27195,7 +27185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1181
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27209,7 +27199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1182
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27223,7 +27213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1183
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27237,7 +27227,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1184
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27251,7 +27241,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1185
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27265,7 +27255,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1186
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27279,7 +27269,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1187
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27293,7 +27283,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1188
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27307,7 +27297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1189
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27321,7 +27311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1190
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27335,7 +27325,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1191
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27349,7 +27339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1192
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27363,7 +27353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1193
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27377,7 +27367,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1194
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27391,7 +27381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1195
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27405,7 +27395,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1196
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27419,7 +27409,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1197
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27433,7 +27423,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1198
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27447,7 +27437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1199
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27461,7 +27451,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1200
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27475,7 +27465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1201
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27489,7 +27479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1202
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27503,7 +27493,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1203
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27517,7 +27507,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1204
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27531,7 +27521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1205
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27545,7 +27535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1206
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27559,7 +27549,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1209
+   i32.const 1206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27573,7 +27563,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1210
+   i32.const 1207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27587,7 +27577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1211
+   i32.const 1208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27601,7 +27591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1212
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27615,7 +27605,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1213
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27629,7 +27619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1214
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27643,7 +27633,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1215
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27657,7 +27647,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1216
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27671,7 +27661,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1217
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27685,7 +27675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1218
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27699,7 +27689,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1219
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27713,7 +27703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1220
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27727,7 +27717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1221
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27742,7 +27732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1222
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27756,7 +27746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1233
+   i32.const 1230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27770,7 +27760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1234
+   i32.const 1231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27784,7 +27774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1235
+   i32.const 1232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27798,7 +27788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1236
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27812,7 +27802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1237
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27826,7 +27816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1238
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27840,7 +27830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1239
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27854,7 +27844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1240
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27868,7 +27858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1241
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27882,7 +27872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1242
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27896,7 +27886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1245
+   i32.const 1242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27910,7 +27900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1246
+   i32.const 1243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27924,7 +27914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1247
+   i32.const 1244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27939,7 +27929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1248
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27953,7 +27943,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1249
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27967,7 +27957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1258
+   i32.const 1255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27981,7 +27971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1259
+   i32.const 1256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27995,7 +27985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1260
+   i32.const 1257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28009,7 +27999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1261
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28023,7 +28013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1262
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28037,7 +28027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1263
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28051,7 +28041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1264
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28065,7 +28055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1265
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28079,7 +28069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1266
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28093,7 +28083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1267
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28107,7 +28097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1270
+   i32.const 1267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28121,7 +28111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1271
+   i32.const 1268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28135,7 +28125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1272
+   i32.const 1269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28150,7 +28140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1273
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28164,7 +28154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1274
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28178,7 +28168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1286
+   i32.const 1283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28192,7 +28182,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1287
+   i32.const 1284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28206,7 +28196,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1288
+   i32.const 1285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28220,7 +28210,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1289
+   i32.const 1286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28234,7 +28224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1290
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28248,7 +28238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1291
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28262,7 +28252,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1292
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28276,7 +28266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1293
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28290,7 +28280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1294
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28304,7 +28294,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1295
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28318,7 +28308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1298
+   i32.const 1295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28332,7 +28322,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1299
+   i32.const 1296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28346,7 +28336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1300
+   i32.const 1297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28360,7 +28350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1301
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28374,7 +28364,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1302
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28389,7 +28379,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1303
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28403,7 +28393,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1304
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28417,7 +28407,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1305
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28431,7 +28421,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1306
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28445,7 +28435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1307
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28459,7 +28449,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1308
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28473,7 +28463,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1311
+   i32.const 1308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28488,7 +28478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1312
+   i32.const 1309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28505,7 +28495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1314
+   i32.const 1311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28522,7 +28512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1321
+   i32.const 1318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28540,7 +28530,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1322
+   i32.const 1319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28558,7 +28548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1329
+   i32.const 1326
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28575,7 +28565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1336
+   i32.const 1333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28594,7 +28584,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1343
+   i32.const 1340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28611,7 +28601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1350
+   i32.const 1347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28628,7 +28618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1357
+   i32.const 1354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28645,7 +28635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1364
+   i32.const 1361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28662,7 +28652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1370
+   i32.const 1367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28679,7 +28669,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1376
+   i32.const 1373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28696,7 +28686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1382
+   i32.const 1379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28713,7 +28703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1389
+   i32.const 1386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28730,7 +28720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1396
+   i32.const 1393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28747,7 +28737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1403
+   i32.const 1400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28764,7 +28754,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1410
+   i32.const 1407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28781,7 +28771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1417
+   i32.const 1414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28798,7 +28788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1424
+   i32.const 1421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28815,7 +28805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1431
+   i32.const 1428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28832,7 +28822,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1438
+   i32.const 1435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28846,7 +28836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1452
+   i32.const 1449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28860,7 +28850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1453
+   i32.const 1450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28874,7 +28864,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1454
+   i32.const 1451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28888,7 +28878,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1455
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28902,7 +28892,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1456
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28916,7 +28906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1457
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28930,7 +28920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1458
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28944,7 +28934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1459
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28958,7 +28948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1460
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28972,7 +28962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1461
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28986,7 +28976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1464
+   i32.const 1461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29000,7 +28990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1465
+   i32.const 1462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29014,7 +29004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1466
+   i32.const 1463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29028,7 +29018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1467
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29042,7 +29032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1468
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29057,7 +29047,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1469
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29071,7 +29061,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1470
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29085,7 +29075,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1471
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29101,7 +29091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1472
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29117,7 +29107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1473
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29133,7 +29123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1474
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29147,7 +29137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1475
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29161,7 +29151,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1476
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29175,7 +29165,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1477
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29189,7 +29179,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1489
+   i32.const 1486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29203,7 +29193,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1490
+   i32.const 1487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29217,7 +29207,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1491
+   i32.const 1488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29231,7 +29221,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1492
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29245,7 +29235,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1493
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29259,7 +29249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1494
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29273,7 +29263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1495
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29287,7 +29277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1496
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29301,7 +29291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1497
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29315,7 +29305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1498
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29329,7 +29319,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1501
+   i32.const 1498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29343,7 +29333,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1502
+   i32.const 1499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29357,7 +29347,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1503
+   i32.const 1500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29371,7 +29361,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1504
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29385,7 +29375,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1505
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29400,7 +29390,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1506
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29414,7 +29404,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1507
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29430,7 +29420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1508
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29446,7 +29436,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1509
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29460,7 +29450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1518
+   i32.const 1515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29474,7 +29464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1519
+   i32.const 1516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29488,7 +29478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1520
+   i32.const 1517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29502,7 +29492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1521
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29516,7 +29506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1522
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29530,7 +29520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1523
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29544,7 +29534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1524
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29558,7 +29548,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1525
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29572,7 +29562,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1526
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29586,7 +29576,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1527
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29600,7 +29590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1530
+   i32.const 1527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29614,7 +29604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1531
+   i32.const 1528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29628,7 +29618,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1532
+   i32.const 1529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29642,7 +29632,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1533
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29656,7 +29646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1534
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29671,7 +29661,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1535
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29685,7 +29675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1536
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29702,7 +29692,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1548
+   i32.const 1545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29719,7 +29709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1549
+   i32.const 1546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29736,7 +29726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1550
+   i32.const 1547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29753,7 +29743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1551
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29770,7 +29760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1552
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29787,7 +29777,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1553
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29804,7 +29794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1554
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29821,7 +29811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1555
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29838,7 +29828,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1556
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29855,7 +29845,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1557
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29870,7 +29860,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1560
+   i32.const 1557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29885,7 +29875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1561
+   i32.const 1558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29900,7 +29890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1562
+   i32.const 1559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29915,7 +29905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1563
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29929,7 +29919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1564
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29944,7 +29934,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1565
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29958,7 +29948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1566
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29975,7 +29965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1567
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29992,7 +29982,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1568
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30008,7 +29998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1569
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30027,7 +30017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1570
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30043,7 +30033,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1571
+   i32.const 1568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30060,7 +30050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1572
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30077,7 +30067,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1573
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30094,7 +30084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1574
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30111,7 +30101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1575
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30130,7 +30120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1576
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30146,7 +30136,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1577
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30165,7 +30155,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1578
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30181,7 +30171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1579
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30197,7 +30187,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1580
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30213,7 +30203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1581
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30232,7 +30222,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1582
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30250,7 +30240,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1583
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30267,7 +30257,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1584
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30287,7 +30277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1595
+   i32.const 1592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30307,7 +30297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1596
+   i32.const 1593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30327,7 +30317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1597
+   i32.const 1594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30347,7 +30337,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1598
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30367,7 +30357,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1599
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30387,7 +30377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1600
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30407,7 +30397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1601
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30427,7 +30417,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1602
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30447,7 +30437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1603
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30467,7 +30457,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1604
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30481,7 +30471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1616
+   i32.const 1613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30495,7 +30485,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1617
+   i32.const 1614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30509,7 +30499,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1618
+   i32.const 1615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30523,7 +30513,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1619
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30537,7 +30527,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1620
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30551,7 +30541,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1621
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30565,7 +30555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1622
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30579,7 +30569,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1623
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30593,7 +30583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1624
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30607,7 +30597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1625
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30621,7 +30611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1628
+   i32.const 1625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30635,7 +30625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1629
+   i32.const 1626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30651,7 +30641,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1630
+   i32.const 1627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30665,7 +30655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1631
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30679,7 +30669,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1632
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30693,7 +30683,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1633
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30707,7 +30697,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1634
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30721,7 +30711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1635
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30735,7 +30725,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1636
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30749,7 +30739,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1637
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30763,7 +30753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1638
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30777,7 +30767,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1639
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30791,7 +30781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1640
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30805,7 +30795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1641
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30819,7 +30809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1642
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30833,7 +30823,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1651
+   i32.const 1648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30847,7 +30837,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1652
+   i32.const 1649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30861,7 +30851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1653
+   i32.const 1650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30875,7 +30865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1654
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30889,7 +30879,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1655
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30903,7 +30893,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1656
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30917,7 +30907,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1657
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30931,7 +30921,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1658
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30945,7 +30935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1659
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30959,7 +30949,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1660
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30973,7 +30963,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1663
+   i32.const 1660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30987,7 +30977,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1664
+   i32.const 1661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31003,7 +30993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1665
+   i32.const 1662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31017,7 +31007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1666
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31031,7 +31021,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1667
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31045,7 +31035,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1668
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31059,7 +31049,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1669
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31073,7 +31063,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1670
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31087,7 +31077,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1671
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31101,7 +31091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1672
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31115,7 +31105,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1673
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31129,7 +31119,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1674
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31143,7 +31133,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1675
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31157,7 +31147,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1676
+   i32.const 1673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31171,7 +31161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1677
+   i32.const 1674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31186,7 +31176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1691
+   i32.const 1688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31201,7 +31191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1692
+   i32.const 1689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31216,7 +31206,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1693
+   i32.const 1690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31231,7 +31221,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1694
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31246,7 +31236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1695
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31261,7 +31251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1696
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31276,7 +31266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1697
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31291,7 +31281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1698
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31306,7 +31296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1699
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31321,7 +31311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1700
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31336,7 +31326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1703
+   i32.const 1700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31351,7 +31341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1704
+   i32.const 1701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31366,7 +31356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1705
+   i32.const 1702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31381,7 +31371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1706
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31396,7 +31386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1707
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31411,7 +31401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1708
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31426,7 +31416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1709
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31441,7 +31431,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1710
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31456,7 +31446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1711
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31471,7 +31461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1712
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31486,7 +31476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1713
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31501,7 +31491,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1714
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31516,7 +31506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1715
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31532,7 +31522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1716
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31548,7 +31538,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1717
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31564,7 +31554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1718
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31580,7 +31570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1719
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31595,7 +31585,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1720
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31610,7 +31600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1721
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31625,7 +31615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1722
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31640,7 +31630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1723
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31655,7 +31645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1732
+   i32.const 1729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31670,7 +31660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1733
+   i32.const 1730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31685,7 +31675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1734
+   i32.const 1731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31700,7 +31690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1735
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31715,7 +31705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1736
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31730,7 +31720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1737
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31745,7 +31735,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1738
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31760,7 +31750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1739
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31775,7 +31765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1740
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31790,7 +31780,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1741
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31805,7 +31795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1744
+   i32.const 1741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31820,7 +31810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1745
+   i32.const 1742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31835,7 +31825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1746
+   i32.const 1743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31850,7 +31840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1747
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31865,7 +31855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1748
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31880,7 +31870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1749
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31895,7 +31885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1750
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31910,7 +31900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1751
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31925,7 +31915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1752
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31940,7 +31930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1753
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31955,7 +31945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1754
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31970,7 +31960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1755
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31985,7 +31975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1756
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32001,7 +31991,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1757
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32017,7 +32007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1758
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32033,7 +32023,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1759
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32049,7 +32039,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1760
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32064,7 +32054,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1761
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32079,7 +32069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1762
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32093,7 +32083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1774
+   i32.const 1771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32107,7 +32097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1775
+   i32.const 1772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32121,7 +32111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1776
+   i32.const 1773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32135,7 +32125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1777
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32149,7 +32139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1778
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32163,7 +32153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1779
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32177,7 +32167,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1780
+   i32.const 1777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32191,7 +32181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1781
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32205,7 +32195,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1782
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32219,7 +32209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1783
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32234,7 +32224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1786
+   i32.const 1783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32249,7 +32239,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1787
+   i32.const 1784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32263,7 +32253,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1788
+   i32.const 1785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32277,7 +32267,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1789
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32291,7 +32281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1790
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32305,7 +32295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1791
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32320,7 +32310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1792
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32334,7 +32324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1793
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32349,7 +32339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1802
+   i32.const 1799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32364,7 +32354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1803
+   i32.const 1800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32378,7 +32368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1804
+   i32.const 1801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32392,7 +32382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1805
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32406,7 +32396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1806
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32420,7 +32410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1807
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32435,7 +32425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1808
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32449,7 +32439,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1809
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32464,7 +32454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1812
+   i32.const 1809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32479,7 +32469,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1813
+   i32.const 1810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32493,7 +32483,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1814
+   i32.const 1811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32507,7 +32497,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1815
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32521,7 +32511,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1816
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32535,7 +32525,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1817
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32550,7 +32540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1818
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32564,7 +32554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1819
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32578,7 +32568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1831
+   i32.const 1828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32592,7 +32582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1832
+   i32.const 1829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32606,7 +32596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1833
+   i32.const 1830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32620,7 +32610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1834
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32634,7 +32624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1835
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32648,7 +32638,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1836
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32662,7 +32652,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1837
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32676,7 +32666,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1838
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32690,7 +32680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1839
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32704,7 +32694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1840
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32719,7 +32709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1843
+   i32.const 1840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32734,7 +32724,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1844
+   i32.const 1841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32748,7 +32738,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1845
+   i32.const 1842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32762,7 +32752,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1846
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32776,7 +32766,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1847
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32790,7 +32780,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1848
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32805,7 +32795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1849
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32819,7 +32809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1850
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32833,7 +32823,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1859
+   i32.const 1856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32847,7 +32837,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1860
+   i32.const 1857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32861,7 +32851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1861
+   i32.const 1858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32875,7 +32865,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1862
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32889,7 +32879,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1863
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32903,7 +32893,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1864
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32917,7 +32907,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1865
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32931,7 +32921,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1866
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32945,7 +32935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1867
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32959,7 +32949,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1868
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32974,7 +32964,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1871
+   i32.const 1868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32989,7 +32979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1872
+   i32.const 1869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33003,7 +32993,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1873
+   i32.const 1870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33017,7 +33007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1874
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33031,7 +33021,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1875
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33045,7 +33035,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1876
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33060,7 +33050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1877
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33074,7 +33064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1878
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33088,7 +33078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1890
+   i32.const 1887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33102,7 +33092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1891
+   i32.const 1888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33116,7 +33106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1892
+   i32.const 1889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33130,7 +33120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1893
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33144,7 +33134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1894
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33158,7 +33148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1895
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33172,7 +33162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1896
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33186,7 +33176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1897
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33200,7 +33190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1898
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33214,7 +33204,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1899
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33228,7 +33218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1902
+   i32.const 1899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33242,7 +33232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1903
+   i32.const 1900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33256,7 +33246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1904
+   i32.const 1901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33270,7 +33260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1905
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33285,7 +33275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1906
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33299,7 +33289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1907
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33314,7 +33304,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1908
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33328,7 +33318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1909
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33342,7 +33332,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1918
+   i32.const 1915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33356,7 +33346,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1919
+   i32.const 1916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33370,7 +33360,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1920
+   i32.const 1917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33384,7 +33374,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1921
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33398,7 +33388,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1922
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33412,7 +33402,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1923
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33426,7 +33416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1924
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33440,7 +33430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1925
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33454,7 +33444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1926
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33468,7 +33458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1927
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33482,7 +33472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1930
+   i32.const 1927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33496,7 +33486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1931
+   i32.const 1928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33510,7 +33500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1932
+   i32.const 1929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33524,7 +33514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1933
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33539,7 +33529,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1934
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33553,7 +33543,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1935
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33568,7 +33558,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1936
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33582,7 +33572,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1937
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33598,7 +33588,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1938
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33612,7 +33602,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1950
+   i32.const 1947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33626,7 +33616,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1951
+   i32.const 1948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33640,7 +33630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1952
+   i32.const 1949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33654,7 +33644,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1953
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33668,7 +33658,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1954
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33682,7 +33672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1955
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33696,7 +33686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1956
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33710,7 +33700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1957
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33724,7 +33714,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1958
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33738,7 +33728,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1959
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33753,7 +33743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1962
+   i32.const 1959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33768,7 +33758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1963
+   i32.const 1960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33782,7 +33772,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1964
+   i32.const 1961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33796,7 +33786,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1965
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33810,7 +33800,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1966
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33824,7 +33814,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1967
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33839,7 +33829,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1968
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33853,7 +33843,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1969
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33867,7 +33857,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1978
+   i32.const 1975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33881,7 +33871,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1979
+   i32.const 1976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33895,7 +33885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1980
+   i32.const 1977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33909,7 +33899,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1981
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33923,7 +33913,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1982
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33937,7 +33927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1983
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33951,7 +33941,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1984
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33965,7 +33955,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1985
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33979,7 +33969,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1986
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33993,7 +33983,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1987
+   i32.const 1984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34008,7 +33998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1990
+   i32.const 1987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34023,7 +34013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1991
+   i32.const 1988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34037,7 +34027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1992
+   i32.const 1989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34051,7 +34041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1993
+   i32.const 1990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34065,7 +34055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1994
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34079,7 +34069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1995
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34094,7 +34084,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1996
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34108,7 +34098,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 1997
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34123,7 +34113,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2009
+   i32.const 2006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34138,7 +34128,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2010
+   i32.const 2007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34153,7 +34143,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2011
+   i32.const 2008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34168,7 +34158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2012
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34183,7 +34173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2013
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34198,7 +34188,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2014
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34213,7 +34203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2015
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34228,7 +34218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2016
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34243,7 +34233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2017
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34258,7 +34248,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2018
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34273,7 +34263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2021
+   i32.const 2018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34288,7 +34278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2022
+   i32.const 2019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34303,7 +34293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2023
+   i32.const 2020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34318,7 +34308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2024
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34333,7 +34323,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2025
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34348,7 +34338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2026
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34363,7 +34353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2027
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34379,7 +34369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2028
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34394,7 +34384,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2029
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34409,7 +34399,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2030
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34424,7 +34414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2031
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34439,7 +34429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2032
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34454,7 +34444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2033
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34469,7 +34459,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2034
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34484,7 +34474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2035
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34499,7 +34489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2036
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34515,7 +34505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2037
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34530,7 +34520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2038
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34545,7 +34535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2039
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34560,7 +34550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2040
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34575,7 +34565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2041
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34591,7 +34581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2042
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34606,7 +34596,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2043
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34621,7 +34611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2044
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34636,7 +34626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2045
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34651,7 +34641,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2046
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34667,7 +34657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2047
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34682,7 +34672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2048
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34697,7 +34687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2049
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34712,7 +34702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2050
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34727,7 +34717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2051
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34743,7 +34733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2052
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34758,7 +34748,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2053
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34773,7 +34763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2054
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34788,7 +34778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2055
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34804,7 +34794,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2056
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34819,7 +34809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2057
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34834,7 +34824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2058
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34849,7 +34839,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2059
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34864,7 +34854,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2060
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34880,7 +34870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2061
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34896,7 +34886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2062
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34912,7 +34902,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2063
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34927,7 +34917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2064
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34942,7 +34932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2065
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34957,7 +34947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2066
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34972,7 +34962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2067
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34987,7 +34977,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2068
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35002,7 +34992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2069
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35018,7 +35008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2070
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35034,7 +35024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2071
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35050,7 +35040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2072
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35066,7 +35056,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2073
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35084,7 +35074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2074
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35099,7 +35089,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2075
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35114,7 +35104,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2076
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35129,7 +35119,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2077
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35144,7 +35134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2078
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35159,7 +35149,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2087
+   i32.const 2084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35174,7 +35164,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2088
+   i32.const 2085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35189,7 +35179,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2089
+   i32.const 2086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35204,7 +35194,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2090
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35219,7 +35209,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2091
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35234,7 +35224,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2092
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35249,7 +35239,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2093
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35264,7 +35254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2094
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35279,7 +35269,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2095
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35294,7 +35284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2096
+   i32.const 2093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35309,7 +35299,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2099
+   i32.const 2096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35324,7 +35314,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2100
+   i32.const 2097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35339,7 +35329,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2101
+   i32.const 2098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35354,7 +35344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2102
+   i32.const 2099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35369,7 +35359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2103
+   i32.const 2100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35384,7 +35374,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2104
+   i32.const 2101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35399,7 +35389,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2105
+   i32.const 2102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35415,7 +35405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2106
+   i32.const 2103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35430,7 +35420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2107
+   i32.const 2104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35445,7 +35435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2108
+   i32.const 2105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35460,7 +35450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2109
+   i32.const 2106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35475,7 +35465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2110
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35490,7 +35480,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2111
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35505,7 +35495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2112
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35520,7 +35510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2113
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35535,7 +35525,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2114
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35551,7 +35541,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2115
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35566,7 +35556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2116
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35581,7 +35571,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2117
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35596,7 +35586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2118
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35611,7 +35601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2119
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35627,7 +35617,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2120
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35642,7 +35632,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2121
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35657,7 +35647,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2122
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35672,7 +35662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2123
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35687,7 +35677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2124
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35703,7 +35693,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2125
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35718,7 +35708,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2126
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35733,7 +35723,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2127
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35748,7 +35738,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2128
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35763,7 +35753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2129
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35779,7 +35769,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2130
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35794,7 +35784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2131
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35809,7 +35799,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2132
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35824,7 +35814,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2133
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35840,7 +35830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2134
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35855,7 +35845,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2135
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35870,7 +35860,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2136
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35885,7 +35875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2137
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35900,7 +35890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2138
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35916,7 +35906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2139
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35932,7 +35922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2140
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35948,7 +35938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2141
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35963,7 +35953,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2142
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35978,7 +35968,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2143
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35993,7 +35983,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2144
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36008,7 +35998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2145
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36023,7 +36013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2146
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36038,7 +36028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2147
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36054,7 +36044,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2148
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36070,7 +36060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2149
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36086,7 +36076,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2150
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36102,7 +36092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2151
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36120,7 +36110,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2152
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36135,7 +36125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2153
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36150,7 +36140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2154
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36165,7 +36155,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2155
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36180,7 +36170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2156
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36195,7 +36185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2168
+   i32.const 2165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36210,7 +36200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2169
+   i32.const 2166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36225,7 +36215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2170
+   i32.const 2167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36240,7 +36230,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2171
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36255,7 +36245,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2172
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36270,7 +36260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2173
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36285,7 +36275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2174
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36300,7 +36290,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2175
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36315,7 +36305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2176
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36330,7 +36320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2177
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36345,7 +36335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2180
+   i32.const 2177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36360,7 +36350,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2181
+   i32.const 2178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36375,7 +36365,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2182
+   i32.const 2179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36390,7 +36380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2183
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36405,7 +36395,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2184
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36420,7 +36410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2185
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36435,7 +36425,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2186
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36452,7 +36442,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2187
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36467,7 +36457,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2188
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36482,7 +36472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2189
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36497,7 +36487,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2190
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36512,7 +36502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2191
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36527,7 +36517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2192
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36542,7 +36532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2193
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36557,7 +36547,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2194
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36572,7 +36562,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2195
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36589,7 +36579,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2196
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36604,7 +36594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2197
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36619,7 +36609,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2198
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36634,7 +36624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2199
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36649,7 +36639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2200
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36666,7 +36656,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2201
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36681,7 +36671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2202
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36696,7 +36686,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2203
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36711,7 +36701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2204
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36726,7 +36716,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2205
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36743,7 +36733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2206
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36758,7 +36748,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2207
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36773,7 +36763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2208
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36788,7 +36778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2209
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36803,7 +36793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2210
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36820,7 +36810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2211
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36835,7 +36825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2212
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36850,7 +36840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2213
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36865,7 +36855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2214
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36882,7 +36872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2215
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36897,7 +36887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2216
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36912,7 +36902,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2217
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36927,7 +36917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2218
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36942,7 +36932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2219
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36959,7 +36949,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2220
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36976,7 +36966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2221
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36992,7 +36982,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2222
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37007,7 +36997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2223
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37022,7 +37012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2224
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37037,7 +37027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2225
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37052,7 +37042,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2226
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37067,7 +37057,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2227
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37082,7 +37072,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2228
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37099,7 +37089,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2229
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37116,7 +37106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2230
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37133,7 +37123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2231
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37150,7 +37140,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2232
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37168,7 +37158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2233
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37183,7 +37173,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2234
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37198,7 +37188,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2235
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37213,7 +37203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2236
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37228,7 +37218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2237
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37243,7 +37233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2246
+   i32.const 2243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37258,7 +37248,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2247
+   i32.const 2244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37273,7 +37263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2248
+   i32.const 2245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37288,7 +37278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2249
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37303,7 +37293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2250
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37318,7 +37308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2251
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37333,7 +37323,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2252
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37348,7 +37338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2253
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37363,7 +37353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2254
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37378,7 +37368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2255
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37393,7 +37383,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2258
+   i32.const 2255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37408,7 +37398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2259
+   i32.const 2256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37423,7 +37413,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2260
+   i32.const 2257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37438,7 +37428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2261
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37453,7 +37443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2262
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37468,7 +37458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2263
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37483,7 +37473,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2264
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37500,7 +37490,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2265
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37515,7 +37505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2266
+   i32.const 2263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37530,7 +37520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2267
+   i32.const 2264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37545,7 +37535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2268
+   i32.const 2265
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37560,7 +37550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2269
+   i32.const 2266
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37575,7 +37565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2270
+   i32.const 2267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37590,7 +37580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2271
+   i32.const 2268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37605,7 +37595,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2272
+   i32.const 2269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37620,7 +37610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2273
+   i32.const 2270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37637,7 +37627,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2274
+   i32.const 2271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37652,7 +37642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2275
+   i32.const 2272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37667,7 +37657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2276
+   i32.const 2273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37682,7 +37672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2277
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37697,7 +37687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2278
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37714,7 +37704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2279
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37729,7 +37719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2280
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37744,7 +37734,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2281
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37759,7 +37749,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2282
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37774,7 +37764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2283
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37791,7 +37781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2284
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37806,7 +37796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2285
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37821,7 +37811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2286
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37836,7 +37826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2287
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37851,7 +37841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2288
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37868,7 +37858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2289
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37883,7 +37873,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2290
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37898,7 +37888,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2291
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37913,7 +37903,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2292
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37930,7 +37920,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2293
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37945,7 +37935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2294
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37960,7 +37950,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2295
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37975,7 +37965,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2296
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37990,7 +37980,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2297
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38007,7 +37997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2298
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38024,7 +38014,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2299
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38040,7 +38030,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2300
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38055,7 +38045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2301
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38070,7 +38060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2302
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38085,7 +38075,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2303
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38100,7 +38090,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2304
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38115,7 +38105,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2305
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38130,7 +38120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2306
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38147,7 +38137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2307
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38164,7 +38154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2308
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38181,7 +38171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2309
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38198,7 +38188,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2310
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38216,7 +38206,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2311
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38231,7 +38221,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2312
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38246,7 +38236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2313
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38261,7 +38251,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2314
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38276,7 +38266,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2315
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38291,7 +38281,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2329
+   i32.const 2326
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38306,7 +38296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2330
+   i32.const 2327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38321,7 +38311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2331
+   i32.const 2328
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38336,7 +38326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2332
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38351,7 +38341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2333
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38366,7 +38356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2334
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38381,7 +38371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2335
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38396,7 +38386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2336
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38411,7 +38401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2337
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38426,7 +38416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2338
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38441,7 +38431,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2341
+   i32.const 2338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38456,7 +38446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2342
+   i32.const 2339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38471,7 +38461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2343
+   i32.const 2340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38486,7 +38476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2344
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38501,7 +38491,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2345
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38516,7 +38506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2346
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38531,7 +38521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2347
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38546,7 +38536,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2348
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38561,7 +38551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2349
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38576,7 +38566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2350
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38591,7 +38581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2351
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38607,7 +38597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2352
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38622,7 +38612,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2353
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38637,7 +38627,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2354
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38652,7 +38642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2355
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38667,7 +38657,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2356
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38682,7 +38672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2357
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38697,7 +38687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2358
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38712,7 +38702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2359
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38727,7 +38717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2360
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38742,7 +38732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2361
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38757,7 +38747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2362
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38772,7 +38762,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2363
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38787,7 +38777,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2364
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38803,7 +38793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2365
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38818,7 +38808,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2366
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38833,7 +38823,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2367
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38848,7 +38838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2368
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38863,7 +38853,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2369
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38879,7 +38869,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2370
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38894,7 +38884,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2371
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38909,7 +38899,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2372
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38924,7 +38914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2373
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38939,7 +38929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2374
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38955,7 +38945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2375
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38970,7 +38960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2376
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38985,7 +38975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2377
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39000,7 +38990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2378
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39015,7 +39005,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2379
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39031,7 +39021,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2380
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39046,7 +39036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2381
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39061,7 +39051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2382
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39076,7 +39066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2383
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39092,7 +39082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2384
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39107,7 +39097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2385
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39122,7 +39112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2386
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39137,7 +39127,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2387
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39152,7 +39142,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2388
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39168,7 +39158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2389
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39184,7 +39174,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2390
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39200,7 +39190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2391
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39215,7 +39205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2392
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39230,7 +39220,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2393
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39245,7 +39235,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2394
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39260,7 +39250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2395
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39275,7 +39265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2396
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39290,7 +39280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2397
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39306,7 +39296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2398
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39322,7 +39312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2399
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39338,7 +39328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2400
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39354,7 +39344,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2401
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39371,7 +39361,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2402
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39386,7 +39376,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2403
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39401,7 +39391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2404
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39416,7 +39406,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2405
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39431,7 +39421,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2406
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39448,7 +39438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2409
+   i32.const 2406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39465,7 +39455,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2410
+   i32.const 2407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39482,7 +39472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2411
+   i32.const 2408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39499,7 +39489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2412
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39516,7 +39506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2413
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39533,7 +39523,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2414
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39550,7 +39540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2415
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39567,7 +39557,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2416
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39584,7 +39574,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2419
+   i32.const 2416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39601,7 +39591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2420
+   i32.const 2417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39618,7 +39608,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2421
+   i32.const 2418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39635,7 +39625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2422
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39652,7 +39642,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2423
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39669,7 +39659,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2424
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39686,7 +39676,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2425
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39703,7 +39693,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2426
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39721,7 +39711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2429
+   i32.const 2426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39739,7 +39729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2430
+   i32.const 2427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39757,7 +39747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2432
+   i32.const 2429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39775,7 +39765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2433
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39793,7 +39783,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2435
+   i32.const 2432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39811,7 +39801,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2436
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39829,7 +39819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2438
+   i32.const 2435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39847,7 +39837,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2439
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39865,7 +39855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2441
+   i32.const 2438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39883,7 +39873,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2442
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39901,7 +39891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2444
+   i32.const 2441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39919,7 +39909,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2445
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39937,7 +39927,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2447
+   i32.const 2444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39955,7 +39945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2448
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39973,7 +39963,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2450
+   i32.const 2447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39991,7 +39981,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2451
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40009,7 +39999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2453
+   i32.const 2450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40027,7 +40017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2454
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40043,7 +40033,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2456
+   i32.const 2453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40059,7 +40049,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2457
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40075,7 +40065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2458
+   i32.const 2455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40091,7 +40081,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2459
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40107,7 +40097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2460
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40123,7 +40113,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2461
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40139,7 +40129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2462
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40155,7 +40145,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2463
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40173,7 +40163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2465
+   i32.const 2462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40191,7 +40181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2466
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40209,7 +40199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2467
+   i32.const 2464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40227,7 +40217,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2468
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40245,7 +40235,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2469
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40263,7 +40253,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2470
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40281,7 +40271,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2471
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40299,7 +40289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2472
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40317,7 +40307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2473
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40335,7 +40325,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2474
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40353,7 +40343,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2475
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40371,7 +40361,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2476
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40389,7 +40379,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2477
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40407,7 +40397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2478
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40425,7 +40415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2479
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40443,7 +40433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2480
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40461,7 +40451,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2481
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40479,7 +40469,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2482
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40497,7 +40487,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2483
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40515,7 +40505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2484
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40530,7 +40520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2493
+   i32.const 2490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40545,7 +40535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2494
+   i32.const 2491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40560,7 +40550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2495
+   i32.const 2492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40575,7 +40565,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2496
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40590,7 +40580,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2497
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40605,7 +40595,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2498
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40620,7 +40610,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2499
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40635,7 +40625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2500
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40650,7 +40640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2501
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40665,7 +40655,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2502
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40680,7 +40670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2505
+   i32.const 2502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40695,7 +40685,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2506
+   i32.const 2503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40710,7 +40700,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2507
+   i32.const 2504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40725,7 +40715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2508
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40740,7 +40730,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2509
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40755,7 +40745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2510
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40770,7 +40760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2511
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40785,7 +40775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2512
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40800,7 +40790,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2513
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40815,7 +40805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2514
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40830,7 +40820,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2515
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40846,7 +40836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2516
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40861,7 +40851,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2517
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40876,7 +40866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2518
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40891,7 +40881,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2519
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40906,7 +40896,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2520
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40921,7 +40911,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2521
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40936,7 +40926,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2522
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40951,7 +40941,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2523
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40966,7 +40956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2524
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40981,7 +40971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2525
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40996,7 +40986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2526
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41011,7 +41001,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2527
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41026,7 +41016,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2528
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41042,7 +41032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2529
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41057,7 +41047,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2530
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41072,7 +41062,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2531
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41087,7 +41077,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2532
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41102,7 +41092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2533
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41118,7 +41108,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2534
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41133,7 +41123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2535
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41148,7 +41138,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2536
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41163,7 +41153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2537
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41178,7 +41168,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2538
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41194,7 +41184,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2539
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41209,7 +41199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2540
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41224,7 +41214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2541
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41239,7 +41229,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2542
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41254,7 +41244,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2543
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41270,7 +41260,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2544
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41285,7 +41275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2545
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41300,7 +41290,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2546
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41315,7 +41305,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2547
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41331,7 +41321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2548
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41346,7 +41336,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2549
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41361,7 +41351,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2550
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41376,7 +41366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2551
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41391,7 +41381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2552
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41407,7 +41397,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2553
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41423,7 +41413,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2554
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41439,7 +41429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2555
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41454,7 +41444,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2556
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41469,7 +41459,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2557
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41484,7 +41474,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2558
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41499,7 +41489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2559
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41514,7 +41504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2560
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41529,7 +41519,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2561
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41545,7 +41535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2562
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41561,7 +41551,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2563
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41577,7 +41567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2564
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41593,7 +41583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2565
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41610,7 +41600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2566
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41625,7 +41615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2567
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41640,7 +41630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2568
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41655,7 +41645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2569
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41670,7 +41660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2570
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41685,7 +41675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2582
+   i32.const 2579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41700,7 +41690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2583
+   i32.const 2580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41715,7 +41705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2584
+   i32.const 2581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41730,7 +41720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2585
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41745,7 +41735,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2586
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41760,7 +41750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2587
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41775,7 +41765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2588
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41790,7 +41780,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2589
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41805,7 +41795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2590
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41820,7 +41810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2591
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41835,7 +41825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2594
+   i32.const 2591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41850,7 +41840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2595
+   i32.const 2592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41865,7 +41855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2596
+   i32.const 2593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41880,7 +41870,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2597
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41895,7 +41885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2598
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41910,7 +41900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2599
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41925,7 +41915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2600
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41940,7 +41930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2601
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41955,7 +41945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2602
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41970,7 +41960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2603
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41985,7 +41975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2604
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42000,7 +41990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2605
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42015,7 +42005,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2606
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42031,7 +42021,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2607
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42046,7 +42036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2608
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42061,7 +42051,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2609
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42076,7 +42066,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2610
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42091,7 +42081,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2611
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42106,7 +42096,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2612
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42121,7 +42111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2613
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42136,7 +42126,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2614
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42151,7 +42141,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2615
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42166,7 +42156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2616
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42182,7 +42172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2617
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42197,7 +42187,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2618
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42213,7 +42203,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2619
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42228,7 +42218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2620
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42244,7 +42234,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2621
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42259,7 +42249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2622
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42274,7 +42264,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2623
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42290,7 +42280,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2624
+   i32.const 2621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42305,7 +42295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2625
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42320,7 +42310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2626
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42335,7 +42325,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2627
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42350,7 +42340,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2628
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42365,7 +42355,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2629
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42381,7 +42371,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2630
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42396,7 +42386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2631
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42411,7 +42401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2632
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42426,7 +42416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2633
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42441,7 +42431,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2634
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42456,7 +42446,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2635
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42472,7 +42462,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2636
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42487,7 +42477,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2637
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42502,7 +42492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2638
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42517,7 +42507,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2639
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42532,7 +42522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2640
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42547,7 +42537,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2641
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42562,7 +42552,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2642
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42577,7 +42567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2643
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42593,7 +42583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2644
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42608,7 +42598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2645
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42623,7 +42613,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2646
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42638,7 +42628,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2647
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42653,7 +42643,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2648
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42668,7 +42658,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2649
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42683,7 +42673,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2650
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42698,7 +42688,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2651
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42713,7 +42703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2652
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42728,7 +42718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2653
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42744,7 +42734,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2654
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42759,7 +42749,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2655
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42774,7 +42764,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2656
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42790,7 +42780,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2657
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42805,7 +42795,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2658
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42820,7 +42810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2659
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42836,7 +42826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2660
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42851,7 +42841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2661
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42866,7 +42856,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2662
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42881,7 +42871,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2663
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42897,7 +42887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2664
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42912,7 +42902,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2665
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42927,7 +42917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2666
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42942,7 +42932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2667
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42957,7 +42947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2668
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42972,7 +42962,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2669
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42987,7 +42977,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2670
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43002,7 +42992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2671
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43018,7 +43008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2672
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43034,7 +43024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2673
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43051,7 +43041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2674
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43068,7 +43058,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2675
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43084,7 +43074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2676
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43101,7 +43091,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2677
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43117,7 +43107,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2678
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43133,7 +43123,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2679
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43149,7 +43139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2680
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43165,7 +43155,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2681
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43180,7 +43170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2682
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43195,7 +43185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2683
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43210,7 +43200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2684
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43225,7 +43215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2685
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43256,7 +43246,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2688
+   i32.const 2685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43287,7 +43277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2689
+   i32.const 2686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43318,7 +43308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2690
+   i32.const 2687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43349,7 +43339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2691
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43380,7 +43370,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2692
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43411,7 +43401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2693
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43443,7 +43433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2694
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43474,7 +43464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2695
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43505,7 +43495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2697
+   i32.const 2694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43536,7 +43526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2698
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43567,7 +43557,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2699
+   i32.const 2696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43598,7 +43588,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2700
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43631,7 +43621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2701
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43663,7 +43653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2702
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43694,7 +43684,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2704
+   i32.const 2701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43726,7 +43716,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2705
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43757,7 +43747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2706
+   i32.const 2703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43788,7 +43778,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2707
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43819,7 +43809,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2708
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43850,7 +43840,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2709
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43882,7 +43872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2710
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43914,7 +43904,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2711
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43945,7 +43935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2713
+   i32.const 2710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43976,7 +43966,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2714
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44007,7 +43997,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2715
+   i32.const 2712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44038,7 +44028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2716
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44069,7 +44059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2717
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44100,7 +44090,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2718
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44132,7 +44122,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2719
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44164,7 +44154,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2720
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44195,7 +44185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2722
+   i32.const 2719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44226,7 +44216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2723
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44258,7 +44248,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2724
+   i32.const 2721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44289,7 +44279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2725
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44320,7 +44310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2726
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44351,7 +44341,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2727
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44383,7 +44373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2728
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44415,7 +44405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2729
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44430,7 +44420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2738
+   i32.const 2735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44445,7 +44435,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2739
+   i32.const 2736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44460,7 +44450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2740
+   i32.const 2737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44475,7 +44465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2741
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44490,7 +44480,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2742
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44505,7 +44495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2743
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44520,7 +44510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2744
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44535,7 +44525,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2745
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44550,7 +44540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2746
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44565,7 +44555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2747
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44580,7 +44570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2750
+   i32.const 2747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44595,7 +44585,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2751
+   i32.const 2748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44610,7 +44600,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2752
+   i32.const 2749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44625,7 +44615,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2753
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44640,7 +44630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2754
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44655,7 +44645,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2755
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44670,7 +44660,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2756
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44685,7 +44675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2757
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44700,7 +44690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2758
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44715,7 +44705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2759
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44730,7 +44720,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2760
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44745,7 +44735,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2761
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44760,7 +44750,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2762
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44776,7 +44766,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2763
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44791,7 +44781,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2764
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44806,7 +44796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2765
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44821,7 +44811,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2766
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44836,7 +44826,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2767
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44851,7 +44841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2768
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44866,7 +44856,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2769
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44881,7 +44871,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2770
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44896,7 +44886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2771
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44911,7 +44901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2772
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44927,7 +44917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2773
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44942,7 +44932,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2774
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44958,7 +44948,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2775
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44973,7 +44963,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2776
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44989,7 +44979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2777
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45004,7 +44994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2778
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45019,7 +45009,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2779
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45035,7 +45025,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2780
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45050,7 +45040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2781
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45065,7 +45055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2782
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45080,7 +45070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2783
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45095,7 +45085,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2784
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45110,7 +45100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2785
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45126,7 +45116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2786
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45141,7 +45131,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2787
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45156,7 +45146,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2788
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45171,7 +45161,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2789
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45186,7 +45176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2790
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45201,7 +45191,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2791
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45217,7 +45207,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2792
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45232,7 +45222,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2793
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45247,7 +45237,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2794
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45262,7 +45252,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2795
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45277,7 +45267,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2796
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45292,7 +45282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2797
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45307,7 +45297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2798
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45322,7 +45312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2799
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45338,7 +45328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2800
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45353,7 +45343,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2801
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45368,7 +45358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2802
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45383,7 +45373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2803
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45398,7 +45388,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2804
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45413,7 +45403,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2805
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45428,7 +45418,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2806
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45443,7 +45433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2807
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45458,7 +45448,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2808
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45473,7 +45463,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2809
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45489,7 +45479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2810
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45504,7 +45494,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2811
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45519,7 +45509,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2812
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45535,7 +45525,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2813
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45550,7 +45540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2814
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45565,7 +45555,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2815
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45581,7 +45571,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2816
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45596,7 +45586,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2817
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45611,7 +45601,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2818
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45626,7 +45616,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2819
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45642,7 +45632,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2820
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45657,7 +45647,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2821
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45672,7 +45662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2822
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45687,7 +45677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2823
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45702,7 +45692,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2824
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45717,7 +45707,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2825
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45732,7 +45722,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2826
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45747,7 +45737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2827
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45763,7 +45753,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2828
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45779,7 +45769,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2829
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45796,7 +45786,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2830
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45813,7 +45803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2831
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45829,7 +45819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2832
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45846,7 +45836,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2833
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45862,7 +45852,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2834
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45878,7 +45868,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2835
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45894,7 +45884,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2836
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45910,7 +45900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2837
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45925,7 +45915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2838
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45940,7 +45930,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2839
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45955,7 +45945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2840
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45970,7 +45960,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2841
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45985,7 +45975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2844
+   i32.const 2841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46000,7 +45990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2845
+   i32.const 2842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46017,7 +46007,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2846
+   i32.const 2843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46034,7 +46024,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2847
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46051,7 +46041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2848
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46068,7 +46058,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2849
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46084,7 +46074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2851
+   i32.const 2848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46100,7 +46090,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2852
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46116,7 +46106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2853
+   i32.const 2850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46132,7 +46122,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2854
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46147,7 +46137,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2855
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46163,7 +46153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2856
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46182,7 +46172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2858
+   i32.const 2855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46200,7 +46190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2860
+   i32.const 2857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46218,7 +46208,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2861
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46236,7 +46226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2862
+   i32.const 2859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46254,7 +46244,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2863
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46273,7 +46263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2865
+   i32.const 2862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46292,7 +46282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2866
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46311,7 +46301,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2867
+   i32.const 2864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46330,7 +46320,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2868
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46349,7 +46339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2869
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46368,7 +46358,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2870
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46387,7 +46377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2871
+   i32.const 2868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46406,7 +46396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2872
+   i32.const 2869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46425,7 +46415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2873
+   i32.const 2870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46444,7 +46434,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2874
+   i32.const 2871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46459,7 +46449,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2876
+   i32.const 2873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46474,7 +46464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2877
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46489,7 +46479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2878
+   i32.const 2875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46505,7 +46495,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2879
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46521,7 +46511,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2880
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46537,7 +46527,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2881
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46552,7 +46542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2883
+   i32.const 2880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46567,7 +46557,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2884
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46582,7 +46572,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2885
+   i32.const 2882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46599,7 +46589,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2886
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46614,7 +46604,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2888
+   i32.const 2885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46629,7 +46619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2889
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46645,7 +46635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2890
+   i32.const 2887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46660,7 +46650,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2891
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46675,7 +46665,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2892
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46690,7 +46680,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2893
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46705,7 +46695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2894
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46721,7 +46711,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2896
+   i32.const 2893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46736,7 +46726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2897
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46752,7 +46742,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2898
+   i32.const 2895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46768,7 +46758,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2899
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46785,7 +46775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2901
+   i32.const 2898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46801,7 +46791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2902
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46818,7 +46808,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2903
+   i32.const 2900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46835,7 +46825,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2904
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46851,7 +46841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2906
+   i32.const 2903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46867,7 +46857,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2907
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46882,7 +46872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2908
+   i32.const 2905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46898,7 +46888,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2909
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46914,7 +46904,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2910
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46929,7 +46919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2911
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46945,7 +46935,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2913
+   i32.const 2910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46961,7 +46951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2914
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46977,7 +46967,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2916
+   i32.const 2913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46993,7 +46983,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2917
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47009,7 +46999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2918
+   i32.const 2915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47024,7 +47014,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2919
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47040,7 +47030,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2920
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47056,7 +47046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2921
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47073,7 +47063,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2922
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47089,7 +47079,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2924
+   i32.const 2921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47105,7 +47095,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2925
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47122,7 +47112,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2927
+   i32.const 2924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47139,7 +47129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2928
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47156,7 +47146,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2929
+   i32.const 2926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47173,7 +47163,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2930
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47191,7 +47181,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2931
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47208,7 +47198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2932
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47225,7 +47215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2933
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47242,7 +47232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2934
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47259,7 +47249,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2936
+   i32.const 2933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47275,7 +47265,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2937
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47292,7 +47282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2938
+   i32.const 2935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47312,7 +47302,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2940
+   i32.const 2937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47328,7 +47318,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2941
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47345,7 +47335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2943
+   i32.const 2940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47362,7 +47352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2944
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47379,7 +47369,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2945
+   i32.const 2942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47396,7 +47386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2946
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47413,7 +47403,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2947
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47430,7 +47420,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2948
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47447,7 +47437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2949
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47464,7 +47454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2950
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47481,7 +47471,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2951
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47498,7 +47488,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2952
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47515,7 +47505,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2953
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47532,7 +47522,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2954
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47549,7 +47539,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2955
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47566,7 +47556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2956
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47583,7 +47573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2957
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47600,7 +47590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2958
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47617,7 +47607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2959
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47634,7 +47624,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2960
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47649,7 +47639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2961
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47664,7 +47654,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2962
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47681,7 +47671,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2964
+   i32.const 2961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47698,7 +47688,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2965
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47714,7 +47704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2966
+   i32.const 2963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47731,7 +47721,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2967
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47748,7 +47738,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2968
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47765,7 +47755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2969
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47782,7 +47772,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2970
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47798,7 +47788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2972
+   i32.const 2969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47815,7 +47805,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2973
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47834,7 +47824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2975
+   i32.const 2972
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47853,7 +47843,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2976
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47872,7 +47862,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2977
+   i32.const 2974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47890,7 +47880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2978
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47909,7 +47899,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2979
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47928,7 +47918,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2980
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47947,7 +47937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2981
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47966,7 +47956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2982
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47984,7 +47974,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2983
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48004,7 +47994,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2984
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48023,7 +48013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2985
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48042,7 +48032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2987
+   i32.const 2984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48060,7 +48050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2988
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48080,7 +48070,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2989
+   i32.const 2986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48099,7 +48089,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 2990
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48133,7 +48123,7 @@
     if
      i32.const 0
      i32.const 32
-     i32.const 2999
+     i32.const 2996
      i32.const 3
      call $~lib/builtins/abort
      unreachable
@@ -48154,7 +48144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3013
+   i32.const 3010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48168,7 +48158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3014
+   i32.const 3011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48182,7 +48172,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3015
+   i32.const 3012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48196,7 +48186,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3016
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48210,7 +48200,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3017
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48224,7 +48214,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3018
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48238,7 +48228,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3019
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48252,7 +48242,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3020
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48266,7 +48256,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3021
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48280,7 +48270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3022
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48294,7 +48284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3025
+   i32.const 3022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48308,7 +48298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3026
+   i32.const 3023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48324,7 +48314,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3027
+   i32.const 3024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48338,7 +48328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3028
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48352,7 +48342,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3029
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48366,7 +48356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3030
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48380,7 +48370,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3031
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48394,7 +48384,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3032
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48408,7 +48398,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3033
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48422,7 +48412,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3034
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48436,7 +48426,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3035
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48450,7 +48440,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3036
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48464,7 +48454,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3037
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48478,7 +48468,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3038
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48492,7 +48482,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3039
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48506,7 +48496,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3040
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48520,7 +48510,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3041
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48659,7 +48649,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3056
+   i32.const 3053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48673,7 +48663,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3057
+   i32.const 3054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48687,7 +48677,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3058
+   i32.const 3055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48701,7 +48691,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3059
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48715,7 +48705,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3060
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48729,7 +48719,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3061
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48743,7 +48733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3062
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48757,7 +48747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3063
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48771,7 +48761,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3064
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48785,7 +48775,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3065
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48799,7 +48789,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3068
+   i32.const 3065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48813,7 +48803,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3069
+   i32.const 3066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48829,7 +48819,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3070
+   i32.const 3067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48843,7 +48833,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3071
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48857,7 +48847,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3072
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48871,7 +48861,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3073
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48885,7 +48875,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3074
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48899,7 +48889,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3075
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48913,7 +48903,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3076
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48927,7 +48917,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3077
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48941,7 +48931,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3078
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48955,7 +48945,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3079
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48969,7 +48959,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3080
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48983,7 +48973,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3081
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48997,7 +48987,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3082
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49011,7 +49001,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3083
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49025,7 +49015,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3084
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49039,7 +49029,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3095
+   i32.const 3092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49053,7 +49043,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3096
+   i32.const 3093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49067,7 +49057,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3097
+   i32.const 3094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49081,7 +49071,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3098
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49095,7 +49085,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3099
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49109,7 +49099,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3100
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49123,7 +49113,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3101
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49138,7 +49128,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3102
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49152,7 +49142,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3103
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49166,7 +49156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3111
+   i32.const 3108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49180,7 +49170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3112
+   i32.const 3109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49194,7 +49184,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3113
+   i32.const 3110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49208,7 +49198,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3114
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49222,7 +49212,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3115
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49236,7 +49226,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3116
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49250,7 +49240,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3117
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49265,7 +49255,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3118
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49279,7 +49269,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3119
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49697,7 +49687,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3157
+   i32.const 3154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49711,7 +49701,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3158
+   i32.const 3155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49725,7 +49715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3159
+   i32.const 3156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49739,7 +49729,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3160
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49753,7 +49743,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3161
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49767,7 +49757,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3162
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49781,7 +49771,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3163
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49795,7 +49785,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3164
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49809,7 +49799,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3165
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49823,7 +49813,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3166
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49837,7 +49827,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3169
+   i32.const 3166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49851,7 +49841,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3170
+   i32.const 3167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49865,7 +49855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3171
+   i32.const 3168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49879,7 +49869,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3172
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49895,7 +49885,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3173
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49911,7 +49901,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3174
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49925,7 +49915,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3175
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49939,7 +49929,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3176
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49953,7 +49943,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3177
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49967,7 +49957,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3178
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49981,7 +49971,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3179
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49995,7 +49985,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3180
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50009,7 +49999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3181
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50023,7 +50013,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3182
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50037,7 +50027,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3183
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50051,7 +50041,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3184
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50065,7 +50055,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3185
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50079,7 +50069,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3186
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50093,7 +50083,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3187
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50107,7 +50097,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3188
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50121,7 +50111,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3189
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50135,7 +50125,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3190
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50149,7 +50139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3191
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50163,7 +50153,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3192
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50177,7 +50167,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3193
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50193,7 +50183,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3194
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50209,7 +50199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3195
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50225,7 +50215,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3196
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50241,7 +50231,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3197
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50257,7 +50247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3198
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50273,7 +50263,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3199
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50289,7 +50279,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3200
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50305,7 +50295,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3201
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50321,7 +50311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3202
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50337,7 +50327,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3203
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50353,7 +50343,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3204
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50369,7 +50359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3205
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50383,7 +50373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3208
+   i32.const 3205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50397,7 +50387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3209
+   i32.const 3206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50411,7 +50401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3210
+   i32.const 3207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50426,7 +50416,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3211
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50440,7 +50430,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3212
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50477,7 +50467,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3215
+   i32.const 3212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50514,7 +50504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3216
+   i32.const 3213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50542,7 +50532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3219
+   i32.const 3216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50570,7 +50560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3220
+   i32.const 3217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50598,7 +50588,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3222
+   i32.const 3219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50626,7 +50616,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3223
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50654,7 +50644,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3226
+   i32.const 3223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50682,7 +50672,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3227
+   i32.const 3224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50712,7 +50702,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3228
+   i32.const 3225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50743,7 +50733,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3229
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50771,7 +50761,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3231
+   i32.const 3228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50801,7 +50791,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3232
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50833,7 +50823,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3234
+   i32.const 3231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50865,7 +50855,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3235
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50897,7 +50887,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3236
+   i32.const 3233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50929,7 +50919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3237
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50961,7 +50951,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3238
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50989,7 +50979,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3241
+   i32.const 3238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51018,7 +51008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3242
+   i32.const 3239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51032,7 +51022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3251
+   i32.const 3248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51046,7 +51036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3252
+   i32.const 3249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51060,7 +51050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3253
+   i32.const 3250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51074,7 +51064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3254
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51088,7 +51078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3255
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51102,7 +51092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3256
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51116,7 +51106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3257
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51130,7 +51120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3258
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51144,7 +51134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3259
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51158,7 +51148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3260
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51172,7 +51162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3263
+   i32.const 3260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51186,7 +51176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3264
+   i32.const 3261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51200,7 +51190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3265
+   i32.const 3262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51215,7 +51205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3266
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51229,7 +51219,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3267
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51243,7 +51233,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3270
+   i32.const 3267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51257,7 +51247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3271
+   i32.const 3268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51271,7 +51261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3272
+   i32.const 3269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51285,7 +51275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3273
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51301,7 +51291,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3274
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51317,7 +51307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3275
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51331,7 +51321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3276
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51345,7 +51335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3277
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51359,7 +51349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3278
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51373,7 +51363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3279
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51387,7 +51377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3280
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51401,7 +51391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3281
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51415,7 +51405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3282
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51429,7 +51419,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3283
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51443,7 +51433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3284
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51457,7 +51447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3285
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51471,7 +51461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3286
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51485,7 +51475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3287
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51499,7 +51489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3288
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51513,7 +51503,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3289
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51527,7 +51517,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3290
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51541,7 +51531,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3291
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51555,7 +51545,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3292
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51569,7 +51559,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3293
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51583,7 +51573,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3294
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51597,7 +51587,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3295
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51613,7 +51603,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3296
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51629,7 +51619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3297
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51645,7 +51635,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3298
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51661,7 +51651,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3299
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51677,7 +51667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3300
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51693,7 +51683,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3301
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51709,7 +51699,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3302
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51725,7 +51715,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3303
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51741,7 +51731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3304
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51757,7 +51747,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3305
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51773,7 +51763,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3306
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51789,7 +51779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3307
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51803,7 +51793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3310
+   i32.const 3307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51817,7 +51807,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3311
+   i32.const 3308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51831,7 +51821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3312
+   i32.const 3309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51845,7 +51835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3313
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51859,7 +51849,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3314
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51873,7 +51863,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3315
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51887,7 +51877,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3316
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51901,7 +51891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3317
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51915,7 +51905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3318
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51929,7 +51919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3319
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51943,7 +51933,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3320
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51957,7 +51947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3321
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51971,7 +51961,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3322
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51986,7 +51976,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3323
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52000,7 +51990,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3335
+   i32.const 3332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52014,7 +52004,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3336
+   i32.const 3333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52028,7 +52018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3337
+   i32.const 3334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52042,7 +52032,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3338
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52056,7 +52046,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3339
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52070,7 +52060,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3340
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52084,7 +52074,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3341
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52098,7 +52088,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3342
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52112,7 +52102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3343
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52126,7 +52116,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3344
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52140,7 +52130,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3347
+   i32.const 3344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52154,7 +52144,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3348
+   i32.const 3345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52168,7 +52158,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3349
+   i32.const 3346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52184,7 +52174,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3350
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52198,7 +52188,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3351
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52212,7 +52202,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3360
+   i32.const 3357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52226,7 +52216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3361
+   i32.const 3358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52240,7 +52230,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3362
+   i32.const 3359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52254,7 +52244,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3363
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52268,7 +52258,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3364
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52282,7 +52272,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3365
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52296,7 +52286,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3366
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52310,7 +52300,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3367
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52324,7 +52314,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3368
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52338,7 +52328,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3369
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52352,7 +52342,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3372
+   i32.const 3369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52366,7 +52356,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3373
+   i32.const 3370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52380,7 +52370,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3374
+   i32.const 3371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52396,7 +52386,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3375
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52410,7 +52400,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3376
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52424,7 +52414,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3388
+   i32.const 3385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52438,7 +52428,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3389
+   i32.const 3386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52452,7 +52442,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3390
+   i32.const 3387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52466,7 +52456,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3391
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52480,7 +52470,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3392
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52494,7 +52484,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3393
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52508,7 +52498,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3394
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52522,7 +52512,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3395
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52536,7 +52526,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3396
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52550,7 +52540,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3397
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52564,7 +52554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3400
+   i32.const 3397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52578,7 +52568,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3401
+   i32.const 3398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52593,7 +52583,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3402
+   i32.const 3399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52607,7 +52597,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3403
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52621,7 +52611,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3404
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52635,7 +52625,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3405
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52649,7 +52639,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3406
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52663,7 +52653,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3407
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52677,7 +52667,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3408
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52691,7 +52681,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3409
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52705,7 +52695,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3410
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52719,7 +52709,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3411
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52733,7 +52723,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3412
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52747,7 +52737,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3413
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52761,7 +52751,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3414
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52775,7 +52765,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3415
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52789,7 +52779,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3416
+   i32.const 3413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52803,7 +52793,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3417
+   i32.const 3414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52817,7 +52807,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3418
+   i32.const 3415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52831,7 +52821,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3419
+   i32.const 3416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52845,7 +52835,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3420
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52859,7 +52849,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3421
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52873,7 +52863,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3422
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52887,7 +52877,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3423
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52901,7 +52891,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3424
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52915,7 +52905,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3425
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52929,7 +52919,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3426
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52943,7 +52933,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3427
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52957,7 +52947,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3428
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52971,7 +52961,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3429
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52985,7 +52975,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3430
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52999,7 +52989,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3431
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53013,7 +53003,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3432
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53027,7 +53017,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3433
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53041,7 +53031,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3434
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53055,7 +53045,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3435
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53069,7 +53059,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3436
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53083,7 +53073,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3437
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53097,7 +53087,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3438
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53111,7 +53101,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3439
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53125,7 +53115,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3440
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53139,7 +53129,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3441
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53153,7 +53143,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3442
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53167,7 +53157,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3443
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53181,7 +53171,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3444
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53195,7 +53185,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3445
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53209,7 +53199,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3446
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53223,7 +53213,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3447
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53237,7 +53227,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3448
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53251,7 +53241,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3449
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53265,7 +53255,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3450
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53279,7 +53269,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3451
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53293,7 +53283,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3452
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53307,7 +53297,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3453
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53321,7 +53311,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3454
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53335,7 +53325,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3455
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53349,7 +53339,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3456
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53363,7 +53353,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3457
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53377,7 +53367,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3458
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53391,7 +53381,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3459
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53405,7 +53395,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3460
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53419,7 +53409,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3461
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53433,7 +53423,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3462
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53447,7 +53437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3463
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53461,7 +53451,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3464
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53475,7 +53465,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3465
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53489,7 +53479,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3466
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53503,7 +53493,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3467
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53517,7 +53507,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3468
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53531,7 +53521,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3469
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53545,7 +53535,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3470
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53559,7 +53549,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3471
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53573,7 +53563,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3472
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53587,7 +53577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3473
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53601,7 +53591,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3482
+   i32.const 3479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53615,7 +53605,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3483
+   i32.const 3480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53629,7 +53619,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3484
+   i32.const 3481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53643,7 +53633,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3485
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53657,7 +53647,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3486
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53671,7 +53661,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3487
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53685,7 +53675,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3488
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53699,7 +53689,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3489
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53713,7 +53703,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3490
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53727,7 +53717,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3491
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53741,7 +53731,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3494
+   i32.const 3491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53755,7 +53745,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3495
+   i32.const 3492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53770,7 +53760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3496
+   i32.const 3493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53784,7 +53774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3497
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53798,7 +53788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3498
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53812,7 +53802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3499
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53826,7 +53816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3500
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53840,7 +53830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3501
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53854,7 +53844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3502
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53868,7 +53858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3503
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53882,7 +53872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3504
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53896,7 +53886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3505
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53910,7 +53900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3506
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53924,7 +53914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3507
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53938,7 +53928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3508
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53952,7 +53942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3509
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53966,7 +53956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3510
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53980,7 +53970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3511
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53994,7 +53984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3512
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54008,7 +53998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3513
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54022,7 +54012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3514
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54036,7 +54026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3515
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54050,7 +54040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3527
+   i32.const 3524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54064,7 +54054,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3528
+   i32.const 3525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54078,7 +54068,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3529
+   i32.const 3526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54092,7 +54082,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3530
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54106,7 +54096,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3531
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54120,7 +54110,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3532
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54134,7 +54124,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3533
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54148,7 +54138,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3534
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54162,7 +54152,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3535
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54176,7 +54166,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3536
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54190,7 +54180,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3539
+   i32.const 3536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54204,7 +54194,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3540
+   i32.const 3537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54218,7 +54208,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3541
+   i32.const 3538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54232,7 +54222,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3542
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54248,7 +54238,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3543
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54264,7 +54254,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3544
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54278,7 +54268,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3545
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54292,7 +54282,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3546
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54306,7 +54296,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3547
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54320,7 +54310,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3548
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54334,7 +54324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3549
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54348,7 +54338,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3550
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54362,7 +54352,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3551
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54376,7 +54366,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3552
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54390,7 +54380,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3553
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54404,7 +54394,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3554
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54418,7 +54408,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3555
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54432,7 +54422,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3556
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54446,7 +54436,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3557
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54460,7 +54450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3558
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54474,7 +54464,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3559
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54488,7 +54478,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3560
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54502,7 +54492,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3561
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54516,7 +54506,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3562
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54530,7 +54520,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3563
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54544,7 +54534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3564
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54560,7 +54550,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3565
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54576,7 +54566,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3566
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54592,7 +54582,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3567
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54608,7 +54598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3568
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54624,7 +54614,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3569
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54640,7 +54630,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3570
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54656,7 +54646,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3571
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54672,7 +54662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3572
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54688,7 +54678,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3573
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54704,7 +54694,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3574
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54720,7 +54710,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3575
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54736,7 +54726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3576
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54765,7 +54755,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3579
+   i32.const 3576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54794,7 +54784,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3580
+   i32.const 3577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54827,7 +54817,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3581
+   i32.const 3578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54860,7 +54850,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3582
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54889,7 +54879,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3583
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54918,7 +54908,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3584
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54947,7 +54937,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3585
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -54980,7 +54970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3586
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55009,7 +54999,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3588
+   i32.const 3585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55038,7 +55028,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3589
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55075,7 +55065,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3590
+   i32.const 3587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55112,7 +55102,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3591
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55149,7 +55139,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3592
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55186,7 +55176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3593
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55215,7 +55205,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3594
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55246,7 +55236,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3595
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55260,7 +55250,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3598
+   i32.const 3595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55274,7 +55264,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3599
+   i32.const 3596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55288,7 +55278,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3600
+   i32.const 3597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55303,7 +55293,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3601
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55317,7 +55307,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3602
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55331,7 +55321,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3611
+   i32.const 3608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55345,7 +55335,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3612
+   i32.const 3609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55359,7 +55349,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3613
+   i32.const 3610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55373,7 +55363,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3614
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55387,7 +55377,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3615
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55401,7 +55391,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3616
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55415,7 +55405,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3617
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55429,7 +55419,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3618
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55443,7 +55433,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3619
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55457,7 +55447,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3620
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55471,7 +55461,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3623
+   i32.const 3620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55485,7 +55475,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3624
+   i32.const 3621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55499,7 +55489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3625
+   i32.const 3622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55514,7 +55504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3626
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55528,7 +55518,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3627
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55542,7 +55532,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3630
+   i32.const 3627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55556,7 +55546,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3631
+   i32.const 3628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55570,7 +55560,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3632
+   i32.const 3629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55584,7 +55574,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3633
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55600,7 +55590,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3634
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55616,7 +55606,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3635
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55630,7 +55620,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3636
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55644,7 +55634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3637
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55658,7 +55648,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3638
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55672,7 +55662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3639
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55686,7 +55676,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3640
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55700,7 +55690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3641
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55714,7 +55704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3642
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55728,7 +55718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3643
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55742,7 +55732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3644
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55756,7 +55746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3645
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55770,7 +55760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3646
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55784,7 +55774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3647
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55798,7 +55788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3648
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55812,7 +55802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3649
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55826,7 +55816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3650
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55840,7 +55830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3651
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55854,7 +55844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3652
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55868,7 +55858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3653
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55884,7 +55874,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3654
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55900,7 +55890,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3655
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55916,7 +55906,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3656
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55932,7 +55922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3657
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55948,7 +55938,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3658
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55964,7 +55954,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3659
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55980,7 +55970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3660
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -55996,7 +55986,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3661
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56012,7 +56002,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3662
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56028,7 +56018,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3663
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56044,7 +56034,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3664
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56060,7 +56050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3665
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56074,7 +56064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3677
+   i32.const 3674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56088,7 +56078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3678
+   i32.const 3675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56102,7 +56092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3679
+   i32.const 3676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56116,7 +56106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3680
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56130,7 +56120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3681
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56144,7 +56134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3682
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56158,7 +56148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3683
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56172,7 +56162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3684
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56186,7 +56176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3685
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56200,7 +56190,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3686
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56214,7 +56204,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3689
+   i32.const 3686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56228,7 +56218,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3690
+   i32.const 3687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56242,7 +56232,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3691
+   i32.const 3688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56257,7 +56247,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3692
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56271,7 +56261,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3693
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56285,7 +56275,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3702
+   i32.const 3699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56299,7 +56289,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3703
+   i32.const 3700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56313,7 +56303,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3704
+   i32.const 3701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56327,7 +56317,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3705
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56341,7 +56331,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3706
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56355,7 +56345,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3707
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56369,7 +56359,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3708
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56383,7 +56373,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3709
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56397,7 +56387,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3710
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56411,7 +56401,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3711
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56425,7 +56415,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3714
+   i32.const 3711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56439,7 +56429,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3715
+   i32.const 3712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56453,7 +56443,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3716
+   i32.const 3713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56468,7 +56458,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3717
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56482,7 +56472,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3718
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56496,7 +56486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3730
+   i32.const 3727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56510,7 +56500,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3731
+   i32.const 3728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56524,7 +56514,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3732
+   i32.const 3729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56538,7 +56528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3733
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56552,7 +56542,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3734
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56566,7 +56556,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3735
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56580,7 +56570,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3736
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56594,7 +56584,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3737
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56608,7 +56598,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3738
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56622,7 +56612,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3739
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56636,7 +56626,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3742
+   i32.const 3739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56650,7 +56640,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3743
+   i32.const 3740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56666,7 +56656,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3744
+   i32.const 3741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56680,7 +56670,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3745
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56694,7 +56684,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3746
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56708,7 +56698,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3747
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56722,7 +56712,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3748
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56736,7 +56726,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3749
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56750,7 +56740,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3750
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56764,7 +56754,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3751
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56778,7 +56768,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3752
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56792,7 +56782,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3753
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56806,7 +56796,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3754
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56820,7 +56810,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3755
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56834,7 +56824,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3756
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56848,7 +56838,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3765
+   i32.const 3762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56862,7 +56852,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3766
+   i32.const 3763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56876,7 +56866,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3767
+   i32.const 3764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56890,7 +56880,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3768
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56904,7 +56894,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3769
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56918,7 +56908,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3770
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56932,7 +56922,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3771
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56946,7 +56936,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3772
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56960,7 +56950,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3773
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56974,7 +56964,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3774
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -56988,7 +56978,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3777
+   i32.const 3774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57002,7 +56992,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3778
+   i32.const 3775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57018,7 +57008,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3779
+   i32.const 3776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57032,7 +57022,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3780
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57046,7 +57036,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3781
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57060,7 +57050,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3782
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57074,7 +57064,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3783
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57088,7 +57078,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3784
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57102,7 +57092,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3785
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57116,7 +57106,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3786
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57130,7 +57120,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3787
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57144,7 +57134,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3788
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57158,7 +57148,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3789
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57172,7 +57162,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3790
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57186,7 +57176,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3791
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57280,7 +57270,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3832
+   i32.const 3829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57294,7 +57284,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3833
+   i32.const 3830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57308,7 +57298,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3834
+   i32.const 3831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57322,7 +57312,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3835
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57336,7 +57326,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3836
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57350,7 +57340,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3837
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57364,7 +57354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3838
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57378,7 +57368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3839
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57392,7 +57382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3840
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57406,7 +57396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3841
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57420,7 +57410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3842
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57434,7 +57424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3843
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57447,7 +57437,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3847
+   i32.const 3844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57460,7 +57450,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3848
+   i32.const 3845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57473,7 +57463,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3849
+   i32.const 3846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57486,7 +57476,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3850
+   i32.const 3847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57499,7 +57489,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3851
+   i32.const 3848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57512,7 +57502,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3852
+   i32.const 3849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57525,7 +57515,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3853
+   i32.const 3850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57538,7 +57528,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3854
+   i32.const 3851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57551,7 +57541,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3855
+   i32.const 3852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57564,7 +57554,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3856
+   i32.const 3853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57577,7 +57567,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3857
+   i32.const 3854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57591,7 +57581,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3858
+   i32.const 3855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57604,7 +57594,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3859
+   i32.const 3856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57617,7 +57607,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3860
+   i32.const 3857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57631,7 +57621,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3861
+   i32.const 3858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57644,7 +57634,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3862
+   i32.const 3859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57658,7 +57648,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3866
+   i32.const 3863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57672,7 +57662,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3867
+   i32.const 3864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57686,7 +57676,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3868
+   i32.const 3865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57700,7 +57690,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3869
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57714,7 +57704,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3871
+   i32.const 3868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57728,7 +57718,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3872
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57742,7 +57732,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3873
+   i32.const 3870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57756,7 +57746,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3874
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57770,7 +57760,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3876
+   i32.const 3873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57784,7 +57774,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3877
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57798,7 +57788,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3878
+   i32.const 3875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57812,7 +57802,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3879
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57826,7 +57816,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3881
+   i32.const 3878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57840,7 +57830,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3882
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57854,7 +57844,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3883
+   i32.const 3880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57868,7 +57858,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3884
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57882,7 +57872,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3886
+   i32.const 3883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57896,7 +57886,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3887
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57910,7 +57900,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3888
+   i32.const 3885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57924,7 +57914,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3889
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57938,7 +57928,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3891
+   i32.const 3888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57952,7 +57942,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3892
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57966,7 +57956,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3893
+   i32.const 3890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57980,7 +57970,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3894
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -57994,7 +57984,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3895
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58008,7 +57998,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3897
+   i32.const 3894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58022,7 +58012,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3898
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58036,7 +58026,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3899
+   i32.const 3896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58050,7 +58040,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3900
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58082,7 +58072,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3906
+   i32.const 3903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58096,7 +58086,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3907
+   i32.const 3904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58110,7 +58100,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3908
+   i32.const 3905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58124,7 +58114,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3909
+   i32.const 3906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58138,7 +58128,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3910
+   i32.const 3907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58152,7 +58142,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3911
+   i32.const 3908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58166,7 +58156,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3913
+   i32.const 3910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58180,7 +58170,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3914
+   i32.const 3911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58212,7 +58202,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3917
+   i32.const 3914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58226,7 +58216,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3919
+   i32.const 3916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58240,7 +58230,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3920
+   i32.const 3917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58272,7 +58262,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3923
+   i32.const 3920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58287,7 +58277,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3925
+   i32.const 3922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58302,7 +58292,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3926
+   i32.const 3923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58318,7 +58308,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3927
+   i32.const 3924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58334,7 +58324,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3928
+   i32.const 3925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58350,7 +58340,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3929
+   i32.const 3926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58364,7 +58354,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3931
+   i32.const 3928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58378,7 +58368,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3932
+   i32.const 3929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58392,7 +58382,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3933
+   i32.const 3930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58406,7 +58396,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3934
+   i32.const 3931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58420,7 +58410,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3935
+   i32.const 3932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58434,7 +58424,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3936
+   i32.const 3933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58448,7 +58438,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3937
+   i32.const 3934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58462,7 +58452,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3938
+   i32.const 3935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58476,7 +58466,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3939
+   i32.const 3936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58496,7 +58486,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3941
+   i32.const 3938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58514,7 +58504,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3942
+   i32.const 3939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58529,7 +58519,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3944
+   i32.const 3941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58544,7 +58534,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3945
+   i32.const 3942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58559,7 +58549,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3946
+   i32.const 3943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58573,7 +58563,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3947
+   i32.const 3944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -58587,7 +58577,7 @@
   if
    i32.const 0
    i32.const 32
-   i32.const 3948
+   i32.const 3945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat
index 27ed6c0b6d..798b82da61 100644
--- a/tests/compiler/std/math.release.wat
+++ b/tests/compiler/std/math.release.wat
@@ -307,7 +307,7 @@
    f64.ne
    return
   end
-  block $__inlined_func$std/math/ulperr (result f64)
+  block $__inlined_func$std/math/ulperr64 (result f64)
    f64.const 0
    local.get $1
    local.get $1
@@ -316,7 +316,7 @@
    local.get $0
    f64.ne
    i32.and
-   br_if $__inlined_func$std/math/ulperr
+   br_if $__inlined_func$std/math/ulperr64
    drop
    local.get $0
    local.get $1
@@ -334,10 +334,10 @@
     i64.shr_u
     i32.wrap_i64
     i32.eq
-    br_if $__inlined_func$std/math/ulperr
+    br_if $__inlined_func$std/math/ulperr64
     drop
     f64.const inf
-    br $__inlined_func$std/math/ulperr
+    br $__inlined_func$std/math/ulperr64
    end
    local.get $0
    local.get $0
@@ -380,12 +380,7 @@
   end
   f64.abs
   f64.const 1.5
-  f64.ge
-  if
-   i32.const 0
-   return
-  end
-  i32.const 1
+  f64.lt
  )
  (func $std/math/check<f32> (param $0 f32) (param $1 f32) (param $2 f32) (result i32)
   (local $3 i32)
@@ -405,7 +400,7 @@
    f32.ne
    return
   end
-  block $__inlined_func$std/math/ulperrf (result f32)
+  block $__inlined_func$std/math/ulperr32 (result f32)
    f32.const 0
    local.get $1
    local.get $1
@@ -414,7 +409,7 @@
    local.get $0
    f32.ne
    i32.and
-   br_if $__inlined_func$std/math/ulperrf
+   br_if $__inlined_func$std/math/ulperr32
    drop
    local.get $0
    local.get $1
@@ -430,10 +425,10 @@
     i32.const 31
     i32.shr_u
     i32.eq
-    br_if $__inlined_func$std/math/ulperrf
+    br_if $__inlined_func$std/math/ulperr32
     drop
     f32.const inf
-    br $__inlined_func$std/math/ulperrf
+    br $__inlined_func$std/math/ulperr32
    end
    local.get $0
    local.get $0
@@ -549,12 +544,7 @@
   end
   f32.abs
   f32.const 1.5
-  f32.ge
-  if
-   i32.const 0
-   return
-  end
-  i32.const 1
+  f32.lt
  )
  (func $~lib/util/math/acos64 (param $0 f64) (result f64)
   (local $1 i32)
@@ -11380,7 +11370,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 118
+   i32.const 115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11393,7 +11383,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 119
+   i32.const 116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11406,7 +11396,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 120
+   i32.const 117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11419,7 +11409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 121
+   i32.const 118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11432,7 +11422,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 122
+   i32.const 119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11445,7 +11435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 123
+   i32.const 120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11458,7 +11448,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 124
+   i32.const 121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11473,7 +11463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 135
+   i32.const 132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11488,7 +11478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 136
+   i32.const 133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11503,7 +11493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 137
+   i32.const 134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11518,7 +11508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 138
+   i32.const 135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11533,7 +11523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 139
+   i32.const 136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11548,7 +11538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 140
+   i32.const 137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11563,7 +11553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 141
+   i32.const 138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11578,7 +11568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 142
+   i32.const 139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11593,7 +11583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 143
+   i32.const 140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11608,7 +11598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 144
+   i32.const 141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11623,7 +11613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 147
+   i32.const 144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11638,7 +11628,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 148
+   i32.const 145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11653,7 +11643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 149
+   i32.const 146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11668,7 +11658,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 150
+   i32.const 147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11683,7 +11673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 151
+   i32.const 148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11698,7 +11688,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 152
+   i32.const 149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11713,7 +11703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 153
+   i32.const 150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11728,7 +11718,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 154
+   i32.const 151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11743,7 +11733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 155
+   i32.const 152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11758,7 +11748,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 156
+   i32.const 153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11773,7 +11763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 157
+   i32.const 154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11788,7 +11778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 158
+   i32.const 155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11803,7 +11793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 159
+   i32.const 156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11818,7 +11808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 160
+   i32.const 157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11833,7 +11823,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 161
+   i32.const 158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11848,7 +11838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 162
+   i32.const 159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11863,7 +11853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 163
+   i32.const 160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11878,7 +11868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 164
+   i32.const 161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11893,7 +11883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 165
+   i32.const 162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11906,7 +11896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 174
+   i32.const 171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11919,7 +11909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 175
+   i32.const 172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11932,7 +11922,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 176
+   i32.const 173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11945,7 +11935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 177
+   i32.const 174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11958,7 +11948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 178
+   i32.const 175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11971,7 +11961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 179
+   i32.const 176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11984,7 +11974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 180
+   i32.const 177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -11997,7 +11987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 181
+   i32.const 178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12010,7 +12000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 182
+   i32.const 179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12023,7 +12013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 183
+   i32.const 180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12036,7 +12026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 186
+   i32.const 183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12049,7 +12039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 187
+   i32.const 184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12062,7 +12052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 188
+   i32.const 185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12075,7 +12065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 189
+   i32.const 186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12088,7 +12078,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 190
+   i32.const 187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12101,7 +12091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 191
+   i32.const 188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12114,7 +12104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 192
+   i32.const 189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12127,7 +12117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 193
+   i32.const 190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12140,7 +12130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 194
+   i32.const 191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12153,7 +12143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 195
+   i32.const 192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12166,7 +12156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 196
+   i32.const 193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12179,7 +12169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 197
+   i32.const 194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12192,7 +12182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 198
+   i32.const 195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12205,7 +12195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 199
+   i32.const 196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12218,7 +12208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 200
+   i32.const 197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12231,7 +12221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 201
+   i32.const 198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12244,7 +12234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 202
+   i32.const 199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12257,7 +12247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 203
+   i32.const 200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12270,7 +12260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 204
+   i32.const 201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12292,7 +12282,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 216
+   i32.const 213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12314,7 +12304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 217
+   i32.const 214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12336,7 +12326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 218
+   i32.const 215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12358,7 +12348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 219
+   i32.const 216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12380,7 +12370,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 220
+   i32.const 217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12402,7 +12392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 221
+   i32.const 218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12424,7 +12414,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 222
+   i32.const 219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12446,7 +12436,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 223
+   i32.const 220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12468,7 +12458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 224
+   i32.const 221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12490,7 +12480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 225
+   i32.const 222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12512,7 +12502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 228
+   i32.const 225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12534,7 +12524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 229
+   i32.const 226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12556,7 +12546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 230
+   i32.const 227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12578,7 +12568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 231
+   i32.const 228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12600,7 +12590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 232
+   i32.const 229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12622,7 +12612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 233
+   i32.const 230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12644,7 +12634,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 234
+   i32.const 231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12657,7 +12647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 243
+   i32.const 240
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12670,7 +12660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 244
+   i32.const 241
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12683,7 +12673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 245
+   i32.const 242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12696,7 +12686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 246
+   i32.const 243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12709,7 +12699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 247
+   i32.const 244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12722,7 +12712,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 248
+   i32.const 245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12735,7 +12725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 249
+   i32.const 246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12748,7 +12738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 250
+   i32.const 247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12761,7 +12751,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 251
+   i32.const 248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12774,7 +12764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 252
+   i32.const 249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12787,7 +12777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 255
+   i32.const 252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12800,7 +12790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 256
+   i32.const 253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12813,7 +12803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 257
+   i32.const 254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12826,7 +12816,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 258
+   i32.const 255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12839,7 +12829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 259
+   i32.const 256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12852,7 +12842,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 260
+   i32.const 257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12865,7 +12855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 261
+   i32.const 258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12888,7 +12878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 273
+   i32.const 270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12911,7 +12901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 274
+   i32.const 271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12934,7 +12924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 275
+   i32.const 272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12957,7 +12947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 276
+   i32.const 273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -12980,7 +12970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 277
+   i32.const 274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13003,7 +12993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 278
+   i32.const 275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13026,7 +13016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 279
+   i32.const 276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13049,7 +13039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 280
+   i32.const 277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13072,7 +13062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 281
+   i32.const 278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13095,7 +13085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 282
+   i32.const 279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13118,7 +13108,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 285
+   i32.const 282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13141,7 +13131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 286
+   i32.const 283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13164,7 +13154,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 287
+   i32.const 284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13187,7 +13177,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 288
+   i32.const 285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13210,7 +13200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 289
+   i32.const 286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13233,7 +13223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 290
+   i32.const 287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13256,7 +13246,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 291
+   i32.const 288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13279,7 +13269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 292
+   i32.const 289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13302,7 +13292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 293
+   i32.const 290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13325,7 +13315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 294
+   i32.const 291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13338,7 +13328,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 303
+   i32.const 300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13351,7 +13341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 304
+   i32.const 301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13364,7 +13354,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 305
+   i32.const 302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13377,7 +13367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 306
+   i32.const 303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13390,7 +13380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 307
+   i32.const 304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13403,7 +13393,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 308
+   i32.const 305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13416,7 +13406,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 309
+   i32.const 306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13429,7 +13419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 310
+   i32.const 307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13442,7 +13432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 311
+   i32.const 308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13455,7 +13445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 312
+   i32.const 309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13468,7 +13458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 315
+   i32.const 312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13481,7 +13471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 316
+   i32.const 313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13494,7 +13484,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 317
+   i32.const 314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13507,7 +13497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 318
+   i32.const 315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13520,7 +13510,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 319
+   i32.const 316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13533,7 +13523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 320
+   i32.const 317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13546,7 +13536,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 321
+   i32.const 318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13559,7 +13549,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 322
+   i32.const 319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13572,7 +13562,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 323
+   i32.const 320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13585,7 +13575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 324
+   i32.const 321
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13598,7 +13588,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 325
+   i32.const 322
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13611,7 +13601,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 337
+   i32.const 334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13624,7 +13614,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 338
+   i32.const 335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13637,7 +13627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 339
+   i32.const 336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13650,7 +13640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 340
+   i32.const 337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13663,7 +13653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 341
+   i32.const 338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13676,7 +13666,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 342
+   i32.const 339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13689,7 +13679,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 343
+   i32.const 340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13702,7 +13692,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 344
+   i32.const 341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13715,7 +13705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 345
+   i32.const 342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13728,7 +13718,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 346
+   i32.const 343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13741,7 +13731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 349
+   i32.const 346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13754,7 +13744,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 350
+   i32.const 347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13767,7 +13757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 351
+   i32.const 348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13780,7 +13770,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 352
+   i32.const 349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13793,7 +13783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 353
+   i32.const 350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13806,7 +13796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 354
+   i32.const 351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13819,7 +13809,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 355
+   i32.const 352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13832,7 +13822,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 356
+   i32.const 353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13845,7 +13835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 372
+   i32.const 369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13858,7 +13848,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 374
+   i32.const 371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13871,7 +13861,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 375
+   i32.const 372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13884,7 +13874,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 384
+   i32.const 381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13897,7 +13887,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 385
+   i32.const 382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13910,7 +13900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 386
+   i32.const 383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13923,7 +13913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 387
+   i32.const 384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13936,7 +13926,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 388
+   i32.const 385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13949,7 +13939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 389
+   i32.const 386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13962,7 +13952,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 390
+   i32.const 387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13975,7 +13965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 391
+   i32.const 388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -13988,7 +13978,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 392
+   i32.const 389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14001,7 +13991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 393
+   i32.const 390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14014,7 +14004,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 396
+   i32.const 393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14027,7 +14017,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 397
+   i32.const 394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14040,7 +14030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 398
+   i32.const 395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14053,7 +14043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 399
+   i32.const 396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14066,7 +14056,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 400
+   i32.const 397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14079,7 +14069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 401
+   i32.const 398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14092,7 +14082,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 402
+   i32.const 399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14105,7 +14095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 403
+   i32.const 400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14128,7 +14118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 415
+   i32.const 412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14151,7 +14141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 416
+   i32.const 413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14174,7 +14164,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 417
+   i32.const 414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14197,7 +14187,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 418
+   i32.const 415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14220,7 +14210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 419
+   i32.const 416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14243,7 +14233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 420
+   i32.const 417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14266,7 +14256,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 421
+   i32.const 418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14289,7 +14279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 422
+   i32.const 419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14312,7 +14302,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 423
+   i32.const 420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14335,7 +14325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 424
+   i32.const 421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14358,7 +14348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 427
+   i32.const 424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14381,7 +14371,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 428
+   i32.const 425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14404,7 +14394,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 429
+   i32.const 426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14427,7 +14417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 430
+   i32.const 427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14450,7 +14440,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 431
+   i32.const 428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14473,7 +14463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 432
+   i32.const 429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14496,7 +14486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 433
+   i32.const 430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14519,7 +14509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 434
+   i32.const 431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14542,7 +14532,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 435
+   i32.const 432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14565,7 +14555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 436
+   i32.const 433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14578,7 +14568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 445
+   i32.const 442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14591,7 +14581,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 446
+   i32.const 443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14604,7 +14594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 447
+   i32.const 444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14617,7 +14607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 448
+   i32.const 445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14630,7 +14620,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 449
+   i32.const 446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14643,7 +14633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 450
+   i32.const 447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14656,7 +14646,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 451
+   i32.const 448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14669,7 +14659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 452
+   i32.const 449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14682,7 +14672,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 453
+   i32.const 450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14695,7 +14685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 454
+   i32.const 451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14708,7 +14698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 457
+   i32.const 454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14721,7 +14711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 458
+   i32.const 455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14734,7 +14724,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 459
+   i32.const 456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14747,7 +14737,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 460
+   i32.const 457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14760,7 +14750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 461
+   i32.const 458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14773,7 +14763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 462
+   i32.const 459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14786,7 +14776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 463
+   i32.const 460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14799,7 +14789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 464
+   i32.const 461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14812,7 +14802,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 465
+   i32.const 462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14825,7 +14815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 466
+   i32.const 463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14838,7 +14828,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 478
+   i32.const 475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14851,7 +14841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 479
+   i32.const 476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14864,7 +14854,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 480
+   i32.const 477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14877,7 +14867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 481
+   i32.const 478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14890,7 +14880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 482
+   i32.const 479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14903,7 +14893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 483
+   i32.const 480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14916,7 +14906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 484
+   i32.const 481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14929,7 +14919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 485
+   i32.const 482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14942,7 +14932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 486
+   i32.const 483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14955,7 +14945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 487
+   i32.const 484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14968,7 +14958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 490
+   i32.const 487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14981,7 +14971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 491
+   i32.const 488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -14994,7 +14984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 492
+   i32.const 489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15007,7 +14997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 493
+   i32.const 490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15020,7 +15010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 494
+   i32.const 491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15033,7 +15023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 523
+   i32.const 520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15046,7 +15036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 524
+   i32.const 521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15059,7 +15049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 525
+   i32.const 522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15072,7 +15062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 526
+   i32.const 523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15085,7 +15075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 527
+   i32.const 524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15098,7 +15088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 528
+   i32.const 525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15111,7 +15101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 529
+   i32.const 526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15124,7 +15114,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 530
+   i32.const 527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15137,7 +15127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 531
+   i32.const 528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15150,7 +15140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 532
+   i32.const 529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15163,7 +15153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 535
+   i32.const 532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15176,7 +15166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 536
+   i32.const 533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15189,7 +15179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 537
+   i32.const 534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15202,7 +15192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 538
+   i32.const 535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15215,7 +15205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 539
+   i32.const 536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15238,7 +15228,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 551
+   i32.const 548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15261,7 +15251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 552
+   i32.const 549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15284,7 +15274,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 553
+   i32.const 550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15307,7 +15297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 554
+   i32.const 551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15330,7 +15320,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 555
+   i32.const 552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15353,7 +15343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 556
+   i32.const 553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15376,7 +15366,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 557
+   i32.const 554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15399,7 +15389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 558
+   i32.const 555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15422,7 +15412,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 559
+   i32.const 556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15445,7 +15435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 560
+   i32.const 557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15468,7 +15458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 563
+   i32.const 560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15491,7 +15481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 564
+   i32.const 561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15514,7 +15504,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 565
+   i32.const 562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15537,7 +15527,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 566
+   i32.const 563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15560,7 +15550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 567
+   i32.const 564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15583,7 +15573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 568
+   i32.const 565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15606,7 +15596,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 569
+   i32.const 566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15629,7 +15619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 570
+   i32.const 567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15643,7 +15633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 579
+   i32.const 576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15657,7 +15647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 580
+   i32.const 577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15671,7 +15661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 581
+   i32.const 578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15685,7 +15675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 582
+   i32.const 579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15699,7 +15689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 583
+   i32.const 580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15713,7 +15703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 584
+   i32.const 581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15727,7 +15717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 585
+   i32.const 582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15741,7 +15731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 586
+   i32.const 583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15755,7 +15745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 587
+   i32.const 584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15769,7 +15759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 588
+   i32.const 585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15783,7 +15773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 591
+   i32.const 588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15797,7 +15787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 592
+   i32.const 589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15811,7 +15801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 593
+   i32.const 590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15825,7 +15815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 594
+   i32.const 591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15839,7 +15829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 595
+   i32.const 592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15853,7 +15843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 596
+   i32.const 593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15867,7 +15857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 597
+   i32.const 594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15880,7 +15870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 609
+   i32.const 606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15893,7 +15883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 610
+   i32.const 607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15906,7 +15896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 611
+   i32.const 608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15919,7 +15909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 612
+   i32.const 609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15932,7 +15922,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 613
+   i32.const 610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15945,7 +15935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 614
+   i32.const 611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15958,7 +15948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 615
+   i32.const 612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15971,7 +15961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 616
+   i32.const 613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15984,7 +15974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 617
+   i32.const 614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -15997,7 +15987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 618
+   i32.const 615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16010,7 +16000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 621
+   i32.const 618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16023,7 +16013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 622
+   i32.const 619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16036,7 +16026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 623
+   i32.const 620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16049,7 +16039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 624
+   i32.const 621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16062,7 +16052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 625
+   i32.const 622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16075,7 +16065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 626
+   i32.const 623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16088,7 +16078,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 627
+   i32.const 624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16101,7 +16091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 628
+   i32.const 625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16114,7 +16104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 629
+   i32.const 626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16127,7 +16117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 630
+   i32.const 627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16140,7 +16130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 631
+   i32.const 628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16153,7 +16143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 632
+   i32.const 629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16166,7 +16156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 633
+   i32.const 630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16179,7 +16169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 634
+   i32.const 631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16192,7 +16182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 643
+   i32.const 640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16205,7 +16195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 644
+   i32.const 641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16218,7 +16208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 645
+   i32.const 642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16231,7 +16221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 646
+   i32.const 643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16244,7 +16234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 647
+   i32.const 644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16257,7 +16247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 648
+   i32.const 645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16270,7 +16260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 649
+   i32.const 646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16283,7 +16273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 650
+   i32.const 647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16296,7 +16286,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 651
+   i32.const 648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16309,7 +16299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 652
+   i32.const 649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16322,7 +16312,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 655
+   i32.const 652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16335,7 +16325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 656
+   i32.const 653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16348,7 +16338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 657
+   i32.const 654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16361,7 +16351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 658
+   i32.const 655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16374,7 +16364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 659
+   i32.const 656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16387,7 +16377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 660
+   i32.const 657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16400,7 +16390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 661
+   i32.const 658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16413,7 +16403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 662
+   i32.const 659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16426,7 +16416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 663
+   i32.const 660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16439,7 +16429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 664
+   i32.const 661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16452,7 +16442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 665
+   i32.const 662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16465,7 +16455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 666
+   i32.const 663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16478,7 +16468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 667
+   i32.const 664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16491,7 +16481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 668
+   i32.const 665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16505,7 +16495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 680
+   i32.const 677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16519,7 +16509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 681
+   i32.const 678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16533,7 +16523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 682
+   i32.const 679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16547,7 +16537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 683
+   i32.const 680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16561,7 +16551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 684
+   i32.const 681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16575,7 +16565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 685
+   i32.const 682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16589,7 +16579,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 686
+   i32.const 683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16603,7 +16593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 687
+   i32.const 684
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16617,7 +16607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 688
+   i32.const 685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16631,7 +16621,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 689
+   i32.const 686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16645,7 +16635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 692
+   i32.const 689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16659,7 +16649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 693
+   i32.const 690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16673,7 +16663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 694
+   i32.const 691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16687,7 +16677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 695
+   i32.const 692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16701,7 +16691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 696
+   i32.const 693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16715,7 +16705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 697
+   i32.const 694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16729,7 +16719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 698
+   i32.const 695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16743,7 +16733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 699
+   i32.const 696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16757,7 +16747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 700
+   i32.const 697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16771,7 +16761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 701
+   i32.const 698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16785,7 +16775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 702
+   i32.const 699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16799,7 +16789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 703
+   i32.const 700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16813,7 +16803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 704
+   i32.const 701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16827,7 +16817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 705
+   i32.const 702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16841,7 +16831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 706
+   i32.const 703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16855,7 +16845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 707
+   i32.const 704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16869,7 +16859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 708
+   i32.const 705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16883,7 +16873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 709
+   i32.const 706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16897,7 +16887,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 710
+   i32.const 707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16911,7 +16901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 711
+   i32.const 708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16925,7 +16915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 712
+   i32.const 709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16939,7 +16929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 713
+   i32.const 710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16953,7 +16943,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 714
+   i32.const 711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16967,7 +16957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 715
+   i32.const 712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16981,7 +16971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 716
+   i32.const 713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -16995,7 +16985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 717
+   i32.const 714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17009,7 +16999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 718
+   i32.const 715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17023,7 +17013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 719
+   i32.const 716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17037,7 +17027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 720
+   i32.const 717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17051,7 +17041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 721
+   i32.const 718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17065,7 +17055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 730
+   i32.const 727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17079,7 +17069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 731
+   i32.const 728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17093,7 +17083,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 732
+   i32.const 729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17107,7 +17097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 733
+   i32.const 730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17121,7 +17111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 734
+   i32.const 731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17135,7 +17125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 735
+   i32.const 732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17149,7 +17139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 736
+   i32.const 733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17163,7 +17153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 737
+   i32.const 734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17177,7 +17167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 738
+   i32.const 735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17191,7 +17181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 739
+   i32.const 736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17205,7 +17195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 742
+   i32.const 739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17219,7 +17209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 743
+   i32.const 740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17233,7 +17223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 744
+   i32.const 741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17247,7 +17237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 745
+   i32.const 742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17261,7 +17251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 746
+   i32.const 743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17275,7 +17265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 747
+   i32.const 744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17289,7 +17279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 748
+   i32.const 745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17303,7 +17293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 749
+   i32.const 746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17317,7 +17307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 750
+   i32.const 747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17331,7 +17321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 751
+   i32.const 748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17345,7 +17335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 752
+   i32.const 749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17359,7 +17349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 753
+   i32.const 750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17373,7 +17363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 754
+   i32.const 751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17387,7 +17377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 755
+   i32.const 752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17401,7 +17391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 756
+   i32.const 753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17415,7 +17405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 757
+   i32.const 754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17429,7 +17419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 758
+   i32.const 755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17443,7 +17433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 759
+   i32.const 756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17457,7 +17447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 760
+   i32.const 757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17471,7 +17461,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 761
+   i32.const 758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17485,7 +17475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 762
+   i32.const 759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17499,7 +17489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 763
+   i32.const 760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17513,7 +17503,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 764
+   i32.const 761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17527,7 +17517,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 765
+   i32.const 762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17541,7 +17531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 766
+   i32.const 763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17555,7 +17545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 767
+   i32.const 764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17569,7 +17559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 768
+   i32.const 765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17583,7 +17573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 769
+   i32.const 766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17596,7 +17586,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 781
+   i32.const 778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17609,7 +17599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 782
+   i32.const 779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17622,7 +17612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 783
+   i32.const 780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17635,7 +17625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 784
+   i32.const 781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17648,7 +17638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 785
+   i32.const 782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17661,7 +17651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 786
+   i32.const 783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17674,7 +17664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 787
+   i32.const 784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17687,7 +17677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 788
+   i32.const 785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17700,7 +17690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 789
+   i32.const 786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17713,7 +17703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 790
+   i32.const 787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17726,7 +17716,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 793
+   i32.const 790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17739,7 +17729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 794
+   i32.const 791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17752,7 +17742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 795
+   i32.const 792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17765,7 +17755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 796
+   i32.const 793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17778,7 +17768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 797
+   i32.const 794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17791,7 +17781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 798
+   i32.const 795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17804,7 +17794,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 799
+   i32.const 796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17817,7 +17807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 800
+   i32.const 797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17830,7 +17820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 801
+   i32.const 798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17843,7 +17833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 802
+   i32.const 799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17856,7 +17846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 811
+   i32.const 808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17869,7 +17859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 812
+   i32.const 809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17882,7 +17872,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 813
+   i32.const 810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17895,7 +17885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 814
+   i32.const 811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17908,7 +17898,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 815
+   i32.const 812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17921,7 +17911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 816
+   i32.const 813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17934,7 +17924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 817
+   i32.const 814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17947,7 +17937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 818
+   i32.const 815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17960,7 +17950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 819
+   i32.const 816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17973,7 +17963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 820
+   i32.const 817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17986,7 +17976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 823
+   i32.const 820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -17999,7 +17989,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 824
+   i32.const 821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18012,7 +18002,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 825
+   i32.const 822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18025,7 +18015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 826
+   i32.const 823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18038,7 +18028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 827
+   i32.const 824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18051,7 +18041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 828
+   i32.const 825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18064,7 +18054,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 829
+   i32.const 826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18077,7 +18067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 830
+   i32.const 827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18090,7 +18080,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 831
+   i32.const 828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18103,7 +18093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 832
+   i32.const 829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18125,7 +18115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 844
+   i32.const 841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18147,7 +18137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 845
+   i32.const 842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18169,7 +18159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 846
+   i32.const 843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18191,7 +18181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 847
+   i32.const 844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18213,7 +18203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 848
+   i32.const 845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18235,7 +18225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 849
+   i32.const 846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18257,7 +18247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 850
+   i32.const 847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18279,7 +18269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 851
+   i32.const 848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18301,7 +18291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 852
+   i32.const 849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18323,7 +18313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 853
+   i32.const 850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18345,7 +18335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 856
+   i32.const 853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18367,7 +18357,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 857
+   i32.const 854
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18389,7 +18379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 858
+   i32.const 855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18411,7 +18401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 859
+   i32.const 856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18433,7 +18423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 860
+   i32.const 857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18455,7 +18445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 861
+   i32.const 858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18477,7 +18467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 862
+   i32.const 859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18499,7 +18489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 863
+   i32.const 860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18521,7 +18511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 864
+   i32.const 861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18543,7 +18533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 865
+   i32.const 862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18565,7 +18555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 866
+   i32.const 863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18587,7 +18577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 867
+   i32.const 864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18609,7 +18599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 868
+   i32.const 865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18631,7 +18621,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 869
+   i32.const 866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18653,7 +18643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 870
+   i32.const 867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18675,7 +18665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 871
+   i32.const 868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18697,7 +18687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 872
+   i32.const 869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18719,7 +18709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 873
+   i32.const 870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18741,7 +18731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 874
+   i32.const 871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18763,7 +18753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 875
+   i32.const 872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18785,7 +18775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 876
+   i32.const 873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18807,7 +18797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 877
+   i32.const 874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18829,7 +18819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 878
+   i32.const 875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18851,7 +18841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 879
+   i32.const 876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18873,7 +18863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 880
+   i32.const 877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18895,7 +18885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 881
+   i32.const 878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18917,7 +18907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 882
+   i32.const 879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18939,7 +18929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 883
+   i32.const 880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18961,7 +18951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 884
+   i32.const 881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -18983,7 +18973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 885
+   i32.const 882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19005,7 +18995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 886
+   i32.const 883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19027,7 +19017,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 887
+   i32.const 884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19049,7 +19039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 888
+   i32.const 885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19071,7 +19061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 889
+   i32.const 886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19093,7 +19083,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 890
+   i32.const 887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19115,7 +19105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 891
+   i32.const 888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19137,7 +19127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 892
+   i32.const 889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19159,7 +19149,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 893
+   i32.const 890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19181,7 +19171,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 894
+   i32.const 891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19203,7 +19193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 895
+   i32.const 892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19225,7 +19215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 896
+   i32.const 893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19247,7 +19237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 897
+   i32.const 894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19269,7 +19259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 898
+   i32.const 895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19291,7 +19281,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 899
+   i32.const 896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19313,7 +19303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 900
+   i32.const 897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19326,7 +19316,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 909
+   i32.const 906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19339,7 +19329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 910
+   i32.const 907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19352,7 +19342,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 911
+   i32.const 908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19365,7 +19355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 912
+   i32.const 909
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19378,7 +19368,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 913
+   i32.const 910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19391,7 +19381,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 914
+   i32.const 911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19404,7 +19394,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 915
+   i32.const 912
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19417,7 +19407,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 916
+   i32.const 913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19430,7 +19420,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 917
+   i32.const 914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19443,7 +19433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 918
+   i32.const 915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19456,7 +19446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 921
+   i32.const 918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19469,7 +19459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 922
+   i32.const 919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19482,7 +19472,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 923
+   i32.const 920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19495,7 +19485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 924
+   i32.const 921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19508,7 +19498,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 925
+   i32.const 922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19521,7 +19511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 926
+   i32.const 923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19534,7 +19524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 927
+   i32.const 924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19547,7 +19537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 928
+   i32.const 925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19560,7 +19550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 929
+   i32.const 926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19573,7 +19563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 930
+   i32.const 927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19586,7 +19576,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 931
+   i32.const 928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19599,7 +19589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 932
+   i32.const 929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19612,7 +19602,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 933
+   i32.const 930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19625,7 +19615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 934
+   i32.const 931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19638,7 +19628,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 935
+   i32.const 932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19651,7 +19641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 936
+   i32.const 933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19664,7 +19654,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 937
+   i32.const 934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19677,7 +19667,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 938
+   i32.const 935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19690,7 +19680,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 939
+   i32.const 936
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19703,7 +19693,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 940
+   i32.const 937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19716,7 +19706,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 941
+   i32.const 938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19729,7 +19719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 942
+   i32.const 939
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19742,7 +19732,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 943
+   i32.const 940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19755,7 +19745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 944
+   i32.const 941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19768,7 +19758,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 945
+   i32.const 942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19781,7 +19771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 946
+   i32.const 943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19794,7 +19784,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 947
+   i32.const 944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19807,7 +19797,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 948
+   i32.const 945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19820,7 +19810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 949
+   i32.const 946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19833,7 +19823,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 950
+   i32.const 947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19846,7 +19836,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 951
+   i32.const 948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19859,7 +19849,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 952
+   i32.const 949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19872,7 +19862,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 953
+   i32.const 950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19885,7 +19875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 954
+   i32.const 951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19898,7 +19888,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 955
+   i32.const 952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19911,7 +19901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 956
+   i32.const 953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19924,7 +19914,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 957
+   i32.const 954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19937,7 +19927,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 958
+   i32.const 955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19950,7 +19940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 959
+   i32.const 956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19963,7 +19953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 960
+   i32.const 957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19976,7 +19966,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 961
+   i32.const 958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -19989,7 +19979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 962
+   i32.const 959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20002,7 +19992,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 963
+   i32.const 960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20015,7 +20005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 964
+   i32.const 961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20028,7 +20018,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 965
+   i32.const 962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20051,7 +20041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 976
+   i32.const 973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20074,7 +20064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 977
+   i32.const 974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20097,7 +20087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 978
+   i32.const 975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20120,7 +20110,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 979
+   i32.const 976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20143,7 +20133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 980
+   i32.const 977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20166,7 +20156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 981
+   i32.const 978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20189,7 +20179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 982
+   i32.const 979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20212,7 +20202,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 983
+   i32.const 980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20235,7 +20225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 984
+   i32.const 981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20258,7 +20248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 985
+   i32.const 982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20281,7 +20271,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 988
+   i32.const 985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20304,7 +20294,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 989
+   i32.const 986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20327,7 +20317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 990
+   i32.const 987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20350,7 +20340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 991
+   i32.const 988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20373,7 +20363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 992
+   i32.const 989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20396,7 +20386,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 993
+   i32.const 990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20419,7 +20409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 994
+   i32.const 991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20442,7 +20432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 995
+   i32.const 992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20465,7 +20455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 996
+   i32.const 993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20488,7 +20478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 997
+   i32.const 994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20511,7 +20501,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 998
+   i32.const 995
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20534,7 +20524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 999
+   i32.const 996
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20557,7 +20547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1000
+   i32.const 997
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20580,7 +20570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1001
+   i32.const 998
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20603,7 +20593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1002
+   i32.const 999
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20626,7 +20616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1003
+   i32.const 1000
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20649,7 +20639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1004
+   i32.const 1001
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20672,7 +20662,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1005
+   i32.const 1002
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20695,7 +20685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1006
+   i32.const 1003
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20718,7 +20708,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1007
+   i32.const 1004
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20741,7 +20731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1008
+   i32.const 1005
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20764,7 +20754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1009
+   i32.const 1006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20787,7 +20777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1010
+   i32.const 1007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20810,7 +20800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1011
+   i32.const 1008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20833,7 +20823,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1012
+   i32.const 1009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20856,7 +20846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1013
+   i32.const 1010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20879,7 +20869,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1014
+   i32.const 1011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20902,7 +20892,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1015
+   i32.const 1012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20925,7 +20915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1016
+   i32.const 1013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20948,7 +20938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1017
+   i32.const 1014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20971,7 +20961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1018
+   i32.const 1015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -20994,7 +20984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1019
+   i32.const 1016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21017,7 +21007,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1020
+   i32.const 1017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21040,7 +21030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1021
+   i32.const 1018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21063,7 +21053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1022
+   i32.const 1019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21086,7 +21076,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1023
+   i32.const 1020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21109,7 +21099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1024
+   i32.const 1021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21132,7 +21122,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1025
+   i32.const 1022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21155,7 +21145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1026
+   i32.const 1023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21178,7 +21168,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1027
+   i32.const 1024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21201,7 +21191,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1028
+   i32.const 1025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21224,7 +21214,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1029
+   i32.const 1026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21247,7 +21237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1030
+   i32.const 1027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21270,7 +21260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1031
+   i32.const 1028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21293,7 +21283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1032
+   i32.const 1029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21316,7 +21306,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1033
+   i32.const 1030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21339,7 +21329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1034
+   i32.const 1031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21362,7 +21352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1035
+   i32.const 1032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21385,7 +21375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1036
+   i32.const 1033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21408,7 +21398,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1037
+   i32.const 1034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21431,7 +21421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1038
+   i32.const 1035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21454,7 +21444,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1039
+   i32.const 1036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21477,7 +21467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1040
+   i32.const 1037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21500,7 +21490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1041
+   i32.const 1038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21523,7 +21513,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1042
+   i32.const 1039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21546,7 +21536,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1043
+   i32.const 1040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21569,7 +21559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1044
+   i32.const 1041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21592,7 +21582,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1045
+   i32.const 1042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21615,7 +21605,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1046
+   i32.const 1043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21638,7 +21628,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1047
+   i32.const 1044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21661,7 +21651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1048
+   i32.const 1045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21684,7 +21674,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1049
+   i32.const 1046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21707,7 +21697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1050
+   i32.const 1047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21730,7 +21720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1051
+   i32.const 1048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21753,7 +21743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1052
+   i32.const 1049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21776,7 +21766,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1053
+   i32.const 1050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21799,7 +21789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1054
+   i32.const 1051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21822,7 +21812,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1055
+   i32.const 1052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21845,7 +21835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1056
+   i32.const 1053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21868,7 +21858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1057
+   i32.const 1054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21891,7 +21881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1058
+   i32.const 1055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21914,7 +21904,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1059
+   i32.const 1056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21937,7 +21927,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1060
+   i32.const 1057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21960,7 +21950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1061
+   i32.const 1058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -21983,7 +21973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1062
+   i32.const 1059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22006,7 +21996,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1063
+   i32.const 1060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22029,7 +22019,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1064
+   i32.const 1061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22052,7 +22042,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1065
+   i32.const 1062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22075,7 +22065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1068
+   i32.const 1065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22098,7 +22088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1069
+   i32.const 1066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22121,7 +22111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1070
+   i32.const 1067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22144,7 +22134,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1071
+   i32.const 1068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22167,7 +22157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1072
+   i32.const 1069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22190,7 +22180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1073
+   i32.const 1070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22213,7 +22203,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1074
+   i32.const 1071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22236,7 +22226,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1075
+   i32.const 1072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22259,7 +22249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1076
+   i32.const 1073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22282,7 +22272,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1077
+   i32.const 1074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22305,7 +22295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1078
+   i32.const 1075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22328,7 +22318,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1079
+   i32.const 1076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22351,7 +22341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1080
+   i32.const 1077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22374,7 +22364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1081
+   i32.const 1078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22397,7 +22387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1082
+   i32.const 1079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22420,7 +22410,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1083
+   i32.const 1080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22443,7 +22433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1084
+   i32.const 1081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22466,7 +22456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1085
+   i32.const 1082
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22489,7 +22479,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1086
+   i32.const 1083
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22512,7 +22502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1087
+   i32.const 1084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22535,7 +22525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1088
+   i32.const 1085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22558,7 +22548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1089
+   i32.const 1086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22581,7 +22571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1090
+   i32.const 1087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22604,7 +22594,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1091
+   i32.const 1088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22627,7 +22617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1092
+   i32.const 1089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22650,7 +22640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1093
+   i32.const 1090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22673,7 +22663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1094
+   i32.const 1091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22696,7 +22686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1095
+   i32.const 1092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22719,7 +22709,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1096
+   i32.const 1093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22742,7 +22732,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1097
+   i32.const 1094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22765,7 +22755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1098
+   i32.const 1095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22788,7 +22778,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1099
+   i32.const 1096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22811,7 +22801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1100
+   i32.const 1097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22834,7 +22824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1101
+   i32.const 1098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22857,7 +22847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1102
+   i32.const 1099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22880,7 +22870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1103
+   i32.const 1100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22903,7 +22893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1104
+   i32.const 1101
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22926,7 +22916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1105
+   i32.const 1102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22939,7 +22929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1107
+   i32.const 1104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22952,7 +22942,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1108
+   i32.const 1105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22965,7 +22955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1109
+   i32.const 1106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22977,7 +22967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1113
+   i32.const 1110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -22989,7 +22979,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1114
+   i32.const 1111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23001,7 +22991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1117
+   i32.const 1114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23013,7 +23003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1119
+   i32.const 1116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23025,7 +23015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1120
+   i32.const 1117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23037,7 +23027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1123
+   i32.const 1120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23049,7 +23039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1125
+   i32.const 1122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23061,7 +23051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1128
+   i32.const 1125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23073,7 +23063,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1130
+   i32.const 1127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23085,7 +23075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1131
+   i32.const 1128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23097,7 +23087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1132
+   i32.const 1129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23109,7 +23099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1134
+   i32.const 1131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23121,7 +23111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1136
+   i32.const 1133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23133,7 +23123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1137
+   i32.const 1134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23145,7 +23135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1138
+   i32.const 1135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23157,7 +23147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1139
+   i32.const 1136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23169,7 +23159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1140
+   i32.const 1137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23181,7 +23171,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1141
+   i32.const 1138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23195,7 +23185,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1150
+   i32.const 1147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23209,7 +23199,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1151
+   i32.const 1148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23223,7 +23213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1152
+   i32.const 1149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23237,7 +23227,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1153
+   i32.const 1150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23251,7 +23241,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1154
+   i32.const 1151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23265,7 +23255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1155
+   i32.const 1152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23279,7 +23269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1156
+   i32.const 1153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23293,7 +23283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1157
+   i32.const 1154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23307,7 +23297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1158
+   i32.const 1155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23321,7 +23311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1159
+   i32.const 1156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23335,7 +23325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1162
+   i32.const 1159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23349,7 +23339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1163
+   i32.const 1160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23363,7 +23353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1164
+   i32.const 1161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23377,7 +23367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1165
+   i32.const 1162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23391,7 +23381,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1166
+   i32.const 1163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23405,7 +23395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1169
+   i32.const 1166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23419,7 +23409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1170
+   i32.const 1167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23433,7 +23423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1171
+   i32.const 1168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23447,7 +23437,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1172
+   i32.const 1169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23461,7 +23451,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1173
+   i32.const 1170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23475,7 +23465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1174
+   i32.const 1171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23489,7 +23479,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1175
+   i32.const 1172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23503,7 +23493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1176
+   i32.const 1173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23517,7 +23507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1177
+   i32.const 1174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23531,7 +23521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1178
+   i32.const 1175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23545,7 +23535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1179
+   i32.const 1176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23559,7 +23549,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1180
+   i32.const 1177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23573,7 +23563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1181
+   i32.const 1178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23587,7 +23577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1182
+   i32.const 1179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23601,7 +23591,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1183
+   i32.const 1180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23615,7 +23605,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1184
+   i32.const 1181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23629,7 +23619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1185
+   i32.const 1182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23643,7 +23633,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1186
+   i32.const 1183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23657,7 +23647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1187
+   i32.const 1184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23671,7 +23661,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1188
+   i32.const 1185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23685,7 +23675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1189
+   i32.const 1186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23699,7 +23689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1190
+   i32.const 1187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23713,7 +23703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1191
+   i32.const 1188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23727,7 +23717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1192
+   i32.const 1189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23741,7 +23731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1193
+   i32.const 1190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23755,7 +23745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1194
+   i32.const 1191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23769,7 +23759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1195
+   i32.const 1192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23783,7 +23773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1196
+   i32.const 1193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23797,7 +23787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1197
+   i32.const 1194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23811,7 +23801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1198
+   i32.const 1195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23825,7 +23815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1199
+   i32.const 1196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23839,7 +23829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1200
+   i32.const 1197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23853,7 +23843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1201
+   i32.const 1198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23867,7 +23857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1202
+   i32.const 1199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23881,7 +23871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1203
+   i32.const 1200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23895,7 +23885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1204
+   i32.const 1201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23909,7 +23899,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1205
+   i32.const 1202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23923,7 +23913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1206
+   i32.const 1203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23937,7 +23927,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1209
+   i32.const 1206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23951,7 +23941,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1210
+   i32.const 1207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23965,7 +23955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1211
+   i32.const 1208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23979,7 +23969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1212
+   i32.const 1209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -23993,7 +23983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1213
+   i32.const 1210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24007,7 +23997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1214
+   i32.const 1211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24021,7 +24011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1215
+   i32.const 1212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24035,7 +24025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1216
+   i32.const 1213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24049,7 +24039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1217
+   i32.const 1214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24063,7 +24053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1218
+   i32.const 1215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24077,7 +24067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1219
+   i32.const 1216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24091,7 +24081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1220
+   i32.const 1217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24105,7 +24095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1221
+   i32.const 1218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24119,7 +24109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1222
+   i32.const 1219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24132,7 +24122,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1233
+   i32.const 1230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24145,7 +24135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1234
+   i32.const 1231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24158,7 +24148,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1235
+   i32.const 1232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24171,7 +24161,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1236
+   i32.const 1233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24184,7 +24174,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1237
+   i32.const 1234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24197,7 +24187,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1238
+   i32.const 1235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24210,7 +24200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1239
+   i32.const 1236
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24223,7 +24213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1240
+   i32.const 1237
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24236,7 +24226,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1241
+   i32.const 1238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24249,7 +24239,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1242
+   i32.const 1239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24262,7 +24252,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1245
+   i32.const 1242
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24275,7 +24265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1246
+   i32.const 1243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24288,7 +24278,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1247
+   i32.const 1244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24301,7 +24291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1248
+   i32.const 1245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24314,7 +24304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1249
+   i32.const 1246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24327,7 +24317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1258
+   i32.const 1255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24340,7 +24330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1259
+   i32.const 1256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24353,7 +24343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1260
+   i32.const 1257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24366,7 +24356,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1261
+   i32.const 1258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24379,7 +24369,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1262
+   i32.const 1259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24392,7 +24382,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1263
+   i32.const 1260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24405,7 +24395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1264
+   i32.const 1261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24418,7 +24408,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1265
+   i32.const 1262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24431,7 +24421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1266
+   i32.const 1263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24444,7 +24434,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1267
+   i32.const 1264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24457,7 +24447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1270
+   i32.const 1267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24470,7 +24460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1271
+   i32.const 1268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24483,7 +24473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1272
+   i32.const 1269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24496,7 +24486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1273
+   i32.const 1270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24509,7 +24499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1274
+   i32.const 1271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24532,7 +24522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1286
+   i32.const 1283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24555,7 +24545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1287
+   i32.const 1284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24578,7 +24568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1288
+   i32.const 1285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24601,7 +24591,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1289
+   i32.const 1286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24624,7 +24614,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1290
+   i32.const 1287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24647,7 +24637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1291
+   i32.const 1288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24670,7 +24660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1292
+   i32.const 1289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24693,7 +24683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1293
+   i32.const 1290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24716,7 +24706,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1294
+   i32.const 1291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24739,7 +24729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1295
+   i32.const 1292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24762,7 +24752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1298
+   i32.const 1295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24785,7 +24775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1299
+   i32.const 1296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24808,7 +24798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1300
+   i32.const 1297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24831,7 +24821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1301
+   i32.const 1298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24854,7 +24844,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1302
+   i32.const 1299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24877,7 +24867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1303
+   i32.const 1300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24900,7 +24890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1304
+   i32.const 1301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24923,7 +24913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1305
+   i32.const 1302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24946,7 +24936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1306
+   i32.const 1303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24969,7 +24959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1307
+   i32.const 1304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -24992,7 +24982,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1308
+   i32.const 1305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25015,7 +25005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1311
+   i32.const 1308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25038,7 +25028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1312
+   i32.const 1309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25061,7 +25051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1314
+   i32.const 1311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25084,7 +25074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1321
+   i32.const 1318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25107,7 +25097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1322
+   i32.const 1319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25130,7 +25120,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1329
+   i32.const 1326
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25153,7 +25143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1336
+   i32.const 1333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25176,7 +25166,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1343
+   i32.const 1340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25199,7 +25189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1350
+   i32.const 1347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25222,7 +25212,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1357
+   i32.const 1354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25245,7 +25235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1364
+   i32.const 1361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25268,7 +25258,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1370
+   i32.const 1367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25291,7 +25281,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1376
+   i32.const 1373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25314,7 +25304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1382
+   i32.const 1379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25337,7 +25327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1389
+   i32.const 1386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25360,7 +25350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1396
+   i32.const 1393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25383,7 +25373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1403
+   i32.const 1400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25406,7 +25396,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1410
+   i32.const 1407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25429,7 +25419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1417
+   i32.const 1414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25452,7 +25442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1424
+   i32.const 1421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25475,7 +25465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1431
+   i32.const 1428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25498,7 +25488,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1438
+   i32.const 1435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25512,7 +25502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1452
+   i32.const 1449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25526,7 +25516,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1453
+   i32.const 1450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25540,7 +25530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1454
+   i32.const 1451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25554,7 +25544,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1455
+   i32.const 1452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25568,7 +25558,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1456
+   i32.const 1453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25582,7 +25572,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1457
+   i32.const 1454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25596,7 +25586,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1458
+   i32.const 1455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25610,7 +25600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1459
+   i32.const 1456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25624,7 +25614,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1460
+   i32.const 1457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25638,7 +25628,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1461
+   i32.const 1458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25652,7 +25642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1464
+   i32.const 1461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25666,7 +25656,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1465
+   i32.const 1462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25680,7 +25670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1466
+   i32.const 1463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25694,7 +25684,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1467
+   i32.const 1464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25708,7 +25698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1468
+   i32.const 1465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25722,7 +25712,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1469
+   i32.const 1466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25736,7 +25726,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1470
+   i32.const 1467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25750,7 +25740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1471
+   i32.const 1468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25764,7 +25754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1472
+   i32.const 1469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25778,7 +25768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1473
+   i32.const 1470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25792,7 +25782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1474
+   i32.const 1471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25806,7 +25796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1475
+   i32.const 1472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25820,7 +25810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1476
+   i32.const 1473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25834,7 +25824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1477
+   i32.const 1474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25857,7 +25847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1489
+   i32.const 1486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25880,7 +25870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1490
+   i32.const 1487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25903,7 +25893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1491
+   i32.const 1488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25926,7 +25916,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1492
+   i32.const 1489
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25949,7 +25939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1493
+   i32.const 1490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25972,7 +25962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1494
+   i32.const 1491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -25995,7 +25985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1495
+   i32.const 1492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26018,7 +26008,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1496
+   i32.const 1493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26041,7 +26031,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1497
+   i32.const 1494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26064,7 +26054,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1498
+   i32.const 1495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26087,7 +26077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1501
+   i32.const 1498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26110,7 +26100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1502
+   i32.const 1499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26133,7 +26123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1503
+   i32.const 1500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26156,7 +26146,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1504
+   i32.const 1501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26179,7 +26169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1505
+   i32.const 1502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26202,7 +26192,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1506
+   i32.const 1503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26225,7 +26215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1507
+   i32.const 1504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26248,7 +26238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1508
+   i32.const 1505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26271,7 +26261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1509
+   i32.const 1506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26285,7 +26275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1518
+   i32.const 1515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26299,7 +26289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1519
+   i32.const 1516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26313,7 +26303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1520
+   i32.const 1517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26327,7 +26317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1521
+   i32.const 1518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26341,7 +26331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1522
+   i32.const 1519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26355,7 +26345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1523
+   i32.const 1520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26369,7 +26359,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1524
+   i32.const 1521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26383,7 +26373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1525
+   i32.const 1522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26397,7 +26387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1526
+   i32.const 1523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26411,7 +26401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1527
+   i32.const 1524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26425,7 +26415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1530
+   i32.const 1527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26439,7 +26429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1531
+   i32.const 1528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26453,7 +26443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1532
+   i32.const 1529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26467,7 +26457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1533
+   i32.const 1530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26481,7 +26471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1534
+   i32.const 1531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26495,7 +26485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1535
+   i32.const 1532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26509,7 +26499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1536
+   i32.const 1533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26522,7 +26512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1548
+   i32.const 1545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26535,7 +26525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1549
+   i32.const 1546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26548,7 +26538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1550
+   i32.const 1547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26561,7 +26551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1551
+   i32.const 1548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26574,7 +26564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1552
+   i32.const 1549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26587,7 +26577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1553
+   i32.const 1550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26600,7 +26590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1554
+   i32.const 1551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26613,7 +26603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1555
+   i32.const 1552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26626,7 +26616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1556
+   i32.const 1553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26639,7 +26629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1557
+   i32.const 1554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26652,7 +26642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1560
+   i32.const 1557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26665,7 +26655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1561
+   i32.const 1558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26678,7 +26668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1562
+   i32.const 1559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26691,7 +26681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1563
+   i32.const 1560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26704,7 +26694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1564
+   i32.const 1561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26717,7 +26707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1565
+   i32.const 1562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26730,7 +26720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1566
+   i32.const 1563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26743,7 +26733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1567
+   i32.const 1564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26756,7 +26746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1568
+   i32.const 1565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26769,7 +26759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1569
+   i32.const 1566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26782,7 +26772,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1570
+   i32.const 1567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26795,7 +26785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1571
+   i32.const 1568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26808,7 +26798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1572
+   i32.const 1569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26821,7 +26811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1573
+   i32.const 1570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26834,7 +26824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1574
+   i32.const 1571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26847,7 +26837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1575
+   i32.const 1572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26860,7 +26850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1576
+   i32.const 1573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26873,7 +26863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1577
+   i32.const 1574
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26886,7 +26876,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1578
+   i32.const 1575
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26899,7 +26889,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1579
+   i32.const 1576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26912,7 +26902,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1580
+   i32.const 1577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26925,7 +26915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1581
+   i32.const 1578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26938,7 +26928,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1582
+   i32.const 1579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26951,7 +26941,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1583
+   i32.const 1580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26964,7 +26954,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1584
+   i32.const 1581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26977,7 +26967,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1595
+   i32.const 1592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -26990,7 +26980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1596
+   i32.const 1593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27003,7 +26993,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1597
+   i32.const 1594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27016,7 +27006,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1598
+   i32.const 1595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27029,7 +27019,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1599
+   i32.const 1596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27042,7 +27032,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1600
+   i32.const 1597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27055,7 +27045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1601
+   i32.const 1598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27068,7 +27058,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1602
+   i32.const 1599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27081,7 +27071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1603
+   i32.const 1600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27094,7 +27084,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1604
+   i32.const 1601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27116,7 +27106,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1616
+   i32.const 1613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27138,7 +27128,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1617
+   i32.const 1614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27160,7 +27150,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1618
+   i32.const 1615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27182,7 +27172,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1619
+   i32.const 1616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27204,7 +27194,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1620
+   i32.const 1617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27226,7 +27216,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1621
+   i32.const 1618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27248,7 +27238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1622
+   i32.const 1619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27270,7 +27260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1623
+   i32.const 1620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27292,7 +27282,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1624
+   i32.const 1621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27314,7 +27304,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1625
+   i32.const 1622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27336,7 +27326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1628
+   i32.const 1625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27358,7 +27348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1629
+   i32.const 1626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27380,7 +27370,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1630
+   i32.const 1627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27402,7 +27392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1631
+   i32.const 1628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27424,7 +27414,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1632
+   i32.const 1629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27446,7 +27436,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1633
+   i32.const 1630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27468,7 +27458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1634
+   i32.const 1631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27490,7 +27480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1635
+   i32.const 1632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27512,7 +27502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1636
+   i32.const 1633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27534,7 +27524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1637
+   i32.const 1634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27556,7 +27546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1638
+   i32.const 1635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27578,7 +27568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1639
+   i32.const 1636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27600,7 +27590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1640
+   i32.const 1637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27622,7 +27612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1641
+   i32.const 1638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27644,7 +27634,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1642
+   i32.const 1639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27657,7 +27647,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1651
+   i32.const 1648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27670,7 +27660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1652
+   i32.const 1649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27683,7 +27673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1653
+   i32.const 1650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27696,7 +27686,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1654
+   i32.const 1651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27709,7 +27699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1655
+   i32.const 1652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27722,7 +27712,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1656
+   i32.const 1653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27735,7 +27725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1657
+   i32.const 1654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27748,7 +27738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1658
+   i32.const 1655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27761,7 +27751,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1659
+   i32.const 1656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27774,7 +27764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1660
+   i32.const 1657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27787,7 +27777,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1663
+   i32.const 1660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27800,7 +27790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1664
+   i32.const 1661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27813,7 +27803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1665
+   i32.const 1662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27826,7 +27816,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1666
+   i32.const 1663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27839,7 +27829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1667
+   i32.const 1664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27852,7 +27842,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1668
+   i32.const 1665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27865,7 +27855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1669
+   i32.const 1666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27878,7 +27868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1670
+   i32.const 1667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27891,7 +27881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1671
+   i32.const 1668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27904,7 +27894,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1672
+   i32.const 1669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27917,7 +27907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1673
+   i32.const 1670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27930,7 +27920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1674
+   i32.const 1671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27943,7 +27933,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1675
+   i32.const 1672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27956,7 +27946,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1676
+   i32.const 1673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27969,7 +27959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1677
+   i32.const 1674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27983,7 +27973,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1691
+   i32.const 1688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -27997,7 +27987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1692
+   i32.const 1689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28011,7 +28001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1693
+   i32.const 1690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28025,7 +28015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1694
+   i32.const 1691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28039,7 +28029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1695
+   i32.const 1692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28053,7 +28043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1696
+   i32.const 1693
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28067,7 +28057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1697
+   i32.const 1694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28081,7 +28071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1698
+   i32.const 1695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28095,7 +28085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1699
+   i32.const 1696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28109,7 +28099,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1700
+   i32.const 1697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28123,7 +28113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1703
+   i32.const 1700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28137,7 +28127,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1704
+   i32.const 1701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28151,7 +28141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1705
+   i32.const 1702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28165,7 +28155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1706
+   i32.const 1703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28179,7 +28169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1707
+   i32.const 1704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28193,7 +28183,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1708
+   i32.const 1705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28207,7 +28197,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1709
+   i32.const 1706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28221,7 +28211,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1710
+   i32.const 1707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28235,7 +28225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1711
+   i32.const 1708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28249,7 +28239,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1712
+   i32.const 1709
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28263,7 +28253,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1713
+   i32.const 1710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28277,7 +28267,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1714
+   i32.const 1711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28291,7 +28281,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1715
+   i32.const 1712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28305,7 +28295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1716
+   i32.const 1713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28319,7 +28309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1717
+   i32.const 1714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28333,7 +28323,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1718
+   i32.const 1715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28347,7 +28337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1719
+   i32.const 1716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28361,7 +28351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1720
+   i32.const 1717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28375,7 +28365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1721
+   i32.const 1718
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28389,7 +28379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1722
+   i32.const 1719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28403,7 +28393,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1723
+   i32.const 1720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28417,7 +28407,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1732
+   i32.const 1729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28431,7 +28421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1733
+   i32.const 1730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28445,7 +28435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1734
+   i32.const 1731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28459,7 +28449,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1735
+   i32.const 1732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28473,7 +28463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1736
+   i32.const 1733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28487,7 +28477,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1737
+   i32.const 1734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28501,7 +28491,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1738
+   i32.const 1735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28515,7 +28505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1739
+   i32.const 1736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28529,7 +28519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1740
+   i32.const 1737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28543,7 +28533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1741
+   i32.const 1738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28557,7 +28547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1744
+   i32.const 1741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28571,7 +28561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1745
+   i32.const 1742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28585,7 +28575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1746
+   i32.const 1743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28599,7 +28589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1747
+   i32.const 1744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28613,7 +28603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1748
+   i32.const 1745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28627,7 +28617,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1749
+   i32.const 1746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28641,7 +28631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1750
+   i32.const 1747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28655,7 +28645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1751
+   i32.const 1748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28669,7 +28659,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1752
+   i32.const 1749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28683,7 +28673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1753
+   i32.const 1750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28697,7 +28687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1754
+   i32.const 1751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28711,7 +28701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1755
+   i32.const 1752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28725,7 +28715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1756
+   i32.const 1753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28739,7 +28729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1757
+   i32.const 1754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28753,7 +28743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1758
+   i32.const 1755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28767,7 +28757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1759
+   i32.const 1756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28781,7 +28771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1760
+   i32.const 1757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28795,7 +28785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1761
+   i32.const 1758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28809,7 +28799,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1762
+   i32.const 1759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28832,7 +28822,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1774
+   i32.const 1771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28855,7 +28845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1775
+   i32.const 1772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28878,7 +28868,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1776
+   i32.const 1773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28901,7 +28891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1777
+   i32.const 1774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28924,7 +28914,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1778
+   i32.const 1775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28947,7 +28937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1779
+   i32.const 1776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28970,7 +28960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1780
+   i32.const 1777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -28993,7 +28983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1781
+   i32.const 1778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29016,7 +29006,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1782
+   i32.const 1779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29039,7 +29029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1783
+   i32.const 1780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29062,7 +29052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1786
+   i32.const 1783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29085,7 +29075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1787
+   i32.const 1784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29108,7 +29098,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1788
+   i32.const 1785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29131,7 +29121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1789
+   i32.const 1786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29154,7 +29144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1790
+   i32.const 1787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29177,7 +29167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1791
+   i32.const 1788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29200,7 +29190,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1792
+   i32.const 1789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29223,7 +29213,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1793
+   i32.const 1790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29237,7 +29227,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1802
+   i32.const 1799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29251,7 +29241,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1803
+   i32.const 1800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29265,7 +29255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1804
+   i32.const 1801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29279,7 +29269,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1805
+   i32.const 1802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29293,7 +29283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1806
+   i32.const 1803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29307,7 +29297,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1807
+   i32.const 1804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29321,7 +29311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1808
+   i32.const 1805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29335,7 +29325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1809
+   i32.const 1806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29349,7 +29339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1812
+   i32.const 1809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29363,7 +29353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1813
+   i32.const 1810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29377,7 +29367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1814
+   i32.const 1811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29391,7 +29381,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1815
+   i32.const 1812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29405,7 +29395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1816
+   i32.const 1813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29419,7 +29409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1817
+   i32.const 1814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29433,7 +29423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1818
+   i32.const 1815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29447,7 +29437,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1819
+   i32.const 1816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29460,7 +29450,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1831
+   i32.const 1828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29473,7 +29463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1832
+   i32.const 1829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29486,7 +29476,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1833
+   i32.const 1830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29499,7 +29489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1834
+   i32.const 1831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29512,7 +29502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1835
+   i32.const 1832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29525,7 +29515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1836
+   i32.const 1833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29538,7 +29528,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1837
+   i32.const 1834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29551,7 +29541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1838
+   i32.const 1835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29564,7 +29554,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1839
+   i32.const 1836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29577,7 +29567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1840
+   i32.const 1837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29590,7 +29580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1843
+   i32.const 1840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29603,7 +29593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1844
+   i32.const 1841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29616,7 +29606,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1845
+   i32.const 1842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29629,7 +29619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1846
+   i32.const 1843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29642,7 +29632,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1847
+   i32.const 1844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29655,7 +29645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1848
+   i32.const 1845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29668,7 +29658,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1849
+   i32.const 1846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29681,7 +29671,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1850
+   i32.const 1847
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29694,7 +29684,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1859
+   i32.const 1856
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29707,7 +29697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1860
+   i32.const 1857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29720,7 +29710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1861
+   i32.const 1858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29733,7 +29723,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1862
+   i32.const 1859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29746,7 +29736,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1863
+   i32.const 1860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29759,7 +29749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1864
+   i32.const 1861
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29772,7 +29762,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1865
+   i32.const 1862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29785,7 +29775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1866
+   i32.const 1863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29798,7 +29788,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1867
+   i32.const 1864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29811,7 +29801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1868
+   i32.const 1865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29824,7 +29814,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1871
+   i32.const 1868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29837,7 +29827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1872
+   i32.const 1869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29850,7 +29840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1873
+   i32.const 1870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29863,7 +29853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1874
+   i32.const 1871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29876,7 +29866,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1875
+   i32.const 1872
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29889,7 +29879,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1876
+   i32.const 1873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29902,7 +29892,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1877
+   i32.const 1874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29915,7 +29905,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1878
+   i32.const 1875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29938,7 +29928,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1890
+   i32.const 1887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29961,7 +29951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1891
+   i32.const 1888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -29984,7 +29974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1892
+   i32.const 1889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30007,7 +29997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1893
+   i32.const 1890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30030,7 +30020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1894
+   i32.const 1891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30053,7 +30043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1895
+   i32.const 1892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30076,7 +30066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1896
+   i32.const 1893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30099,7 +30089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1897
+   i32.const 1894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30122,7 +30112,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1898
+   i32.const 1895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30145,7 +30135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1899
+   i32.const 1896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30168,7 +30158,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1902
+   i32.const 1899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30191,7 +30181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1903
+   i32.const 1900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30214,7 +30204,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1904
+   i32.const 1901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30237,7 +30227,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1905
+   i32.const 1902
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30260,7 +30250,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1906
+   i32.const 1903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30283,7 +30273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1907
+   i32.const 1904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30306,7 +30296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1908
+   i32.const 1905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30329,7 +30319,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1909
+   i32.const 1906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30343,7 +30333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1918
+   i32.const 1915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30357,7 +30347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1919
+   i32.const 1916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30371,7 +30361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1920
+   i32.const 1917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30385,7 +30375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1921
+   i32.const 1918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30399,7 +30389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1922
+   i32.const 1919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30413,7 +30403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1923
+   i32.const 1920
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30427,7 +30417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1924
+   i32.const 1921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30441,7 +30431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1925
+   i32.const 1922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30455,7 +30445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1926
+   i32.const 1923
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30469,7 +30459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1927
+   i32.const 1924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30483,7 +30473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1930
+   i32.const 1927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30497,7 +30487,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1931
+   i32.const 1928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30511,7 +30501,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1932
+   i32.const 1929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30525,7 +30515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1933
+   i32.const 1930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30539,7 +30529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1934
+   i32.const 1931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30553,7 +30543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1935
+   i32.const 1932
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30567,7 +30557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1936
+   i32.const 1933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30581,7 +30571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1937
+   i32.const 1934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30595,7 +30585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1938
+   i32.const 1935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30618,7 +30608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1950
+   i32.const 1947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30641,7 +30631,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1951
+   i32.const 1948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30664,7 +30654,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1952
+   i32.const 1949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30687,7 +30677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1953
+   i32.const 1950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30710,7 +30700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1954
+   i32.const 1951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30733,7 +30723,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1955
+   i32.const 1952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30756,7 +30746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1956
+   i32.const 1953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30779,7 +30769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1957
+   i32.const 1954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30802,7 +30792,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1958
+   i32.const 1955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30825,7 +30815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1959
+   i32.const 1956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30848,7 +30838,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1962
+   i32.const 1959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30871,7 +30861,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1963
+   i32.const 1960
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30894,7 +30884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1964
+   i32.const 1961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30917,7 +30907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1965
+   i32.const 1962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30940,7 +30930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1966
+   i32.const 1963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30963,7 +30953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1967
+   i32.const 1964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -30986,7 +30976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1968
+   i32.const 1965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31009,7 +30999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1969
+   i32.const 1966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31022,7 +31012,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1978
+   i32.const 1975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31035,7 +31025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1979
+   i32.const 1976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31048,7 +31038,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1980
+   i32.const 1977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31061,7 +31051,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1981
+   i32.const 1978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31074,7 +31064,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1982
+   i32.const 1979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31087,7 +31077,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1983
+   i32.const 1980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31100,7 +31090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1984
+   i32.const 1981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31113,7 +31103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1985
+   i32.const 1982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31126,7 +31116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1986
+   i32.const 1983
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31139,7 +31129,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1987
+   i32.const 1984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31152,7 +31142,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1990
+   i32.const 1987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31165,7 +31155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1991
+   i32.const 1988
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31178,7 +31168,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1992
+   i32.const 1989
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31191,7 +31181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1993
+   i32.const 1990
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31204,7 +31194,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1994
+   i32.const 1991
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31217,7 +31207,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1995
+   i32.const 1992
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31230,7 +31220,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1996
+   i32.const 1993
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31243,7 +31233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 1997
+   i32.const 1994
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31256,7 +31246,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2009
+   i32.const 2006
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31269,7 +31259,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2010
+   i32.const 2007
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31282,7 +31272,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2011
+   i32.const 2008
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31295,7 +31285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2012
+   i32.const 2009
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31308,7 +31298,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2013
+   i32.const 2010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31321,7 +31311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2014
+   i32.const 2011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31334,7 +31324,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2015
+   i32.const 2012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31347,7 +31337,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2016
+   i32.const 2013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31360,7 +31350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2017
+   i32.const 2014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31373,7 +31363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2018
+   i32.const 2015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31386,7 +31376,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2021
+   i32.const 2018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31399,7 +31389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2022
+   i32.const 2019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31412,7 +31402,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2023
+   i32.const 2020
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31425,7 +31415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2024
+   i32.const 2021
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31438,7 +31428,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2025
+   i32.const 2022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31451,7 +31441,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2026
+   i32.const 2023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31464,7 +31454,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2027
+   i32.const 2024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31477,7 +31467,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2028
+   i32.const 2025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31490,7 +31480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2029
+   i32.const 2026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31503,7 +31493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2030
+   i32.const 2027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31516,7 +31506,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2031
+   i32.const 2028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31529,7 +31519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2032
+   i32.const 2029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31542,7 +31532,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2033
+   i32.const 2030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31555,7 +31545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2034
+   i32.const 2031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31568,7 +31558,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2035
+   i32.const 2032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31581,7 +31571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2036
+   i32.const 2033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31594,7 +31584,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2037
+   i32.const 2034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31607,7 +31597,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2038
+   i32.const 2035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31620,7 +31610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2039
+   i32.const 2036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31633,7 +31623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2040
+   i32.const 2037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31646,7 +31636,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2041
+   i32.const 2038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31659,7 +31649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2042
+   i32.const 2039
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31672,7 +31662,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2043
+   i32.const 2040
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31685,7 +31675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2044
+   i32.const 2041
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31698,7 +31688,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2045
+   i32.const 2042
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31711,7 +31701,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2046
+   i32.const 2043
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31724,7 +31714,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2047
+   i32.const 2044
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31737,7 +31727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2048
+   i32.const 2045
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31750,7 +31740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2049
+   i32.const 2046
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31763,7 +31753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2050
+   i32.const 2047
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31776,7 +31766,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2051
+   i32.const 2048
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31789,7 +31779,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2052
+   i32.const 2049
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31802,7 +31792,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2053
+   i32.const 2050
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31815,7 +31805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2054
+   i32.const 2051
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31828,7 +31818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2055
+   i32.const 2052
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31841,7 +31831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2056
+   i32.const 2053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31854,7 +31844,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2057
+   i32.const 2054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31867,7 +31857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2058
+   i32.const 2055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31880,7 +31870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2059
+   i32.const 2056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31893,7 +31883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2060
+   i32.const 2057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31906,7 +31896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2061
+   i32.const 2058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31919,7 +31909,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2062
+   i32.const 2059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31932,7 +31922,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2063
+   i32.const 2060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31945,7 +31935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2064
+   i32.const 2061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31958,7 +31948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2065
+   i32.const 2062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31971,7 +31961,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2066
+   i32.const 2063
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31984,7 +31974,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2067
+   i32.const 2064
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -31997,7 +31987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2068
+   i32.const 2065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32010,7 +32000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2069
+   i32.const 2066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32023,7 +32013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2070
+   i32.const 2067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32036,7 +32026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2071
+   i32.const 2068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32049,7 +32039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2072
+   i32.const 2069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32062,7 +32052,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2073
+   i32.const 2070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32075,7 +32065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2074
+   i32.const 2071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32088,7 +32078,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2075
+   i32.const 2072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32101,7 +32091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2076
+   i32.const 2073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32114,7 +32104,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2077
+   i32.const 2074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32127,7 +32117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2078
+   i32.const 2075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32140,7 +32130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2087
+   i32.const 2084
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32153,7 +32143,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2088
+   i32.const 2085
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32166,7 +32156,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2089
+   i32.const 2086
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32179,7 +32169,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2090
+   i32.const 2087
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32192,7 +32182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2091
+   i32.const 2088
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32205,7 +32195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2092
+   i32.const 2089
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32218,7 +32208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2093
+   i32.const 2090
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32231,7 +32221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2094
+   i32.const 2091
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32244,7 +32234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2095
+   i32.const 2092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32254,6 +32244,19 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2093
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -32267,6 +32270,32 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2097
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2098
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const 1
+  f32.const 1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -32301,45 +32330,6 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2102
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2103
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const 1
-  f32.const 1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2104
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f32.const inf
   f32.const inf
   f32.const 0
@@ -32348,7 +32338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2105
+   i32.const 2102
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32361,7 +32351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2106
+   i32.const 2103
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32374,7 +32364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2107
+   i32.const 2104
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32387,7 +32377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2108
+   i32.const 2105
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32400,7 +32390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2109
+   i32.const 2106
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32413,7 +32403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2110
+   i32.const 2107
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32426,7 +32416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2111
+   i32.const 2108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32439,7 +32429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2112
+   i32.const 2109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32452,7 +32442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2113
+   i32.const 2110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32465,7 +32455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2114
+   i32.const 2111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32478,7 +32468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2115
+   i32.const 2112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32491,7 +32481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2116
+   i32.const 2113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32504,7 +32494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2117
+   i32.const 2114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32517,7 +32507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2118
+   i32.const 2115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32530,7 +32520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2119
+   i32.const 2116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32543,7 +32533,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2120
+   i32.const 2117
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32556,7 +32546,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2121
+   i32.const 2118
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32569,7 +32559,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2122
+   i32.const 2119
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32582,7 +32572,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2123
+   i32.const 2120
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32595,7 +32585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2124
+   i32.const 2121
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32608,7 +32598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2125
+   i32.const 2122
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32621,7 +32611,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2126
+   i32.const 2123
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32634,7 +32624,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2127
+   i32.const 2124
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32647,7 +32637,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2128
+   i32.const 2125
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32660,7 +32650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2129
+   i32.const 2126
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32673,7 +32663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2130
+   i32.const 2127
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32686,7 +32676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2131
+   i32.const 2128
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32699,7 +32689,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2132
+   i32.const 2129
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32712,7 +32702,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2133
+   i32.const 2130
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32725,7 +32715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2134
+   i32.const 2131
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32738,7 +32728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2135
+   i32.const 2132
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32751,7 +32741,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2136
+   i32.const 2133
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32764,7 +32754,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2137
+   i32.const 2134
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32777,7 +32767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2138
+   i32.const 2135
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32790,7 +32780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2139
+   i32.const 2136
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32803,7 +32793,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2140
+   i32.const 2137
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32816,7 +32806,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2141
+   i32.const 2138
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32829,7 +32819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2142
+   i32.const 2139
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32842,7 +32832,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2143
+   i32.const 2140
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32855,7 +32845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2144
+   i32.const 2141
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32868,7 +32858,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2145
+   i32.const 2142
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32881,7 +32871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2146
+   i32.const 2143
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32894,7 +32884,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2147
+   i32.const 2144
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32907,7 +32897,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2148
+   i32.const 2145
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32920,7 +32910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2149
+   i32.const 2146
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32933,7 +32923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2150
+   i32.const 2147
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32946,7 +32936,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2151
+   i32.const 2148
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32959,7 +32949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2152
+   i32.const 2149
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32972,7 +32962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2153
+   i32.const 2150
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32985,7 +32975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2154
+   i32.const 2151
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -32998,7 +32988,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2155
+   i32.const 2152
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33011,7 +33001,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2156
+   i32.const 2153
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33024,7 +33014,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2168
+   i32.const 2165
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33037,7 +33027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2169
+   i32.const 2166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33050,7 +33040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2170
+   i32.const 2167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33063,7 +33053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2171
+   i32.const 2168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33076,7 +33066,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2172
+   i32.const 2169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33089,7 +33079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2173
+   i32.const 2170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33102,7 +33092,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2174
+   i32.const 2171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33115,7 +33105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2175
+   i32.const 2172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33128,7 +33118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2176
+   i32.const 2173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33141,7 +33131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2177
+   i32.const 2174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33154,7 +33144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2180
+   i32.const 2177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33167,7 +33157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2181
+   i32.const 2178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33180,7 +33170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2182
+   i32.const 2179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33193,7 +33183,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2183
+   i32.const 2180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33206,7 +33196,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2184
+   i32.const 2181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33219,7 +33209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2185
+   i32.const 2182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33232,7 +33222,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2186
+   i32.const 2183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33245,7 +33235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2187
+   i32.const 2184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33258,7 +33248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2188
+   i32.const 2185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33271,7 +33261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2189
+   i32.const 2186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33284,7 +33274,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2190
+   i32.const 2187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33297,7 +33287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2191
+   i32.const 2188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33310,7 +33300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2192
+   i32.const 2189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33323,7 +33313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2193
+   i32.const 2190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33336,7 +33326,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2194
+   i32.const 2191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33349,7 +33339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2195
+   i32.const 2192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33362,7 +33352,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2196
+   i32.const 2193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33375,7 +33365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2197
+   i32.const 2194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33388,7 +33378,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2198
+   i32.const 2195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33401,7 +33391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2199
+   i32.const 2196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33414,7 +33404,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2200
+   i32.const 2197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33427,7 +33417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2201
+   i32.const 2198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33440,7 +33430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2202
+   i32.const 2199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33453,7 +33443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2203
+   i32.const 2200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33466,7 +33456,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2204
+   i32.const 2201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33479,7 +33469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2205
+   i32.const 2202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33492,7 +33482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2206
+   i32.const 2203
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33505,7 +33495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2207
+   i32.const 2204
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33518,7 +33508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2208
+   i32.const 2205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33531,7 +33521,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2209
+   i32.const 2206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33544,7 +33534,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2210
+   i32.const 2207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33557,7 +33547,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2211
+   i32.const 2208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33570,7 +33560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2212
+   i32.const 2209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33583,7 +33573,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2213
+   i32.const 2210
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33596,7 +33586,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2214
+   i32.const 2211
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33609,7 +33599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2215
+   i32.const 2212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33622,7 +33612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2216
+   i32.const 2213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33635,7 +33625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2217
+   i32.const 2214
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33648,7 +33638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2218
+   i32.const 2215
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33661,7 +33651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2219
+   i32.const 2216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33674,7 +33664,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2220
+   i32.const 2217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33687,7 +33677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2221
+   i32.const 2218
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33700,7 +33690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2222
+   i32.const 2219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33713,7 +33703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2223
+   i32.const 2220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33726,7 +33716,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2224
+   i32.const 2221
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33739,7 +33729,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2225
+   i32.const 2222
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33752,7 +33742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2226
+   i32.const 2223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33765,7 +33755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2227
+   i32.const 2224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33778,7 +33768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2228
+   i32.const 2225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33791,7 +33781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2229
+   i32.const 2226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33804,7 +33794,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2230
+   i32.const 2227
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33817,7 +33807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2231
+   i32.const 2228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33830,7 +33820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2232
+   i32.const 2229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33843,7 +33833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2233
+   i32.const 2230
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33856,7 +33846,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2234
+   i32.const 2231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33869,7 +33859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2235
+   i32.const 2232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33882,7 +33872,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2236
+   i32.const 2233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33895,7 +33885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2237
+   i32.const 2234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33908,7 +33898,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2246
+   i32.const 2243
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33921,7 +33911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2247
+   i32.const 2244
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33934,7 +33924,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2248
+   i32.const 2245
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33947,7 +33937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2249
+   i32.const 2246
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33960,7 +33950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2250
+   i32.const 2247
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33973,7 +33963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2251
+   i32.const 2248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33986,7 +33976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2252
+   i32.const 2249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -33999,7 +33989,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2253
+   i32.const 2250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34012,7 +34002,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2254
+   i32.const 2251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34025,7 +34015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2255
+   i32.const 2252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34038,7 +34028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2258
+   i32.const 2255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34051,7 +34041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2259
+   i32.const 2256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34064,7 +34054,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2260
+   i32.const 2257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34077,7 +34067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2261
+   i32.const 2258
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34090,7 +34080,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2262
+   i32.const 2259
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34103,7 +34093,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2263
+   i32.const 2260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34116,7 +34106,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2264
+   i32.const 2261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34129,7 +34119,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2265
+   i32.const 2262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34139,6 +34129,45 @@
   f32.const 0
   call $std/math/check<f32>
   i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2263
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2264
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
+  if
+   i32.const 0
+   i32.const 1056
+   i32.const 2265
+   i32.const 1
+   call $~lib/builtins/abort
+   unreachable
+  end
+  f32.const -1
+  f32.const -1
+  f32.const 0
+  call $std/math/check<f32>
+  i32.eqz
   if
    i32.const 0
    i32.const 1056
@@ -34199,45 +34228,6 @@
    call $~lib/builtins/abort
    unreachable
   end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2271
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2272
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
-  f32.const -1
-  f32.const -1
-  f32.const 0
-  call $std/math/check<f32>
-  i32.eqz
-  if
-   i32.const 0
-   i32.const 1056
-   i32.const 2273
-   i32.const 1
-   call $~lib/builtins/abort
-   unreachable
-  end
   f32.const -inf
   f32.const -inf
   f32.const 0
@@ -34246,7 +34236,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2274
+   i32.const 2271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34259,7 +34249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2275
+   i32.const 2272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34272,7 +34262,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2276
+   i32.const 2273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34285,7 +34275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2277
+   i32.const 2274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34298,7 +34288,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2278
+   i32.const 2275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34311,7 +34301,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2279
+   i32.const 2276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34324,7 +34314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2280
+   i32.const 2277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34337,7 +34327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2281
+   i32.const 2278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34350,7 +34340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2282
+   i32.const 2279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34363,7 +34353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2283
+   i32.const 2280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34376,7 +34366,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2284
+   i32.const 2281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34389,7 +34379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2285
+   i32.const 2282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34402,7 +34392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2286
+   i32.const 2283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34415,7 +34405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2287
+   i32.const 2284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34428,7 +34418,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2288
+   i32.const 2285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34441,7 +34431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2289
+   i32.const 2286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34454,7 +34444,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2290
+   i32.const 2287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34467,7 +34457,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2291
+   i32.const 2288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34480,7 +34470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2292
+   i32.const 2289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34493,7 +34483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2293
+   i32.const 2290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34506,7 +34496,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2294
+   i32.const 2291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34519,7 +34509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2295
+   i32.const 2292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34532,7 +34522,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2296
+   i32.const 2293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34545,7 +34535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2297
+   i32.const 2294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34558,7 +34548,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2298
+   i32.const 2295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34571,7 +34561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2299
+   i32.const 2296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34584,7 +34574,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2300
+   i32.const 2297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34597,7 +34587,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2301
+   i32.const 2298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34610,7 +34600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2302
+   i32.const 2299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34623,7 +34613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2303
+   i32.const 2300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34636,7 +34626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2304
+   i32.const 2301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34649,7 +34639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2305
+   i32.const 2302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34662,7 +34652,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2306
+   i32.const 2303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34675,7 +34665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2307
+   i32.const 2304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34688,7 +34678,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2308
+   i32.const 2305
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34701,7 +34691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2309
+   i32.const 2306
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34714,7 +34704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2310
+   i32.const 2307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34727,7 +34717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2311
+   i32.const 2308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34740,7 +34730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2312
+   i32.const 2309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34753,7 +34743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2313
+   i32.const 2310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34766,7 +34756,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2314
+   i32.const 2311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34779,7 +34769,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2315
+   i32.const 2312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34792,7 +34782,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2329
+   i32.const 2326
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34805,7 +34795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2330
+   i32.const 2327
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34818,7 +34808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2331
+   i32.const 2328
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34831,7 +34821,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2332
+   i32.const 2329
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34844,7 +34834,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2333
+   i32.const 2330
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34857,7 +34847,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2334
+   i32.const 2331
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34870,7 +34860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2335
+   i32.const 2332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34883,7 +34873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2336
+   i32.const 2333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34896,7 +34886,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2337
+   i32.const 2334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34909,7 +34899,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2338
+   i32.const 2335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34922,7 +34912,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2341
+   i32.const 2338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34935,7 +34925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2342
+   i32.const 2339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34948,7 +34938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2343
+   i32.const 2340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34961,7 +34951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2344
+   i32.const 2341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34974,7 +34964,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2345
+   i32.const 2342
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -34987,7 +34977,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2346
+   i32.const 2343
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35000,7 +34990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2347
+   i32.const 2344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35013,7 +35003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2348
+   i32.const 2345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35026,7 +35016,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2349
+   i32.const 2346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35039,7 +35029,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2350
+   i32.const 2347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35052,7 +35042,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2351
+   i32.const 2348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35065,7 +35055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2352
+   i32.const 2349
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35078,7 +35068,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2353
+   i32.const 2350
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35091,7 +35081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2354
+   i32.const 2351
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35104,7 +35094,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2355
+   i32.const 2352
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35117,7 +35107,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2356
+   i32.const 2353
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35130,7 +35120,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2357
+   i32.const 2354
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35143,7 +35133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2358
+   i32.const 2355
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35156,7 +35146,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2359
+   i32.const 2356
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35169,7 +35159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2360
+   i32.const 2357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35182,7 +35172,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2361
+   i32.const 2358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35195,7 +35185,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2362
+   i32.const 2359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35208,7 +35198,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2363
+   i32.const 2360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35221,7 +35211,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2364
+   i32.const 2361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35234,7 +35224,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2365
+   i32.const 2362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35247,7 +35237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2366
+   i32.const 2363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35260,7 +35250,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2367
+   i32.const 2364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35273,7 +35263,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2368
+   i32.const 2365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35286,7 +35276,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2369
+   i32.const 2366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35299,7 +35289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2370
+   i32.const 2367
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35312,7 +35302,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2371
+   i32.const 2368
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35325,7 +35315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2372
+   i32.const 2369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35338,7 +35328,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2373
+   i32.const 2370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35351,7 +35341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2374
+   i32.const 2371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35364,7 +35354,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2375
+   i32.const 2372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35377,7 +35367,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2376
+   i32.const 2373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35390,7 +35380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2377
+   i32.const 2374
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35403,7 +35393,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2378
+   i32.const 2375
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35416,7 +35406,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2379
+   i32.const 2376
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35429,7 +35419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2380
+   i32.const 2377
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35442,7 +35432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2381
+   i32.const 2378
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35455,7 +35445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2382
+   i32.const 2379
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35468,7 +35458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2383
+   i32.const 2380
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35481,7 +35471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2384
+   i32.const 2381
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35494,7 +35484,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2385
+   i32.const 2382
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35507,7 +35497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2386
+   i32.const 2383
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35520,7 +35510,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2387
+   i32.const 2384
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35533,7 +35523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2388
+   i32.const 2385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35546,7 +35536,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2389
+   i32.const 2386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35559,7 +35549,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2390
+   i32.const 2387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35572,7 +35562,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2391
+   i32.const 2388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35585,7 +35575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2392
+   i32.const 2389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35598,7 +35588,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2393
+   i32.const 2390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35611,7 +35601,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2394
+   i32.const 2391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35624,7 +35614,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2395
+   i32.const 2392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35637,7 +35627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2396
+   i32.const 2393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35650,7 +35640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2397
+   i32.const 2394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35663,7 +35653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2398
+   i32.const 2395
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35676,7 +35666,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2399
+   i32.const 2396
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35689,7 +35679,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2400
+   i32.const 2397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35702,7 +35692,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2401
+   i32.const 2398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35715,7 +35705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2402
+   i32.const 2399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35728,7 +35718,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2403
+   i32.const 2400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35741,7 +35731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2404
+   i32.const 2401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35754,7 +35744,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2405
+   i32.const 2402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35767,7 +35757,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2406
+   i32.const 2403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35780,7 +35770,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2409
+   i32.const 2406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35793,7 +35783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2410
+   i32.const 2407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35806,7 +35796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2411
+   i32.const 2408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35819,7 +35809,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2412
+   i32.const 2409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35832,7 +35822,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2413
+   i32.const 2410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35845,7 +35835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2414
+   i32.const 2411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35858,7 +35848,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2415
+   i32.const 2412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35871,7 +35861,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2416
+   i32.const 2413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35884,7 +35874,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2419
+   i32.const 2416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35897,7 +35887,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2420
+   i32.const 2417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35910,7 +35900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2421
+   i32.const 2418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35923,7 +35913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2422
+   i32.const 2419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35936,7 +35926,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2423
+   i32.const 2420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35949,7 +35939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2424
+   i32.const 2421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35962,7 +35952,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2425
+   i32.const 2422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35975,7 +35965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2426
+   i32.const 2423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -35988,7 +35978,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2429
+   i32.const 2426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36001,7 +35991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2430
+   i32.const 2427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36014,7 +36004,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2432
+   i32.const 2429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36027,7 +36017,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2433
+   i32.const 2430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36040,7 +36030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2435
+   i32.const 2432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36053,7 +36043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2436
+   i32.const 2433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36066,7 +36056,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2438
+   i32.const 2435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36079,7 +36069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2439
+   i32.const 2436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36092,7 +36082,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2441
+   i32.const 2438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36105,7 +36095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2442
+   i32.const 2439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36118,7 +36108,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2444
+   i32.const 2441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36131,7 +36121,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2445
+   i32.const 2442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36144,7 +36134,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2447
+   i32.const 2444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36157,7 +36147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2448
+   i32.const 2445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36170,7 +36160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2450
+   i32.const 2447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36183,7 +36173,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2451
+   i32.const 2448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36196,7 +36186,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2453
+   i32.const 2450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36209,7 +36199,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2454
+   i32.const 2451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36222,7 +36212,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2456
+   i32.const 2453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36235,7 +36225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2457
+   i32.const 2454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36248,7 +36238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2458
+   i32.const 2455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36261,7 +36251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2459
+   i32.const 2456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36274,7 +36264,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2460
+   i32.const 2457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36287,7 +36277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2461
+   i32.const 2458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36300,7 +36290,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2462
+   i32.const 2459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36313,7 +36303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2463
+   i32.const 2460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36326,7 +36316,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2465
+   i32.const 2462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36339,7 +36329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2466
+   i32.const 2463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36352,7 +36342,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2467
+   i32.const 2464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36365,7 +36355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2468
+   i32.const 2465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36378,7 +36368,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2469
+   i32.const 2466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36391,7 +36381,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2470
+   i32.const 2467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36404,7 +36394,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2471
+   i32.const 2468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36417,7 +36407,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2472
+   i32.const 2469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36430,7 +36420,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2473
+   i32.const 2470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36443,7 +36433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2474
+   i32.const 2471
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36456,7 +36446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2475
+   i32.const 2472
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36469,7 +36459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2476
+   i32.const 2473
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36482,7 +36472,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2477
+   i32.const 2474
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36495,7 +36485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2478
+   i32.const 2475
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36508,7 +36498,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2479
+   i32.const 2476
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36521,7 +36511,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2480
+   i32.const 2477
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36534,7 +36524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2481
+   i32.const 2478
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36547,7 +36537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2482
+   i32.const 2479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36560,7 +36550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2483
+   i32.const 2480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36573,7 +36563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2484
+   i32.const 2481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36588,7 +36578,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2493
+   i32.const 2490
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36603,7 +36593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2494
+   i32.const 2491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36618,7 +36608,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2495
+   i32.const 2492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36633,7 +36623,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2496
+   i32.const 2493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36648,7 +36638,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2497
+   i32.const 2494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36663,7 +36653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2498
+   i32.const 2495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36678,7 +36668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2499
+   i32.const 2496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36693,7 +36683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2500
+   i32.const 2497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36708,7 +36698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2501
+   i32.const 2498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36723,7 +36713,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2502
+   i32.const 2499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36738,7 +36728,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2505
+   i32.const 2502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36753,7 +36743,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2506
+   i32.const 2503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36768,7 +36758,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2507
+   i32.const 2504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36783,7 +36773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2508
+   i32.const 2505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36798,7 +36788,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2509
+   i32.const 2506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36813,7 +36803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2510
+   i32.const 2507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36828,7 +36818,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2511
+   i32.const 2508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36843,7 +36833,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2512
+   i32.const 2509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36858,7 +36848,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2513
+   i32.const 2510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36873,7 +36863,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2514
+   i32.const 2511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36888,7 +36878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2515
+   i32.const 2512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36903,7 +36893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2516
+   i32.const 2513
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36918,7 +36908,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2517
+   i32.const 2514
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36933,7 +36923,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2518
+   i32.const 2515
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36948,7 +36938,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2519
+   i32.const 2516
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36963,7 +36953,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2520
+   i32.const 2517
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36978,7 +36968,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2521
+   i32.const 2518
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -36993,7 +36983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2522
+   i32.const 2519
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37008,7 +36998,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2523
+   i32.const 2520
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37023,7 +37013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2524
+   i32.const 2521
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37038,7 +37028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2525
+   i32.const 2522
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37053,7 +37043,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2526
+   i32.const 2523
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37068,7 +37058,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2527
+   i32.const 2524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37083,7 +37073,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2528
+   i32.const 2525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37098,7 +37088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2529
+   i32.const 2526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37113,7 +37103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2530
+   i32.const 2527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37128,7 +37118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2531
+   i32.const 2528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37143,7 +37133,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2532
+   i32.const 2529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37158,7 +37148,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2533
+   i32.const 2530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37173,7 +37163,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2534
+   i32.const 2531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37188,7 +37178,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2535
+   i32.const 2532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37203,7 +37193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2536
+   i32.const 2533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37218,7 +37208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2537
+   i32.const 2534
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37233,7 +37223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2538
+   i32.const 2535
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37248,7 +37238,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2539
+   i32.const 2536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37263,7 +37253,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2540
+   i32.const 2537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37278,7 +37268,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2541
+   i32.const 2538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37293,7 +37283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2542
+   i32.const 2539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37308,7 +37298,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2543
+   i32.const 2540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37323,7 +37313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2544
+   i32.const 2541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37338,7 +37328,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2545
+   i32.const 2542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37353,7 +37343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2546
+   i32.const 2543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37368,7 +37358,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2547
+   i32.const 2544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37383,7 +37373,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2548
+   i32.const 2545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37398,7 +37388,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2549
+   i32.const 2546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37413,7 +37403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2550
+   i32.const 2547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37428,7 +37418,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2551
+   i32.const 2548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37443,7 +37433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2552
+   i32.const 2549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37458,7 +37448,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2553
+   i32.const 2550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37473,7 +37463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2554
+   i32.const 2551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37488,7 +37478,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2555
+   i32.const 2552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37503,7 +37493,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2556
+   i32.const 2553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37518,7 +37508,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2557
+   i32.const 2554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37533,7 +37523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2558
+   i32.const 2555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37548,7 +37538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2559
+   i32.const 2556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37563,7 +37553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2560
+   i32.const 2557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37578,7 +37568,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2561
+   i32.const 2558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37593,7 +37583,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2562
+   i32.const 2559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37608,7 +37598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2563
+   i32.const 2560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37623,7 +37613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2564
+   i32.const 2561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37638,7 +37628,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2565
+   i32.const 2562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37653,7 +37643,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2566
+   i32.const 2563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37668,7 +37658,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2567
+   i32.const 2564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37683,7 +37673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2568
+   i32.const 2565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37698,7 +37688,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2569
+   i32.const 2566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37713,7 +37703,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2570
+   i32.const 2567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37727,7 +37717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2582
+   i32.const 2579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37741,7 +37731,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2583
+   i32.const 2580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37755,7 +37745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2584
+   i32.const 2581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37769,7 +37759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2585
+   i32.const 2582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37783,7 +37773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2586
+   i32.const 2583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37797,7 +37787,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2587
+   i32.const 2584
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37811,7 +37801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2588
+   i32.const 2585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37825,7 +37815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2589
+   i32.const 2586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37839,7 +37829,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2590
+   i32.const 2587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37853,7 +37843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2591
+   i32.const 2588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37867,7 +37857,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2594
+   i32.const 2591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37881,7 +37871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2595
+   i32.const 2592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37895,7 +37885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2596
+   i32.const 2593
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37909,7 +37899,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2597
+   i32.const 2594
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37923,7 +37913,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2598
+   i32.const 2595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37937,7 +37927,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2599
+   i32.const 2596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37951,7 +37941,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2600
+   i32.const 2597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37965,7 +37955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2601
+   i32.const 2598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37979,7 +37969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2602
+   i32.const 2599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -37993,7 +37983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2603
+   i32.const 2600
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38007,7 +37997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2604
+   i32.const 2601
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38021,7 +38011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2605
+   i32.const 2602
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38035,7 +38025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2606
+   i32.const 2603
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38049,7 +38039,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2607
+   i32.const 2604
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38063,7 +38053,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2608
+   i32.const 2605
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38077,7 +38067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2609
+   i32.const 2606
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38091,7 +38081,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2610
+   i32.const 2607
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38105,7 +38095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2611
+   i32.const 2608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38119,7 +38109,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2612
+   i32.const 2609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38133,7 +38123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2613
+   i32.const 2610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38147,7 +38137,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2614
+   i32.const 2611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38161,7 +38151,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2615
+   i32.const 2612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38175,7 +38165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2616
+   i32.const 2613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38189,7 +38179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2617
+   i32.const 2614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38203,7 +38193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2618
+   i32.const 2615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38217,7 +38207,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2619
+   i32.const 2616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38231,7 +38221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2620
+   i32.const 2617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38245,7 +38235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2621
+   i32.const 2618
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38259,7 +38249,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2622
+   i32.const 2619
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38273,7 +38263,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2623
+   i32.const 2620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38287,7 +38277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2624
+   i32.const 2621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38301,7 +38291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2625
+   i32.const 2622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38315,7 +38305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2626
+   i32.const 2623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38329,7 +38319,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2627
+   i32.const 2624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38343,7 +38333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2628
+   i32.const 2625
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38357,7 +38347,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2629
+   i32.const 2626
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38371,7 +38361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2630
+   i32.const 2627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38385,7 +38375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2631
+   i32.const 2628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38399,7 +38389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2632
+   i32.const 2629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38413,7 +38403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2633
+   i32.const 2630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38427,7 +38417,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2634
+   i32.const 2631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38441,7 +38431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2635
+   i32.const 2632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38455,7 +38445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2636
+   i32.const 2633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38469,7 +38459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2637
+   i32.const 2634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38483,7 +38473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2638
+   i32.const 2635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38497,7 +38487,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2639
+   i32.const 2636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38511,7 +38501,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2640
+   i32.const 2637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38525,7 +38515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2641
+   i32.const 2638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38539,7 +38529,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2642
+   i32.const 2639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38553,7 +38543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2643
+   i32.const 2640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38567,7 +38557,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2644
+   i32.const 2641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38581,7 +38571,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2645
+   i32.const 2642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38595,7 +38585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2646
+   i32.const 2643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38609,7 +38599,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2647
+   i32.const 2644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38623,7 +38613,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2648
+   i32.const 2645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38637,7 +38627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2649
+   i32.const 2646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38651,7 +38641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2650
+   i32.const 2647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38665,7 +38655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2651
+   i32.const 2648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38679,7 +38669,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2652
+   i32.const 2649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38693,7 +38683,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2653
+   i32.const 2650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38707,7 +38697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2654
+   i32.const 2651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38721,7 +38711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2655
+   i32.const 2652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38735,7 +38725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2656
+   i32.const 2653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38749,7 +38739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2657
+   i32.const 2654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38763,7 +38753,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2658
+   i32.const 2655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38777,7 +38767,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2659
+   i32.const 2656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38791,7 +38781,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2660
+   i32.const 2657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38805,7 +38795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2661
+   i32.const 2658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38819,7 +38809,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2662
+   i32.const 2659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38833,7 +38823,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2663
+   i32.const 2660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38847,7 +38837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2664
+   i32.const 2661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38861,7 +38851,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2665
+   i32.const 2662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38875,7 +38865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2666
+   i32.const 2663
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38889,7 +38879,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2667
+   i32.const 2664
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38903,7 +38893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2668
+   i32.const 2665
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38917,7 +38907,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2669
+   i32.const 2666
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38931,7 +38921,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2670
+   i32.const 2667
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38945,7 +38935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2671
+   i32.const 2668
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38959,7 +38949,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2672
+   i32.const 2669
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38973,7 +38963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2673
+   i32.const 2670
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -38987,7 +38977,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2674
+   i32.const 2671
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39001,7 +38991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2675
+   i32.const 2672
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39015,7 +39005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2676
+   i32.const 2673
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39029,7 +39019,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2677
+   i32.const 2674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39043,7 +39033,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2678
+   i32.const 2675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39057,7 +39047,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2679
+   i32.const 2676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39071,7 +39061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2680
+   i32.const 2677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39085,7 +39075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2681
+   i32.const 2678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39099,7 +39089,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2682
+   i32.const 2679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39113,7 +39103,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2683
+   i32.const 2680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39127,7 +39117,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2684
+   i32.const 2681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39141,7 +39131,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2685
+   i32.const 2682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39154,7 +39144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2688
+   i32.const 2685
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39167,7 +39157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2689
+   i32.const 2686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39180,7 +39170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2690
+   i32.const 2687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39193,7 +39183,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2691
+   i32.const 2688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39206,7 +39196,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2692
+   i32.const 2689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39219,7 +39209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2693
+   i32.const 2690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39232,7 +39222,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2694
+   i32.const 2691
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39245,7 +39235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2695
+   i32.const 2692
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39258,7 +39248,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2697
+   i32.const 2694
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39271,7 +39261,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2698
+   i32.const 2695
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39284,7 +39274,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2699
+   i32.const 2696
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39297,7 +39287,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2700
+   i32.const 2697
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39310,7 +39300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2701
+   i32.const 2698
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39324,7 +39314,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2702
+   i32.const 2699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39337,7 +39327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2704
+   i32.const 2701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39350,7 +39340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2705
+   i32.const 2702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39363,7 +39353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2706
+   i32.const 2703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39376,7 +39366,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2707
+   i32.const 2704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39389,7 +39379,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2708
+   i32.const 2705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39402,7 +39392,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2709
+   i32.const 2706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39415,7 +39405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2710
+   i32.const 2707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39429,7 +39419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2711
+   i32.const 2708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39442,7 +39432,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2713
+   i32.const 2710
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39455,7 +39445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2714
+   i32.const 2711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39468,7 +39458,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2715
+   i32.const 2712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39481,7 +39471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2716
+   i32.const 2713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39494,7 +39484,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2717
+   i32.const 2714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39507,7 +39497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2718
+   i32.const 2715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39520,7 +39510,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2719
+   i32.const 2716
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39534,7 +39524,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2720
+   i32.const 2717
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39547,7 +39537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2722
+   i32.const 2719
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39560,7 +39550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2723
+   i32.const 2720
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39574,7 +39564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2724
+   i32.const 2721
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39587,7 +39577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2725
+   i32.const 2722
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39600,7 +39590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2726
+   i32.const 2723
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39613,7 +39603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2727
+   i32.const 2724
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39626,7 +39616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2728
+   i32.const 2725
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39640,7 +39630,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2729
+   i32.const 2726
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39655,7 +39645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2738
+   i32.const 2735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39670,7 +39660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2739
+   i32.const 2736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39685,7 +39675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2740
+   i32.const 2737
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39700,7 +39690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2741
+   i32.const 2738
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39715,7 +39705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2742
+   i32.const 2739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39730,7 +39720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2743
+   i32.const 2740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39745,7 +39735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2744
+   i32.const 2741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39760,7 +39750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2745
+   i32.const 2742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39775,7 +39765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2746
+   i32.const 2743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39790,7 +39780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2747
+   i32.const 2744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39805,7 +39795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2750
+   i32.const 2747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39820,7 +39810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2751
+   i32.const 2748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39835,7 +39825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2752
+   i32.const 2749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39850,7 +39840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2753
+   i32.const 2750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39865,7 +39855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2754
+   i32.const 2751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39880,7 +39870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2755
+   i32.const 2752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39895,7 +39885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2756
+   i32.const 2753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39910,7 +39900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2757
+   i32.const 2754
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39925,7 +39915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2758
+   i32.const 2755
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39940,7 +39930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2759
+   i32.const 2756
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39955,7 +39945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2760
+   i32.const 2757
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39970,7 +39960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2761
+   i32.const 2758
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -39985,7 +39975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2762
+   i32.const 2759
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40000,7 +39990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2763
+   i32.const 2760
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40015,7 +40005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2764
+   i32.const 2761
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40030,7 +40020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2765
+   i32.const 2762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40045,7 +40035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2766
+   i32.const 2763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40060,7 +40050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2767
+   i32.const 2764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40075,7 +40065,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2768
+   i32.const 2765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40090,7 +40080,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2769
+   i32.const 2766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40105,7 +40095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2770
+   i32.const 2767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40120,7 +40110,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2771
+   i32.const 2768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40135,7 +40125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2772
+   i32.const 2769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40150,7 +40140,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2773
+   i32.const 2770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40165,7 +40155,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2774
+   i32.const 2771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40180,7 +40170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2775
+   i32.const 2772
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40195,7 +40185,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2776
+   i32.const 2773
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40210,7 +40200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2777
+   i32.const 2774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40225,7 +40215,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2778
+   i32.const 2775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40240,7 +40230,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2779
+   i32.const 2776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40255,7 +40245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2780
+   i32.const 2777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40270,7 +40260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2781
+   i32.const 2778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40285,7 +40275,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2782
+   i32.const 2779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40300,7 +40290,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2783
+   i32.const 2780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40315,7 +40305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2784
+   i32.const 2781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40330,7 +40320,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2785
+   i32.const 2782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40345,7 +40335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2786
+   i32.const 2783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40360,7 +40350,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2787
+   i32.const 2784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40375,7 +40365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2788
+   i32.const 2785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40390,7 +40380,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2789
+   i32.const 2786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40405,7 +40395,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2790
+   i32.const 2787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40420,7 +40410,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2791
+   i32.const 2788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40435,7 +40425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2792
+   i32.const 2789
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40450,7 +40440,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2793
+   i32.const 2790
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40465,7 +40455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2794
+   i32.const 2791
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40480,7 +40470,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2795
+   i32.const 2792
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40495,7 +40485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2796
+   i32.const 2793
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40510,7 +40500,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2797
+   i32.const 2794
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40525,7 +40515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2798
+   i32.const 2795
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40540,7 +40530,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2799
+   i32.const 2796
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40555,7 +40545,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2800
+   i32.const 2797
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40570,7 +40560,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2801
+   i32.const 2798
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40585,7 +40575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2802
+   i32.const 2799
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40600,7 +40590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2803
+   i32.const 2800
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40615,7 +40605,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2804
+   i32.const 2801
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40630,7 +40620,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2805
+   i32.const 2802
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40645,7 +40635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2806
+   i32.const 2803
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40660,7 +40650,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2807
+   i32.const 2804
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40675,7 +40665,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2808
+   i32.const 2805
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40690,7 +40680,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2809
+   i32.const 2806
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40705,7 +40695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2810
+   i32.const 2807
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40720,7 +40710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2811
+   i32.const 2808
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40735,7 +40725,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2812
+   i32.const 2809
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40750,7 +40740,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2813
+   i32.const 2810
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40765,7 +40755,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2814
+   i32.const 2811
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40780,7 +40770,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2815
+   i32.const 2812
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40795,7 +40785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2816
+   i32.const 2813
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40810,7 +40800,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2817
+   i32.const 2814
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40825,7 +40815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2818
+   i32.const 2815
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40840,7 +40830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2819
+   i32.const 2816
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40855,7 +40845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2820
+   i32.const 2817
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40870,7 +40860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2821
+   i32.const 2818
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40885,7 +40875,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2822
+   i32.const 2819
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40900,7 +40890,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2823
+   i32.const 2820
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40915,7 +40905,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2824
+   i32.const 2821
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40930,7 +40920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2825
+   i32.const 2822
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40945,7 +40935,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2826
+   i32.const 2823
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40960,7 +40950,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2827
+   i32.const 2824
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40975,7 +40965,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2828
+   i32.const 2825
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -40990,7 +40980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2829
+   i32.const 2826
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41005,7 +40995,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2830
+   i32.const 2827
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41020,7 +41010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2831
+   i32.const 2828
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41035,7 +41025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2832
+   i32.const 2829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41050,7 +41040,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2833
+   i32.const 2830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41065,7 +41055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2834
+   i32.const 2831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41080,7 +41070,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2835
+   i32.const 2832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41095,7 +41085,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2836
+   i32.const 2833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41110,7 +41100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2837
+   i32.const 2834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41125,7 +41115,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2838
+   i32.const 2835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41140,7 +41130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2839
+   i32.const 2836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41155,7 +41145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2840
+   i32.const 2837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41170,7 +41160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2841
+   i32.const 2838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41185,7 +41175,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2844
+   i32.const 2841
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41200,7 +41190,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2845
+   i32.const 2842
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41215,7 +41205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2846
+   i32.const 2843
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41230,7 +41220,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2847
+   i32.const 2844
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41245,7 +41235,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2848
+   i32.const 2845
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41260,7 +41250,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2849
+   i32.const 2846
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41275,7 +41265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2851
+   i32.const 2848
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41290,7 +41280,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2852
+   i32.const 2849
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41305,7 +41295,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2853
+   i32.const 2850
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41320,7 +41310,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2854
+   i32.const 2851
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41335,7 +41325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2855
+   i32.const 2852
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41350,7 +41340,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2856
+   i32.const 2853
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41365,7 +41355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2858
+   i32.const 2855
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41380,7 +41370,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2860
+   i32.const 2857
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41395,7 +41385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2861
+   i32.const 2858
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41410,7 +41400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2862
+   i32.const 2859
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41425,7 +41415,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2863
+   i32.const 2860
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41440,7 +41430,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2865
+   i32.const 2862
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41455,7 +41445,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2866
+   i32.const 2863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41470,7 +41460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2867
+   i32.const 2864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41485,7 +41475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2868
+   i32.const 2865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41500,7 +41490,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2869
+   i32.const 2866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41515,7 +41505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2870
+   i32.const 2867
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41530,7 +41520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2871
+   i32.const 2868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41545,7 +41535,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2872
+   i32.const 2869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41560,7 +41550,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2873
+   i32.const 2870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41575,7 +41565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2874
+   i32.const 2871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41590,7 +41580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2876
+   i32.const 2873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41605,7 +41595,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2877
+   i32.const 2874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41620,7 +41610,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2878
+   i32.const 2875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41635,7 +41625,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2879
+   i32.const 2876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41650,7 +41640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2880
+   i32.const 2877
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41665,7 +41655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2881
+   i32.const 2878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41680,7 +41670,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2883
+   i32.const 2880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41695,7 +41685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2884
+   i32.const 2881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41710,7 +41700,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2885
+   i32.const 2882
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41725,7 +41715,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2886
+   i32.const 2883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41740,7 +41730,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2888
+   i32.const 2885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41755,7 +41745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2889
+   i32.const 2886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41770,7 +41760,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2890
+   i32.const 2887
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41785,7 +41775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2891
+   i32.const 2888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41800,7 +41790,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2892
+   i32.const 2889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41815,7 +41805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2893
+   i32.const 2890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41830,7 +41820,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2894
+   i32.const 2891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41845,7 +41835,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2896
+   i32.const 2893
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41860,7 +41850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2897
+   i32.const 2894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41875,7 +41865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2898
+   i32.const 2895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41890,7 +41880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2899
+   i32.const 2896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41905,7 +41895,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2901
+   i32.const 2898
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41920,7 +41910,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2902
+   i32.const 2899
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41935,7 +41925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2903
+   i32.const 2900
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41950,7 +41940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2904
+   i32.const 2901
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41965,7 +41955,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2906
+   i32.const 2903
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41980,7 +41970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2907
+   i32.const 2904
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -41995,7 +41985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2908
+   i32.const 2905
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42010,7 +42000,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2909
+   i32.const 2906
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42025,7 +42015,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2910
+   i32.const 2907
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42040,7 +42030,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2911
+   i32.const 2908
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42055,7 +42045,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2913
+   i32.const 2910
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42070,7 +42060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2914
+   i32.const 2911
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42085,7 +42075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2916
+   i32.const 2913
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42100,7 +42090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2917
+   i32.const 2914
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42115,7 +42105,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2918
+   i32.const 2915
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42130,7 +42120,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2919
+   i32.const 2916
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42145,7 +42135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2920
+   i32.const 2917
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42160,7 +42150,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2921
+   i32.const 2918
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42175,7 +42165,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2922
+   i32.const 2919
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42190,7 +42180,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2924
+   i32.const 2921
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42205,7 +42195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2925
+   i32.const 2922
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42220,7 +42210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2927
+   i32.const 2924
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42235,7 +42225,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2928
+   i32.const 2925
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42250,7 +42240,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2929
+   i32.const 2926
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42265,7 +42255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2930
+   i32.const 2927
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42280,7 +42270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2931
+   i32.const 2928
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42295,7 +42285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2932
+   i32.const 2929
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42310,7 +42300,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2933
+   i32.const 2930
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42325,7 +42315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2934
+   i32.const 2931
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42340,7 +42330,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2936
+   i32.const 2933
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42355,7 +42345,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2937
+   i32.const 2934
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42370,7 +42360,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2938
+   i32.const 2935
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42385,7 +42375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2940
+   i32.const 2937
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42400,7 +42390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2941
+   i32.const 2938
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42415,7 +42405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2943
+   i32.const 2940
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42430,7 +42420,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2944
+   i32.const 2941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42445,7 +42435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2945
+   i32.const 2942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42460,7 +42450,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2946
+   i32.const 2943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42475,7 +42465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2947
+   i32.const 2944
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42490,7 +42480,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2948
+   i32.const 2945
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42505,7 +42495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2949
+   i32.const 2946
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42520,7 +42510,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2950
+   i32.const 2947
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42535,7 +42525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2951
+   i32.const 2948
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42550,7 +42540,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2952
+   i32.const 2949
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42565,7 +42555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2953
+   i32.const 2950
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42580,7 +42570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2954
+   i32.const 2951
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42595,7 +42585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2955
+   i32.const 2952
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42610,7 +42600,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2956
+   i32.const 2953
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42625,7 +42615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2957
+   i32.const 2954
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42640,7 +42630,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2958
+   i32.const 2955
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42655,7 +42645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2959
+   i32.const 2956
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42670,7 +42660,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2960
+   i32.const 2957
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42685,7 +42675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2961
+   i32.const 2958
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42700,7 +42690,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2962
+   i32.const 2959
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42715,7 +42705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2964
+   i32.const 2961
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42730,7 +42720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2965
+   i32.const 2962
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42745,7 +42735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2966
+   i32.const 2963
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42760,7 +42750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2967
+   i32.const 2964
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42775,7 +42765,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2968
+   i32.const 2965
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42790,7 +42780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2969
+   i32.const 2966
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42805,7 +42795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2970
+   i32.const 2967
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42820,7 +42810,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2972
+   i32.const 2969
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42835,7 +42825,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2973
+   i32.const 2970
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42850,7 +42840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2975
+   i32.const 2972
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42865,7 +42855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2976
+   i32.const 2973
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42880,7 +42870,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2977
+   i32.const 2974
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42895,7 +42885,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2978
+   i32.const 2975
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42910,7 +42900,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2979
+   i32.const 2976
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42925,7 +42915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2980
+   i32.const 2977
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42940,7 +42930,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2981
+   i32.const 2978
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42955,7 +42945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2982
+   i32.const 2979
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42970,7 +42960,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2983
+   i32.const 2980
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -42985,7 +42975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2984
+   i32.const 2981
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43000,7 +42990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2985
+   i32.const 2982
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43015,7 +43005,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2987
+   i32.const 2984
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43030,7 +43020,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2988
+   i32.const 2985
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43045,7 +43035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2989
+   i32.const 2986
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43060,7 +43050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 2990
+   i32.const 2987
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43222,7 +43212,7 @@
     if
      i32.const 0
      i32.const 1056
-     i32.const 2999
+     i32.const 2996
      i32.const 3
      call $~lib/builtins/abort
      unreachable
@@ -43241,7 +43231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3013
+   i32.const 3010
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43253,7 +43243,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3014
+   i32.const 3011
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43265,7 +43255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3015
+   i32.const 3012
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43277,7 +43267,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3016
+   i32.const 3013
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43289,7 +43279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3017
+   i32.const 3014
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43301,7 +43291,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3018
+   i32.const 3015
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43313,7 +43303,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3019
+   i32.const 3016
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43325,7 +43315,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3020
+   i32.const 3017
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43337,7 +43327,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3021
+   i32.const 3018
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43349,7 +43339,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3022
+   i32.const 3019
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43361,7 +43351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3025
+   i32.const 3022
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43373,7 +43363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3026
+   i32.const 3023
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43385,7 +43375,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3027
+   i32.const 3024
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43397,7 +43387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3028
+   i32.const 3025
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43409,7 +43399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3029
+   i32.const 3026
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43421,7 +43411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3030
+   i32.const 3027
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43433,7 +43423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3031
+   i32.const 3028
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43445,7 +43435,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3032
+   i32.const 3029
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43457,7 +43447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3033
+   i32.const 3030
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43469,7 +43459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3034
+   i32.const 3031
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43481,7 +43471,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3035
+   i32.const 3032
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43493,7 +43483,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3036
+   i32.const 3033
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43505,7 +43495,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3037
+   i32.const 3034
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43517,7 +43507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3038
+   i32.const 3035
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43529,7 +43519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3039
+   i32.const 3036
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43541,7 +43531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3040
+   i32.const 3037
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43553,7 +43543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3041
+   i32.const 3038
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43565,7 +43555,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3056
+   i32.const 3053
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43577,7 +43567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3057
+   i32.const 3054
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43589,7 +43579,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3058
+   i32.const 3055
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43601,7 +43591,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3059
+   i32.const 3056
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43613,7 +43603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3060
+   i32.const 3057
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43625,7 +43615,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3061
+   i32.const 3058
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43637,7 +43627,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3062
+   i32.const 3059
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43649,7 +43639,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3063
+   i32.const 3060
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43661,7 +43651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3064
+   i32.const 3061
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43673,7 +43663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3065
+   i32.const 3062
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43685,7 +43675,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3068
+   i32.const 3065
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43697,7 +43687,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3069
+   i32.const 3066
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43709,7 +43699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3070
+   i32.const 3067
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43721,7 +43711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3071
+   i32.const 3068
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43733,7 +43723,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3072
+   i32.const 3069
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43745,7 +43735,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3073
+   i32.const 3070
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43757,7 +43747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3074
+   i32.const 3071
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43769,7 +43759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3075
+   i32.const 3072
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43781,7 +43771,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3076
+   i32.const 3073
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43793,7 +43783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3077
+   i32.const 3074
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43805,7 +43795,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3078
+   i32.const 3075
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43817,7 +43807,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3079
+   i32.const 3076
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43829,7 +43819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3080
+   i32.const 3077
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43841,7 +43831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3081
+   i32.const 3078
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43853,7 +43843,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3082
+   i32.const 3079
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43865,7 +43855,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3083
+   i32.const 3080
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43877,7 +43867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3084
+   i32.const 3081
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43889,7 +43879,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3095
+   i32.const 3092
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43901,7 +43891,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3096
+   i32.const 3093
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43913,7 +43903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3097
+   i32.const 3094
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43925,7 +43915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3098
+   i32.const 3095
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43937,7 +43927,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3099
+   i32.const 3096
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43949,7 +43939,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3100
+   i32.const 3097
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43961,7 +43951,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3101
+   i32.const 3098
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43973,7 +43963,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3102
+   i32.const 3099
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43985,7 +43975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3103
+   i32.const 3100
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -43997,7 +43987,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3111
+   i32.const 3108
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44009,7 +43999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3112
+   i32.const 3109
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44021,7 +44011,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3113
+   i32.const 3110
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44033,7 +44023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3114
+   i32.const 3111
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44045,7 +44035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3115
+   i32.const 3112
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44057,7 +44047,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3116
+   i32.const 3113
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44069,7 +44059,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3117
+   i32.const 3114
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44081,7 +44071,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3118
+   i32.const 3115
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44093,7 +44083,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3119
+   i32.const 3116
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44116,7 +44106,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3157
+   i32.const 3154
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44139,7 +44129,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3158
+   i32.const 3155
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44162,7 +44152,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3159
+   i32.const 3156
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44185,7 +44175,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3160
+   i32.const 3157
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44208,7 +44198,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3161
+   i32.const 3158
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44231,7 +44221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3162
+   i32.const 3159
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44254,7 +44244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3163
+   i32.const 3160
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44277,7 +44267,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3164
+   i32.const 3161
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44300,7 +44290,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3165
+   i32.const 3162
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44323,7 +44313,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3166
+   i32.const 3163
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44346,7 +44336,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3169
+   i32.const 3166
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44369,7 +44359,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3170
+   i32.const 3167
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44392,7 +44382,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3171
+   i32.const 3168
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44415,7 +44405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3172
+   i32.const 3169
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44438,7 +44428,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3173
+   i32.const 3170
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44461,7 +44451,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3174
+   i32.const 3171
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44484,7 +44474,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3175
+   i32.const 3172
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44507,7 +44497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3176
+   i32.const 3173
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44530,7 +44520,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3177
+   i32.const 3174
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44553,7 +44543,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3178
+   i32.const 3175
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44576,7 +44566,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3179
+   i32.const 3176
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44599,7 +44589,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3180
+   i32.const 3177
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44622,7 +44612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3181
+   i32.const 3178
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44645,7 +44635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3182
+   i32.const 3179
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44668,7 +44658,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3183
+   i32.const 3180
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44691,7 +44681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3184
+   i32.const 3181
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44714,7 +44704,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3185
+   i32.const 3182
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44737,7 +44727,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3186
+   i32.const 3183
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44760,7 +44750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3187
+   i32.const 3184
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44783,7 +44773,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3188
+   i32.const 3185
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44806,7 +44796,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3189
+   i32.const 3186
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44829,7 +44819,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3190
+   i32.const 3187
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44852,7 +44842,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3191
+   i32.const 3188
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44875,7 +44865,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3192
+   i32.const 3189
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44898,7 +44888,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3193
+   i32.const 3190
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44921,7 +44911,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3194
+   i32.const 3191
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44944,7 +44934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3195
+   i32.const 3192
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44967,7 +44957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3196
+   i32.const 3193
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -44990,7 +44980,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3197
+   i32.const 3194
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45013,7 +45003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3198
+   i32.const 3195
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45036,7 +45026,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3199
+   i32.const 3196
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45059,7 +45049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3200
+   i32.const 3197
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45082,7 +45072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3201
+   i32.const 3198
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45105,7 +45095,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3202
+   i32.const 3199
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45128,7 +45118,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3203
+   i32.const 3200
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45151,7 +45141,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3204
+   i32.const 3201
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45174,7 +45164,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3205
+   i32.const 3202
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45197,7 +45187,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3208
+   i32.const 3205
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45220,7 +45210,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3209
+   i32.const 3206
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45243,7 +45233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3210
+   i32.const 3207
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45266,7 +45256,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3211
+   i32.const 3208
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45289,7 +45279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3212
+   i32.const 3209
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45302,7 +45292,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3215
+   i32.const 3212
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45315,7 +45305,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3216
+   i32.const 3213
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45327,7 +45317,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3219
+   i32.const 3216
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45339,7 +45329,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3220
+   i32.const 3217
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45351,7 +45341,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3222
+   i32.const 3219
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45363,7 +45353,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3223
+   i32.const 3220
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45375,7 +45365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3226
+   i32.const 3223
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45387,7 +45377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3227
+   i32.const 3224
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45399,7 +45389,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3228
+   i32.const 3225
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45411,7 +45401,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3229
+   i32.const 3226
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45423,7 +45413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3231
+   i32.const 3228
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45435,7 +45425,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3232
+   i32.const 3229
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45447,7 +45437,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3234
+   i32.const 3231
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45459,7 +45449,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3235
+   i32.const 3232
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45471,7 +45461,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3236
+   i32.const 3233
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45483,7 +45473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3237
+   i32.const 3234
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45495,7 +45485,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3238
+   i32.const 3235
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45507,7 +45497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3241
+   i32.const 3238
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45519,7 +45509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3242
+   i32.const 3239
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45533,7 +45523,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3251
+   i32.const 3248
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45547,7 +45537,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3252
+   i32.const 3249
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45561,7 +45551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3253
+   i32.const 3250
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45575,7 +45565,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3254
+   i32.const 3251
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45589,7 +45579,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3255
+   i32.const 3252
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45603,7 +45593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3256
+   i32.const 3253
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45617,7 +45607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3257
+   i32.const 3254
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45631,7 +45621,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3258
+   i32.const 3255
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45645,7 +45635,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3259
+   i32.const 3256
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45659,7 +45649,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3260
+   i32.const 3257
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45673,7 +45663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3263
+   i32.const 3260
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45687,7 +45677,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3264
+   i32.const 3261
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45701,7 +45691,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3265
+   i32.const 3262
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45715,7 +45705,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3266
+   i32.const 3263
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45729,7 +45719,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3267
+   i32.const 3264
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45743,7 +45733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3270
+   i32.const 3267
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45757,7 +45747,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3271
+   i32.const 3268
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45771,7 +45761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3272
+   i32.const 3269
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45785,7 +45775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3273
+   i32.const 3270
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45799,7 +45789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3274
+   i32.const 3271
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45813,7 +45803,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3275
+   i32.const 3272
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45827,7 +45817,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3276
+   i32.const 3273
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45841,7 +45831,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3277
+   i32.const 3274
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45855,7 +45845,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3278
+   i32.const 3275
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45869,7 +45859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3279
+   i32.const 3276
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45883,7 +45873,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3280
+   i32.const 3277
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45897,7 +45887,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3281
+   i32.const 3278
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45911,7 +45901,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3282
+   i32.const 3279
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45925,7 +45915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3283
+   i32.const 3280
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45939,7 +45929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3284
+   i32.const 3281
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45953,7 +45943,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3285
+   i32.const 3282
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45967,7 +45957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3286
+   i32.const 3283
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45981,7 +45971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3287
+   i32.const 3284
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -45995,7 +45985,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3288
+   i32.const 3285
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46009,7 +45999,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3289
+   i32.const 3286
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46023,7 +46013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3290
+   i32.const 3287
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46037,7 +46027,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3291
+   i32.const 3288
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46051,7 +46041,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3292
+   i32.const 3289
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46065,7 +46055,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3293
+   i32.const 3290
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46079,7 +46069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3294
+   i32.const 3291
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46093,7 +46083,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3295
+   i32.const 3292
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46107,7 +46097,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3296
+   i32.const 3293
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46121,7 +46111,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3297
+   i32.const 3294
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46135,7 +46125,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3298
+   i32.const 3295
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46149,7 +46139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3299
+   i32.const 3296
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46163,7 +46153,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3300
+   i32.const 3297
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46177,7 +46167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3301
+   i32.const 3298
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46191,7 +46181,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3302
+   i32.const 3299
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46205,7 +46195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3303
+   i32.const 3300
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46219,7 +46209,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3304
+   i32.const 3301
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46233,7 +46223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3305
+   i32.const 3302
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46247,7 +46237,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3306
+   i32.const 3303
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46261,7 +46251,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3307
+   i32.const 3304
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46275,7 +46265,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3310
+   i32.const 3307
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46289,7 +46279,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3311
+   i32.const 3308
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46303,7 +46293,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3312
+   i32.const 3309
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46317,7 +46307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3313
+   i32.const 3310
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46331,7 +46321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3314
+   i32.const 3311
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46345,7 +46335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3315
+   i32.const 3312
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46359,7 +46349,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3316
+   i32.const 3313
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46373,7 +46363,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3317
+   i32.const 3314
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46387,7 +46377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3318
+   i32.const 3315
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46401,7 +46391,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3319
+   i32.const 3316
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46415,7 +46405,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3320
+   i32.const 3317
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46429,7 +46419,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3321
+   i32.const 3318
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46443,7 +46433,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3322
+   i32.const 3319
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46457,7 +46447,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3323
+   i32.const 3320
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46470,7 +46460,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3335
+   i32.const 3332
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46483,7 +46473,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3336
+   i32.const 3333
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46496,7 +46486,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3337
+   i32.const 3334
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46509,7 +46499,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3338
+   i32.const 3335
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46522,7 +46512,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3339
+   i32.const 3336
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46535,7 +46525,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3340
+   i32.const 3337
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46548,7 +46538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3341
+   i32.const 3338
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46561,7 +46551,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3342
+   i32.const 3339
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46574,7 +46564,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3343
+   i32.const 3340
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46587,7 +46577,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3344
+   i32.const 3341
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46600,7 +46590,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3347
+   i32.const 3344
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46613,7 +46603,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3348
+   i32.const 3345
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46626,7 +46616,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3349
+   i32.const 3346
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46639,7 +46629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3350
+   i32.const 3347
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46652,7 +46642,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3351
+   i32.const 3348
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46665,7 +46655,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3360
+   i32.const 3357
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46678,7 +46668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3361
+   i32.const 3358
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46691,7 +46681,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3362
+   i32.const 3359
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46704,7 +46694,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3363
+   i32.const 3360
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46717,7 +46707,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3364
+   i32.const 3361
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46730,7 +46720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3365
+   i32.const 3362
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46743,7 +46733,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3366
+   i32.const 3363
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46756,7 +46746,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3367
+   i32.const 3364
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46769,7 +46759,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3368
+   i32.const 3365
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46782,7 +46772,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3369
+   i32.const 3366
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46795,7 +46785,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3372
+   i32.const 3369
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46808,7 +46798,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3373
+   i32.const 3370
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46821,7 +46811,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3374
+   i32.const 3371
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46834,7 +46824,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3375
+   i32.const 3372
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46847,7 +46837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3376
+   i32.const 3373
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46869,7 +46859,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3388
+   i32.const 3385
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46891,7 +46881,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3389
+   i32.const 3386
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46913,7 +46903,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3390
+   i32.const 3387
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46935,7 +46925,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3391
+   i32.const 3388
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46957,7 +46947,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3392
+   i32.const 3389
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -46979,7 +46969,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3393
+   i32.const 3390
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47001,7 +46991,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3394
+   i32.const 3391
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47023,7 +47013,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3395
+   i32.const 3392
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47045,7 +47035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3396
+   i32.const 3393
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47067,7 +47057,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3397
+   i32.const 3394
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47089,7 +47079,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3400
+   i32.const 3397
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47111,7 +47101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3401
+   i32.const 3398
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47133,7 +47123,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3402
+   i32.const 3399
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47155,7 +47145,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3403
+   i32.const 3400
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47177,7 +47167,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3404
+   i32.const 3401
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47199,7 +47189,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3405
+   i32.const 3402
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47221,7 +47211,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3406
+   i32.const 3403
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47243,7 +47233,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3407
+   i32.const 3404
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47265,7 +47255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3408
+   i32.const 3405
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47287,7 +47277,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3409
+   i32.const 3406
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47309,7 +47299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3410
+   i32.const 3407
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47331,7 +47321,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3411
+   i32.const 3408
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47353,7 +47343,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3412
+   i32.const 3409
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47375,7 +47365,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3413
+   i32.const 3410
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47397,7 +47387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3414
+   i32.const 3411
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47419,7 +47409,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3415
+   i32.const 3412
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47441,7 +47431,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3416
+   i32.const 3413
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47463,7 +47453,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3417
+   i32.const 3414
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47485,7 +47475,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3418
+   i32.const 3415
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47507,7 +47497,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3419
+   i32.const 3416
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47529,7 +47519,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3420
+   i32.const 3417
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47551,7 +47541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3421
+   i32.const 3418
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47573,7 +47563,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3422
+   i32.const 3419
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47595,7 +47585,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3423
+   i32.const 3420
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47617,7 +47607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3424
+   i32.const 3421
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47639,7 +47629,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3425
+   i32.const 3422
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47661,7 +47651,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3426
+   i32.const 3423
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47683,7 +47673,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3427
+   i32.const 3424
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47705,7 +47695,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3428
+   i32.const 3425
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47727,7 +47717,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3429
+   i32.const 3426
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47749,7 +47739,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3430
+   i32.const 3427
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47771,7 +47761,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3431
+   i32.const 3428
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47793,7 +47783,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3432
+   i32.const 3429
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47815,7 +47805,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3433
+   i32.const 3430
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47837,7 +47827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3434
+   i32.const 3431
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47859,7 +47849,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3435
+   i32.const 3432
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47881,7 +47871,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3436
+   i32.const 3433
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47903,7 +47893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3437
+   i32.const 3434
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47925,7 +47915,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3438
+   i32.const 3435
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47947,7 +47937,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3439
+   i32.const 3436
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47969,7 +47959,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3440
+   i32.const 3437
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -47991,7 +47981,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3441
+   i32.const 3438
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48013,7 +48003,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3442
+   i32.const 3439
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48035,7 +48025,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3443
+   i32.const 3440
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48057,7 +48047,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3444
+   i32.const 3441
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48079,7 +48069,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3445
+   i32.const 3442
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48101,7 +48091,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3446
+   i32.const 3443
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48123,7 +48113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3447
+   i32.const 3444
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48145,7 +48135,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3448
+   i32.const 3445
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48167,7 +48157,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3449
+   i32.const 3446
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48189,7 +48179,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3450
+   i32.const 3447
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48211,7 +48201,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3451
+   i32.const 3448
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48233,7 +48223,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3452
+   i32.const 3449
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48255,7 +48245,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3453
+   i32.const 3450
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48277,7 +48267,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3454
+   i32.const 3451
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48299,7 +48289,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3455
+   i32.const 3452
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48321,7 +48311,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3456
+   i32.const 3453
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48343,7 +48333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3457
+   i32.const 3454
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48365,7 +48355,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3458
+   i32.const 3455
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48387,7 +48377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3459
+   i32.const 3456
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48409,7 +48399,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3460
+   i32.const 3457
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48431,7 +48421,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3461
+   i32.const 3458
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48453,7 +48443,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3462
+   i32.const 3459
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48475,7 +48465,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3463
+   i32.const 3460
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48497,7 +48487,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3464
+   i32.const 3461
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48519,7 +48509,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3465
+   i32.const 3462
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48541,7 +48531,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3466
+   i32.const 3463
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48563,7 +48553,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3467
+   i32.const 3464
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48585,7 +48575,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3468
+   i32.const 3465
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48607,7 +48597,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3469
+   i32.const 3466
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48629,7 +48619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3470
+   i32.const 3467
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48651,7 +48641,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3471
+   i32.const 3468
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48673,7 +48663,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3472
+   i32.const 3469
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48695,7 +48685,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3473
+   i32.const 3470
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48708,7 +48698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3482
+   i32.const 3479
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48721,7 +48711,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3483
+   i32.const 3480
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48734,7 +48724,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3484
+   i32.const 3481
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48747,7 +48737,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3485
+   i32.const 3482
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48760,7 +48750,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3486
+   i32.const 3483
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48773,7 +48763,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3487
+   i32.const 3484
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48786,7 +48776,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3488
+   i32.const 3485
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48799,7 +48789,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3489
+   i32.const 3486
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48812,7 +48802,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3490
+   i32.const 3487
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48825,7 +48815,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3491
+   i32.const 3488
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48838,7 +48828,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3494
+   i32.const 3491
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48851,7 +48841,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3495
+   i32.const 3492
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48864,7 +48854,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3496
+   i32.const 3493
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48877,7 +48867,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3497
+   i32.const 3494
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48890,7 +48880,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3498
+   i32.const 3495
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48903,7 +48893,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3499
+   i32.const 3496
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48916,7 +48906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3500
+   i32.const 3497
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48929,7 +48919,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3501
+   i32.const 3498
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48942,7 +48932,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3502
+   i32.const 3499
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48955,7 +48945,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3503
+   i32.const 3500
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48968,7 +48958,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3504
+   i32.const 3501
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48981,7 +48971,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3505
+   i32.const 3502
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -48994,7 +48984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3506
+   i32.const 3503
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49007,7 +48997,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3507
+   i32.const 3504
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49020,7 +49010,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3508
+   i32.const 3505
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49033,7 +49023,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3509
+   i32.const 3506
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49046,7 +49036,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3510
+   i32.const 3507
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49059,7 +49049,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3511
+   i32.const 3508
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49072,7 +49062,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3512
+   i32.const 3509
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49085,7 +49075,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3513
+   i32.const 3510
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49098,7 +49088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3514
+   i32.const 3511
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49111,7 +49101,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3515
+   i32.const 3512
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49134,7 +49124,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3527
+   i32.const 3524
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49157,7 +49147,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3528
+   i32.const 3525
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49180,7 +49170,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3529
+   i32.const 3526
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49203,7 +49193,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3530
+   i32.const 3527
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49226,7 +49216,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3531
+   i32.const 3528
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49249,7 +49239,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3532
+   i32.const 3529
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49272,7 +49262,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3533
+   i32.const 3530
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49295,7 +49285,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3534
+   i32.const 3531
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49318,7 +49308,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3535
+   i32.const 3532
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49341,7 +49331,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3536
+   i32.const 3533
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49364,7 +49354,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3539
+   i32.const 3536
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49387,7 +49377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3540
+   i32.const 3537
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49410,7 +49400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3541
+   i32.const 3538
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49433,7 +49423,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3542
+   i32.const 3539
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49456,7 +49446,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3543
+   i32.const 3540
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49479,7 +49469,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3544
+   i32.const 3541
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49502,7 +49492,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3545
+   i32.const 3542
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49525,7 +49515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3546
+   i32.const 3543
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49548,7 +49538,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3547
+   i32.const 3544
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49571,7 +49561,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3548
+   i32.const 3545
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49594,7 +49584,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3549
+   i32.const 3546
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49617,7 +49607,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3550
+   i32.const 3547
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49640,7 +49630,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3551
+   i32.const 3548
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49663,7 +49653,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3552
+   i32.const 3549
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49686,7 +49676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3553
+   i32.const 3550
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49709,7 +49699,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3554
+   i32.const 3551
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49732,7 +49722,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3555
+   i32.const 3552
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49755,7 +49745,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3556
+   i32.const 3553
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49778,7 +49768,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3557
+   i32.const 3554
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49801,7 +49791,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3558
+   i32.const 3555
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49824,7 +49814,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3559
+   i32.const 3556
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49847,7 +49837,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3560
+   i32.const 3557
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49870,7 +49860,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3561
+   i32.const 3558
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49893,7 +49883,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3562
+   i32.const 3559
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49916,7 +49906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3563
+   i32.const 3560
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49939,7 +49929,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3564
+   i32.const 3561
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49962,7 +49952,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3565
+   i32.const 3562
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -49985,7 +49975,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3566
+   i32.const 3563
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50008,7 +49998,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3567
+   i32.const 3564
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50031,7 +50021,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3568
+   i32.const 3565
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50054,7 +50044,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3569
+   i32.const 3566
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50077,7 +50067,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3570
+   i32.const 3567
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50100,7 +50090,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3571
+   i32.const 3568
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50123,7 +50113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3572
+   i32.const 3569
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50146,7 +50136,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3573
+   i32.const 3570
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50169,7 +50159,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3574
+   i32.const 3571
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50192,7 +50182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3575
+   i32.const 3572
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50215,7 +50205,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3576
+   i32.const 3573
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50228,7 +50218,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3579
+   i32.const 3576
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50241,7 +50231,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3580
+   i32.const 3577
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50254,7 +50244,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3581
+   i32.const 3578
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50267,7 +50257,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3582
+   i32.const 3579
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50280,7 +50270,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3583
+   i32.const 3580
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50293,7 +50283,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3584
+   i32.const 3581
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50306,7 +50296,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3585
+   i32.const 3582
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50319,7 +50309,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3586
+   i32.const 3583
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50332,7 +50322,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3588
+   i32.const 3585
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50345,7 +50335,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3589
+   i32.const 3586
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50358,7 +50348,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3590
+   i32.const 3587
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50371,7 +50361,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3591
+   i32.const 3588
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50384,7 +50374,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3592
+   i32.const 3589
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50397,7 +50387,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3593
+   i32.const 3590
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50410,7 +50400,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3594
+   i32.const 3591
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50423,7 +50413,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3595
+   i32.const 3592
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50446,7 +50436,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3598
+   i32.const 3595
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50469,7 +50459,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3599
+   i32.const 3596
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50492,7 +50482,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3600
+   i32.const 3597
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50515,7 +50505,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3601
+   i32.const 3598
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50538,7 +50528,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3602
+   i32.const 3599
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50552,7 +50542,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3611
+   i32.const 3608
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50566,7 +50556,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3612
+   i32.const 3609
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50580,7 +50570,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3613
+   i32.const 3610
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50594,7 +50584,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3614
+   i32.const 3611
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50608,7 +50598,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3615
+   i32.const 3612
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50622,7 +50612,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3616
+   i32.const 3613
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50636,7 +50626,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3617
+   i32.const 3614
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50650,7 +50640,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3618
+   i32.const 3615
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50664,7 +50654,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3619
+   i32.const 3616
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50678,7 +50668,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3620
+   i32.const 3617
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50692,7 +50682,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3623
+   i32.const 3620
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50706,7 +50696,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3624
+   i32.const 3621
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50720,7 +50710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3625
+   i32.const 3622
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50734,7 +50724,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3626
+   i32.const 3623
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50748,7 +50738,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3627
+   i32.const 3624
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50762,7 +50752,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3630
+   i32.const 3627
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50776,7 +50766,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3631
+   i32.const 3628
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50790,7 +50780,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3632
+   i32.const 3629
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50804,7 +50794,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3633
+   i32.const 3630
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50818,7 +50808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3634
+   i32.const 3631
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50832,7 +50822,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3635
+   i32.const 3632
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50846,7 +50836,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3636
+   i32.const 3633
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50860,7 +50850,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3637
+   i32.const 3634
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50874,7 +50864,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3638
+   i32.const 3635
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50888,7 +50878,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3639
+   i32.const 3636
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50902,7 +50892,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3640
+   i32.const 3637
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50916,7 +50906,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3641
+   i32.const 3638
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50930,7 +50920,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3642
+   i32.const 3639
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50944,7 +50934,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3643
+   i32.const 3640
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50958,7 +50948,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3644
+   i32.const 3641
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50972,7 +50962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3645
+   i32.const 3642
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -50986,7 +50976,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3646
+   i32.const 3643
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51000,7 +50990,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3647
+   i32.const 3644
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51014,7 +51004,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3648
+   i32.const 3645
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51028,7 +51018,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3649
+   i32.const 3646
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51042,7 +51032,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3650
+   i32.const 3647
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51056,7 +51046,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3651
+   i32.const 3648
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51070,7 +51060,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3652
+   i32.const 3649
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51084,7 +51074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3653
+   i32.const 3650
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51098,7 +51088,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3654
+   i32.const 3651
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51112,7 +51102,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3655
+   i32.const 3652
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51126,7 +51116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3656
+   i32.const 3653
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51140,7 +51130,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3657
+   i32.const 3654
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51154,7 +51144,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3658
+   i32.const 3655
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51168,7 +51158,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3659
+   i32.const 3656
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51182,7 +51172,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3660
+   i32.const 3657
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51196,7 +51186,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3661
+   i32.const 3658
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51210,7 +51200,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3662
+   i32.const 3659
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51224,7 +51214,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3663
+   i32.const 3660
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51238,7 +51228,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3664
+   i32.const 3661
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51252,7 +51242,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3665
+   i32.const 3662
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51265,7 +51255,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3677
+   i32.const 3674
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51278,7 +51268,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3678
+   i32.const 3675
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51291,7 +51281,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3679
+   i32.const 3676
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51304,7 +51294,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3680
+   i32.const 3677
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51317,7 +51307,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3681
+   i32.const 3678
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51330,7 +51320,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3682
+   i32.const 3679
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51343,7 +51333,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3683
+   i32.const 3680
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51356,7 +51346,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3684
+   i32.const 3681
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51369,7 +51359,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3685
+   i32.const 3682
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51382,7 +51372,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3686
+   i32.const 3683
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51395,7 +51385,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3689
+   i32.const 3686
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51408,7 +51398,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3690
+   i32.const 3687
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51421,7 +51411,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3691
+   i32.const 3688
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51434,7 +51424,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3692
+   i32.const 3689
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51447,7 +51437,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3693
+   i32.const 3690
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51460,7 +51450,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3702
+   i32.const 3699
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51473,7 +51463,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3703
+   i32.const 3700
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51486,7 +51476,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3704
+   i32.const 3701
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51499,7 +51489,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3705
+   i32.const 3702
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51512,7 +51502,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3706
+   i32.const 3703
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51525,7 +51515,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3707
+   i32.const 3704
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51538,7 +51528,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3708
+   i32.const 3705
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51551,7 +51541,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3709
+   i32.const 3706
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51564,7 +51554,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3710
+   i32.const 3707
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51577,7 +51567,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3711
+   i32.const 3708
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51590,7 +51580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3714
+   i32.const 3711
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51603,7 +51593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3715
+   i32.const 3712
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51616,7 +51606,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3716
+   i32.const 3713
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51629,7 +51619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3717
+   i32.const 3714
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51642,7 +51632,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3718
+   i32.const 3715
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51664,7 +51654,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3730
+   i32.const 3727
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51686,7 +51676,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3731
+   i32.const 3728
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51708,7 +51698,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3732
+   i32.const 3729
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51730,7 +51720,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3733
+   i32.const 3730
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51752,7 +51742,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3734
+   i32.const 3731
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51774,7 +51764,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3735
+   i32.const 3732
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51796,7 +51786,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3736
+   i32.const 3733
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51818,7 +51808,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3737
+   i32.const 3734
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51840,7 +51830,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3738
+   i32.const 3735
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51862,7 +51852,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3739
+   i32.const 3736
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51884,7 +51874,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3742
+   i32.const 3739
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51906,7 +51896,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3743
+   i32.const 3740
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51928,7 +51918,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3744
+   i32.const 3741
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51950,7 +51940,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3745
+   i32.const 3742
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51972,7 +51962,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3746
+   i32.const 3743
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -51994,7 +51984,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3747
+   i32.const 3744
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52016,7 +52006,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3748
+   i32.const 3745
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52038,7 +52028,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3749
+   i32.const 3746
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52060,7 +52050,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3750
+   i32.const 3747
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52082,7 +52072,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3751
+   i32.const 3748
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52104,7 +52094,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3752
+   i32.const 3749
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52126,7 +52116,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3753
+   i32.const 3750
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52148,7 +52138,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3754
+   i32.const 3751
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52170,7 +52160,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3755
+   i32.const 3752
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52192,7 +52182,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3756
+   i32.const 3753
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52205,7 +52195,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3765
+   i32.const 3762
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52218,7 +52208,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3766
+   i32.const 3763
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52231,7 +52221,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3767
+   i32.const 3764
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52244,7 +52234,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3768
+   i32.const 3765
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52257,7 +52247,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3769
+   i32.const 3766
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52270,7 +52260,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3770
+   i32.const 3767
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52283,7 +52273,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3771
+   i32.const 3768
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52296,7 +52286,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3772
+   i32.const 3769
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52309,7 +52299,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3773
+   i32.const 3770
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52322,7 +52312,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3774
+   i32.const 3771
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52335,7 +52325,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3777
+   i32.const 3774
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52348,7 +52338,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3778
+   i32.const 3775
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52361,7 +52351,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3779
+   i32.const 3776
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52374,7 +52364,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3780
+   i32.const 3777
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52387,7 +52377,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3781
+   i32.const 3778
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52400,7 +52390,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3782
+   i32.const 3779
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52413,7 +52403,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3783
+   i32.const 3780
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52426,7 +52416,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3784
+   i32.const 3781
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52439,7 +52429,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3785
+   i32.const 3782
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52452,7 +52442,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3786
+   i32.const 3783
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52465,7 +52455,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3787
+   i32.const 3784
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52478,7 +52468,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3788
+   i32.const 3785
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52491,7 +52481,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3789
+   i32.const 3786
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52504,7 +52494,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3790
+   i32.const 3787
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52517,7 +52507,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3791
+   i32.const 3788
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52590,7 +52580,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3832
+   i32.const 3829
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52603,7 +52593,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3833
+   i32.const 3830
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52616,7 +52606,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3834
+   i32.const 3831
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52629,7 +52619,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3835
+   i32.const 3832
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52642,7 +52632,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3836
+   i32.const 3833
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52655,7 +52645,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3837
+   i32.const 3834
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52668,7 +52658,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3838
+   i32.const 3835
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52681,7 +52671,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3839
+   i32.const 3836
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52694,7 +52684,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3840
+   i32.const 3837
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52707,7 +52697,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3841
+   i32.const 3838
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52720,7 +52710,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3842
+   i32.const 3839
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52733,7 +52723,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3843
+   i32.const 3840
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52746,7 +52736,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3866
+   i32.const 3863
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52759,7 +52749,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3867
+   i32.const 3864
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52772,7 +52762,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3868
+   i32.const 3865
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52785,7 +52775,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3869
+   i32.const 3866
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52798,7 +52788,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3871
+   i32.const 3868
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52811,7 +52801,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3872
+   i32.const 3869
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52824,7 +52814,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3873
+   i32.const 3870
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52837,7 +52827,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3874
+   i32.const 3871
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52850,7 +52840,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3876
+   i32.const 3873
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52863,7 +52853,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3877
+   i32.const 3874
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52876,7 +52866,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3878
+   i32.const 3875
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52889,7 +52879,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3879
+   i32.const 3876
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52902,7 +52892,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3881
+   i32.const 3878
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52915,7 +52905,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3882
+   i32.const 3879
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52928,7 +52918,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3883
+   i32.const 3880
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52941,7 +52931,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3884
+   i32.const 3881
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52954,7 +52944,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3886
+   i32.const 3883
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52967,7 +52957,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3887
+   i32.const 3884
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52980,7 +52970,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3888
+   i32.const 3885
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -52993,7 +52983,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3889
+   i32.const 3886
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53006,7 +52996,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3891
+   i32.const 3888
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53019,7 +53009,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3892
+   i32.const 3889
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53032,7 +53022,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3893
+   i32.const 3890
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53045,7 +53035,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3894
+   i32.const 3891
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53058,7 +53048,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3895
+   i32.const 3892
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53071,7 +53061,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3897
+   i32.const 3894
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53084,7 +53074,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3898
+   i32.const 3895
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53097,7 +53087,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3899
+   i32.const 3896
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53110,7 +53100,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3900
+   i32.const 3897
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53123,7 +53113,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3944
+   i32.const 3941
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53136,7 +53126,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3945
+   i32.const 3942
    i32.const 1
    call $~lib/builtins/abort
    unreachable
@@ -53149,7 +53139,7 @@
   if
    i32.const 0
    i32.const 1056
-   i32.const 3946
+   i32.const 3943
    i32.const 1
    call $~lib/builtins/abort
    unreachable
diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts
index dc8f19afb7..9191985e0a 100644
--- a/tests/compiler/std/math.ts
+++ b/tests/compiler/std/math.ts
@@ -50,59 +50,56 @@ const OVERFLOW  = 1 << 4;
 const kPI     = reinterpret<f64>(0x400921FB54442D18);
 const kTwo120 = 1.329227995784916e+36;
 
-function eulp(x: f64): i32 {
+function eulp32(x: f32): i32 {
+  var u = reinterpret<u32>(x);
+  var e = <i32>(u >> 23 & 0xff);
+  if (!e) e++;
+  return e - 0x7f - 23;
+}
+
+function eulp64(x: f64): i32 {
   var u = reinterpret<u64>(x);
   var e = <i32>(u >> 52 & 0x7ff);
   if (!e) e++;
   return e - 0x3ff - 52;
 }
 
-function ulperr(got: f64, want: f64, dwant: f64): f64 {
-  const Ox1p1023  = reinterpret<f64>(0x7FE0000000000000);
-  if (isNaN(got) && isNaN(want)) return 0;
+function ulperr32(got: f32, want: f32, dwant: f32): f32 {
+  const Ox1p127f = reinterpret<f32>(0x7F000000);
+  if (isNaN<f32>(got) && isNaN<f32>(want)) return 0;
   if (got == want) {
-    if (NativeMath.signbit(got) == NativeMath.signbit(want)) return dwant;
+    if (NativeMath.signbit<f32>(got) == NativeMath.signbit<f32>(want)) return dwant;
     return Infinity;
   }
-  if (!isFinite(got)) {
-    got = copysign<f64>(Ox1p1023, got);
+  if (!isFinite<f32>(got)) {
+    got = copysign<f32>(Ox1p127f, got);
     want *= 0.5;
   }
-  return scalbn64(got - want, -eulp(want)) + dwant;
+  return scalbn32(got - want, -eulp32(want)) + dwant;
 }
 
-function eulpf(x: f32): i32 {
-  var u = reinterpret<u32>(x);
-  var e = <i32>(u >> 23 & 0xff);
-  if (!e) e++;
-  return e - 0x7f - 23;
-}
-
-function ulperrf(got: f32, want: f32, dwant: f32): f32 {
-  const Ox1p127f = reinterpret<f32>(0x7F000000);
-  if (isNaN(got) && isNaN(want)) return 0;
+function ulperr64(got: f64, want: f64, dwant: f64): f64 {
+  const Ox1p1023 = reinterpret<f64>(0x7FE0000000000000);
+  if (isNaN<f64>(got) && isNaN<f64>(want)) return 0;
   if (got == want) {
-    if (NativeMath.signbit(got) == NativeMath.signbit(want)) return dwant;
+    if (NativeMath.signbit<f64>(got) == NativeMath.signbit<f64>(want)) return dwant;
     return Infinity;
   }
-  if (!isFinite(got)) {
-    got = copysign<f32>(Ox1p127f, got);
+  if (!isFinite<f64>(got)) {
+    got = copysign<f64>(Ox1p1023, got);
     want *= 0.5;
   }
-  return scalbn32(got - want, -eulpf(want)) + dwant;
+  return scalbn64(got - want, -eulp64(want)) + dwant;
 }
 
 function check<T extends number>(actual: T, expected: T, dy: T, flags: i32): bool {
   if (actual == expected) return true;
-  if (isNaN(expected)) return isNaN(actual);
+  if (isNaN<T>(expected)) return isNaN<T>(actual);
   var d: T;
-  if (sizeof<T>() == 8) d = <T>ulperr(actual, expected, dy);
-  else if (sizeof<T>() == 4) d = <T>ulperrf(actual, expected, dy);
+  if (sizeof<T>() == 4) d = <T>ulperr32(actual, expected, dy);
+  else if (sizeof<T>() == 8) d = <T>ulperr64(actual, expected, dy);
   else return false;
-  if (abs<T>(d) >= 1.5) {
-    return false;
-  }
-  return true;
+  return abs<T>(d) < 1.5;
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////

From 94b3e8bb5bea72a03fc6880f392251dc2738fd0c Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 15:26:48 +0300
Subject: [PATCH 10/14] refactor again

---
 std/assembly/util/math.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/std/assembly/util/math.ts b/std/assembly/util/math.ts
index 0e0c7597a8..5496dbcd52 100644
--- a/std/assembly/util/math.ts
+++ b/std/assembly/util/math.ts
@@ -3020,7 +3020,7 @@ function oflow64(sign: u32): f64 {
 // Returns 1 if input is the bit representation of 0, infinity or nan.
 // @ts-ignore: decorator
 @inline
-function zeroinfnan(u: u64): bool {
+function zeroinfnan64(u: u64): bool {
   return (u << 1) - 1 >= 0xFFE0000000000000 - 1;
 }
 
@@ -3201,7 +3201,7 @@ function pow64_lut(x: f64, y: f64): f64 {
     // and if |y| < 2^-54 / 1075 ~= 0x1.e7b6p-65 then pow(x,y) = +-1.
     // Special cases: (x < 0x1p-126 or inf or nan) or
     // (|y| < 0x1p-65 or |y| >= 0x1p63 or nan).
-    if (zeroinfnan(iy)) {
+    if (zeroinfnan64(iy)) {
       if ((iy << 1) == 0) return 1.0;
       if (ix == 0x3FF0000000000000) return NaN; // original: 1.0
       if ((ix << 1) > 0xFFE0000000000000 || (iy << 1) > 0xFFE0000000000000) return x + y;
@@ -3209,7 +3209,7 @@ function pow64_lut(x: f64, y: f64): f64 {
       if (((ix << 1) < 0x7FE0000000000000) == !(iy >> 63)) return 0; // |x|<1 && y==inf or |x|>1 && y==-inf.
       return y * y;
     }
-    if (zeroinfnan(ix)) {
+    if (zeroinfnan64(ix)) {
       let x2 = x * x;
       if (i32(ix >> 63) && checkint64(iy) == 1) x2 = -x2;
       return iy >> 63 ? 1 / x2 : x2;

From 0394a499b781c48352b1b4c678a42f51e37822fa Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 21:09:55 +0300
Subject: [PATCH 11/14] remove integer path for Math.log2

---
 std/assembly/index.d.ts | 2 +-
 std/assembly/math.ts    | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 32d796f0ed..6c64c69be8 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2091,7 +2091,7 @@ interface IMath {
   /** Returns the natural logarithm (base e) of 1 + `x`. */
   log1p<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the base 2 logarithm of `x`. */
-  log2<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
+  log2<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the largest-valued number of its arguments. */
   max<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
   /** Returns the lowest-valued number of its arguments. */
diff --git a/std/assembly/math.ts b/std/assembly/math.ts
index 676d3b74fe..bbec467c86 100644
--- a/std/assembly/math.ts
+++ b/std/assembly/math.ts
@@ -422,10 +422,8 @@ export namespace NativeMath {
       if (sizeof<T>() == 8) {
         return <T>log2_64(x);
       }
-    } else if (isInteger<T>()) {
-      return <T>(sizeof<native<T>>() * 8 - 1 - clz<T>(x));
     }
-    return ERROR("Math.log2 accept only numeric types");
+    return ERROR("Math.log2 accept only f32 or f64 types");
   }
 
   // @ts-ignore: decorator

From baee9e80e1817b0f8d0a26c590dc18f6a2e0081a Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 21:18:38 +0300
Subject: [PATCH 12/14] mark as deprecated non-recommended methods

---
 std/assembly/index.d.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 6c64c69be8..8eafba61ea 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2066,7 +2066,7 @@ interface IMath {
   cbrt<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the smallest integer greater than or equal to `x`. */
   ceil<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
-  /** Returns the number of leading zero bits in the 32-bit binary representation of `x`. @deprecate */
+  /** @deprecated Returns the number of leading zero bits in the 32-bit binary representation of `x`. */
   clz32<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
   /** Returns the cosine (in radians) of `x`. */
   cos<T extends f32 | f64>(x: T): Widen<T>;
@@ -2078,11 +2078,11 @@ interface IMath {
   expm1<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the largest integer less than or equal to `x`. */
   floor<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(x: T): Widen<T>;
-  /** Returns the nearest 32-bit single precision float representation of `x`. */
+  /** @deprecated Returns the nearest 32-bit single precision float representation of `x`. */
   fround<T extends f32 | f64>(x: T): Widen<T>;
   /** Returns the square root of the sum of squares of its arguments. */
   hypot<T extends f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
-  /** Returns the result of the C-like 32-bit multiplication of `a` and `b`. @deprecate */
+  /** @deprecated Returns the result of the C-like 32-bit multiplication of `a` and `b`. */
   imul<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>;
   /** Returns the natural logarithm (base e) of `x`. */
   log<T extends f32 | f64>(x: T): Widen<T>;

From 69a4fcad198759d85c7280d61360e0bd245cba70 Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 21:36:00 +0300
Subject: [PATCH 13/14] add compilation warnings for unnecessary integer
 operations

---
 std/assembly/index.d.ts |  2 +-
 std/assembly/math.ts    | 14 ++++++--------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts
index 8eafba61ea..afed5b96f2 100644
--- a/std/assembly/index.d.ts
+++ b/std/assembly/index.d.ts
@@ -2097,7 +2097,7 @@ interface IMath {
   /** Returns the lowest-valued number of its arguments. */
   min<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(a: T, b: T): Widen<T>; // TODO: rest
   /** Returns `base` to the power of `exponent`. */
-  pow<T extends u8 | u16 | u32 | u64 | i8 | i16 | i32 | i64 | f32 | f64>(base: T, exponent: T): Widen<T>;
+  pow<T extends f32 | f64>(base: T, exponent: T): Widen<T>;
   /** Returns a pseudo-random number in the range from 0.0 inclusive up to but not including 1.0. */
   random(): f64;
   /** Returns the value of `x` rounded to the nearest integer. */
diff --git a/std/assembly/math.ts b/std/assembly/math.ts
index bbec467c86..3ebcfbdab8 100644
--- a/std/assembly/math.ts
+++ b/std/assembly/math.ts
@@ -222,6 +222,7 @@ export namespace NativeMath {
   @inline
   export function ceil<T extends number = f64>(x: T): T {
     if (isInteger<T>()) {
+      WARNING("Using Math.ceil for integer types is unnecessary");
       return x;
     } else if (isFloat<T>()) {
       return builtin_ceil<T>(x);
@@ -321,6 +322,7 @@ export namespace NativeMath {
   @inline
   export function floor<T extends number = f64>(x: T): T {
     if (isInteger<T>()) {
+      WARNING("Using Math.floor for integer types is unnecessary");
       return x;
     } else if (isFloat<T>()) {
       return builtin_floor<T>(x);
@@ -355,6 +357,7 @@ export namespace NativeMath {
 
   export function imul<T extends number = f64>(x: T, y: T): T {
     if (isInteger<T>()) {
+      WARNING("Using Math.imul for integer types is unnecessary. Just use ordinal multiplication");
       return <T>(<i32>x * <i32>y);
     } else if (isFloat<T>()) {
       /*
@@ -448,15 +451,8 @@ export namespace NativeMath {
       if (sizeof<T>() == 8) {
         return <T>pow64(x, y);
       }
-    } else if (isInteger<T>()) {
-      if (sizeof<T>() <= 4) {
-        return <T>ipow32(x, y);
-      }
-      if (sizeof<T>() == 8) {
-        return <T>ipow64(x, y);
-      }
     }
-    return ERROR("Math.pow accept only numeric types");
+    return ERROR("Math.pow accept only f32 or f64 types");
   }
 
   export function seedRandom(value: i64): void {
@@ -487,6 +483,7 @@ export namespace NativeMath {
   @inline
   export function round<T extends number = f64>(x: T): T {
     if (isInteger<T>()) {
+      WARNING("Using Math.round for integer types is unnecessary");
       return x;
     } else if (isFloat<T>()) {
       let roundUp = builtin_ceil<T>(x);
@@ -606,6 +603,7 @@ export namespace NativeMath {
   @inline
   export function trunc<T extends number = f64>(x: T): T {
     if (isInteger<T>()) {
+      WARNING("Using Math.trunc for integer types is unnecessary");
       return x;
     } else if (isFloat<T>()) {
       return builtin_trunc<T>(x);

From 771e21a5d97ca9e96276a9499e188023750cf69e Mon Sep 17 00:00:00 2001
From: MaxGraey <maxgraey@gmail.com>
Date: Sat, 25 Jun 2022 21:36:37 +0300
Subject: [PATCH 14/14] cleanup

---
 std/assembly/math.ts | 1 -
 1 file changed, 1 deletion(-)

diff --git a/std/assembly/math.ts b/std/assembly/math.ts
index 3ebcfbdab8..ef3f622d08 100644
--- a/std/assembly/math.ts
+++ b/std/assembly/math.ts
@@ -20,7 +20,6 @@ import {
   log2_32, log2_64,
   log10_32, log10_64,
   hypot32, hypot64,
-  ipow32, ipow64,
   pow32, pow64,
   sin32, sin64,
   sinh32, sinh64,