From 2002e32c9c2b968b752ff1c7602e722db926ce93 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Thu, 12 Apr 2018 15:17:30 +0300 Subject: [PATCH] Inline small stdlib functions (#71) --- std/assembly/internal/array.ts | 1 + std/assembly/math.ts | 22 + tests/compiler/std/array.optimized.wat | 38 +- tests/compiler/std/array.untouched.wat | 47 +- tests/compiler/std/libm.optimized.wat | 175 +++--- tests/compiler/std/libm.untouched.wat | 346 ++++++------ tests/compiler/std/math.optimized.wat | 407 ++++++-------- tests/compiler/std/math.untouched.wat | 715 +++++++++++++------------ 8 files changed, 841 insertions(+), 910 deletions(-) diff --git a/std/assembly/internal/array.ts b/std/assembly/internal/array.ts index cc87a03a..6097ca55 100644 --- a/std/assembly/internal/array.ts +++ b/std/assembly/internal/array.ts @@ -8,6 +8,7 @@ import { } from "../array"; /** Obtains the default comparator for the specified type. */ +@inline export function defaultComparator(): (a: T, b: T) => i32 { return (a: T, b: T): i32 => ((a > b) - (a < b)); // compiles to a constant table index } diff --git a/std/assembly/math.ts b/std/assembly/math.ts index 6cbd57df..7bf51992 100644 --- a/std/assembly/math.ts +++ b/std/assembly/math.ts @@ -118,6 +118,7 @@ export namespace NativeMath { export const SQRT1_2 = reinterpret(0x3FE6A09E667F3BCD); // 0.70710678118654752440 export const SQRT2 = reinterpret(0x3FF6A09E667F3BCD); // 1.41421356237309504880 + @inline export function abs(x: f64): f64 { return builtin_abs(x); } @@ -380,10 +381,12 @@ export namespace NativeMath { return t; } + @inline export function ceil(x: f64): f64 { return builtin_ceil(x); } + @inline export function clz32(x: f64): f64 { return builtin_clz(x); } @@ -530,10 +533,12 @@ export namespace NativeMath { return y; } + @inline export function floor(x: f64): f64 { return builtin_floor(x); } + @inline export function fround(x: f64): f32 { return x; } @@ -784,10 +789,12 @@ export namespace NativeMath { return val_lo + val_hi; } + @inline export function max(value1: f64, value2: f64): f64 { return builtin_max(value1, value2); } + @inline export function min(value1: f64, value2: f64): f64 { return builtin_min(value1, value2); } @@ -1033,6 +1040,7 @@ export namespace NativeMath { return y; } + @inline export function sign(x: f64): f64 { return x > 0 ? 1 : x < 0 ? -1 : x; } @@ -1062,6 +1070,7 @@ export namespace NativeMath { return t; } + @inline export function sqrt(x: f64): f64 { return builtin_sqrt(x); } @@ -1095,6 +1104,7 @@ export namespace NativeMath { return sign_ ? -t : t; } + @inline export function trunc(x: f64): f64 { return builtin_trunc(x); } @@ -1271,6 +1281,7 @@ export namespace NativeMathf { export const SQRT1_2 = NativeMath.SQRT1_2; export const SQRT2 = NativeMath.SQRT2; + @inline export function abs(x: f32): f32 { return builtin_abs(x); } @@ -1504,10 +1515,12 @@ export namespace NativeMathf { return T; } + @inline export function ceil(x: f32): f32 { return builtin_ceil(x); } + @inline export function clz32(x: f32): f32 { return builtin_clz(x); } @@ -1533,6 +1546,7 @@ export namespace NativeMathf { return expo2f(x); } + @inline export function floor(x: f32): f32 { return builtin_floor(x); } @@ -1652,6 +1666,7 @@ export namespace NativeMathf { return y; } + @inline export function fround(x: f32): f32 { return x; } @@ -1686,6 +1701,7 @@ export namespace NativeMathf { return z * builtin_sqrt((x * x + y * y)); } + @inline export function imul(x: f32, y: f32): f32 { return (x * y); } @@ -1853,10 +1869,12 @@ export namespace NativeMathf { return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + dk; } + @inline export function max(value1: f32, value2: f32): f32 { return builtin_max(value1, value2); } + @inline export function min(value1: f32, value2: f32): f32 { return builtin_min(value1, value2); } @@ -2042,6 +2060,7 @@ export namespace NativeMathf { return sn * z; } + @inline export function seedRandom(value: i64): void { NativeMath.seedRandom(value); } @@ -2075,6 +2094,7 @@ export namespace NativeMathf { return y; } + @inline export function sign(x: f32): f32 { return x > 0 ? 1 : x < 0 ? -1 : x; } @@ -2103,6 +2123,7 @@ export namespace NativeMathf { return t; } + @inline export function sqrt(x: f32): f32 { return builtin_sqrt(x); } @@ -2134,6 +2155,7 @@ export namespace NativeMathf { return sig ? -t : t; } + @inline export function trunc(x: f32): f32 { return builtin_trunc(x); } diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 612802e2..f52e6abb 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,5 +1,4 @@ (module - (type $i (func (result i32))) (type $iii (func (param i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $ii (func (param i32) (result i32))) @@ -40,7 +39,7 @@ (global $std/array/randomized257 (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 344)) (table 28 28 anyfunc) - (elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|2 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|16 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|16 $start~anonymous|22 $~lib/internal/array/defaultComparator~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|24 $start~anonymous|25) + (elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|2 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|16 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|16 $start~anonymous|22 $std/array/assertSortedDefault~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|24 $start~anonymous|25) (memory $0 1) (data (i32.const 4) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 36) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") @@ -3908,7 +3907,7 @@ (call $abort (i32.const 0) (i32.const 124) - (i32.const 993) + (i32.const 1000) (i32.const 4) ) (unreachable) @@ -3984,7 +3983,7 @@ (call $abort (i32.const 0) (i32.const 124) - (i32.const 1000) + (i32.const 1007) (i32.const 24) ) (unreachable) @@ -4085,7 +4084,7 @@ ) (get_local $0) ) - (func $~lib/internal/array/defaultComparator~anonymous|23 (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSortedDefault~anonymous|23 (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.gt_s (get_local $0) @@ -4097,10 +4096,7 @@ ) ) ) - (func $~lib/internal/array/defaultComparator (; 55 ;) (type $i) (result i32) - (i32.const 23) - ) - (func $~lib/internal/array/insertionSort (; 56 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/array/insertionSort (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4225,10 +4221,10 @@ ) (get_local $0) ) - (func $~lib/allocator/arena/free_memory (; 57 ;) (type $iv) (param $0 i32) + (func $~lib/allocator/arena/free_memory (; 56 ;) (type $iv) (param $0 i32) (nop) ) - (func $~lib/internal/array/weakHeapSort (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/array/weakHeapSort (; 57 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4667,7 +4663,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#sort (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4762,7 +4758,7 @@ ) ) ) - (func $std/array/isSorted (; 60 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (set_local $2 @@ -4819,7 +4815,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted (; 61 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 60 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -4841,13 +4837,13 @@ ) ) ) - (func $std/array/assertSortedDefault (; 62 ;) (type $iv) (param $0 i32) + (func $std/array/assertSortedDefault (; 61 ;) (type $iv) (param $0 i32) (call $std/array/assertSorted (get_local $0) - (call $~lib/internal/array/defaultComparator) + (i32.const 23) ) ) - (func $std/array/isArraysEqual (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -4908,7 +4904,7 @@ ) (i32.const 1) ) - (func $std/array/isArraysEqual|trampoline (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual|trampoline (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $1of1 (block $0of1 (block $oob @@ -4931,19 +4927,19 @@ (get_local $2) ) ) - (func $start~anonymous|24 (; 65 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|24 (; 64 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $start~anonymous|25 (; 66 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|25 (; 65 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $start (; 67 ;) (type $v) + (func $start (; 66 ;) (type $v) (set_global $~lib/allocator/arena/startOffset (i32.and (i32.add diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index e6a068bd..3547db60 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -46,7 +46,7 @@ (global $std/array/randomized257 (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 344)) (table 28 28 anyfunc) - (elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $~lib/internal/array/defaultComparator~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27) + (elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $std/array/assertSortedDefault~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27) (memory $0 1) (data (i32.const 4) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 36) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") @@ -4723,7 +4723,7 @@ (call $abort (i32.const 0) (i32.const 124) - (i32.const 993) + (i32.const 1000) (i32.const 4) ) (unreachable) @@ -4807,7 +4807,7 @@ (call $abort (i32.const 0) (i32.const 124) - (i32.const 1000) + (i32.const 1007) (i32.const 24) ) (unreachable) @@ -4932,7 +4932,7 @@ (get_local $1) ) ) - (func $~lib/internal/array/defaultComparator~anonymous|23 (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSortedDefault~anonymous|23 (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.gt_s (get_local $0) @@ -4944,12 +4944,7 @@ ) ) ) - (func $~lib/internal/array/defaultComparator (; 59 ;) (type $i) (result i32) - (return - (i32.const 23) - ) - ) - (func $~lib/internal/array/insertionSort (; 60 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/array/insertionSort (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5137,9 +5132,9 @@ (get_local $0) ) ) - (func $~lib/allocator/arena/free_memory (; 61 ;) (type $iv) (param $0 i32) + (func $~lib/allocator/arena/free_memory (; 60 ;) (type $iv) (param $0 i32) ) - (func $~lib/internal/array/weakHeapSort (; 62 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/array/weakHeapSort (; 61 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5799,7 +5794,7 @@ (get_local $0) ) ) - (func $~lib/array/Array#sort (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 62 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5955,7 +5950,7 @@ ) ) ) - (func $std/array/isSorted (; 64 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -6020,7 +6015,7 @@ (i32.const 1) ) ) - (func $std/array/assertSorted (; 65 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 64 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -6042,13 +6037,17 @@ ) ) ) - (func $std/array/assertSortedDefault (; 66 ;) (type $iv) (param $0 i32) + (func $std/array/assertSortedDefault (; 65 ;) (type $iv) (param $0 i32) (call $std/array/assertSorted (get_local $0) - (call $~lib/internal/array/defaultComparator) + (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + (br $~lib/internal/array/defaultComparator|inlined.0 + (i32.const 23) + ) + ) ) ) - (func $std/array/isArraysEqual (; 67 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 66 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -6118,7 +6117,7 @@ (i32.const 1) ) ) - (func $std/array/isArraysEqual|trampoline (; 68 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual|trampoline (; 67 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $1of1 (block $0of1 (block $oob @@ -6141,31 +6140,31 @@ (get_local $2) ) ) - (func $start~anonymous|24 (; 69 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|24 (; 68 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $start~anonymous|25 (; 70 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|25 (; 69 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $start~anonymous|26 (; 71 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|26 (; 70 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $start~anonymous|27 (; 72 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|27 (; 71 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $start (; 73 ;) (type $v) + (func $start (; 72 ;) (type $v) (set_global $~lib/allocator/arena/startOffset (i32.and (i32.add diff --git a/tests/compiler/std/libm.optimized.wat b/tests/compiler/std/libm.optimized.wat index 453fd8ca..e0694e2c 100644 --- a/tests/compiler/std/libm.optimized.wat +++ b/tests/compiler/std/libm.optimized.wat @@ -55,17 +55,12 @@ (export "tanh" (func $std/libm/tanh)) (export "trunc" (func $std/libm/trunc)) (export "memory" (memory $0)) - (func $~lib/math/NativeMath.abs (; 0 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64) (f64.abs (get_local $0) ) ) - (func $std/libm/abs (; 1 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.abs - (get_local $0) - ) - ) - (func $~lib/math/R (; 2 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64) (f64.div (f64.mul (get_local $0) @@ -128,7 +123,7 @@ ) ) ) - (func $~lib/math/NativeMath.acos (; 3 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -317,12 +312,12 @@ ) ) ) - (func $std/libm/acos (; 4 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.acos (get_local $0) ) ) - (func $~lib/math/NativeMath.log1p (; 5 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -617,7 +612,7 @@ ) ) ) - (func $~lib/math/NativeMath.log (; 6 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i64) @@ -882,7 +877,7 @@ ) ) ) - (func $~lib/math/NativeMath.acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (if (i64.lt_u @@ -969,12 +964,12 @@ (f64.const 0.6931471805599453) ) ) - (func $std/libm/acosh (; 8 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.acosh (get_local $0) ) ) - (func $~lib/math/NativeMath.asin (; 9 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1183,12 +1178,12 @@ ) (get_local $0) ) - (func $std/libm/asin (; 10 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.asin (get_local $0) ) ) - (func $~lib/math/NativeMath.asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1306,12 +1301,12 @@ ) ) ) - (func $std/libm/asinh (; 12 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.asinh (get_local $0) ) ) - (func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 12 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -1671,12 +1666,12 @@ (get_local $4) ) ) - (func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/atan (; 13 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.atan (get_local $0) ) ) - (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 14 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1773,12 +1768,12 @@ ) ) ) - (func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.atanh (get_local $0) ) ) - (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2120,13 +2115,13 @@ ) ) ) - (func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (call $~lib/math/NativeMath.atan2 (get_local $0) (get_local $1) ) ) - (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -2309,22 +2304,17 @@ ) ) ) - (func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.cbrt (get_local $0) ) ) - (func $~lib/math/NativeMath.ceil (; 21 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/ceil (; 20 ;) (type $FF) (param $0 f64) (result f64) (f64.ceil (get_local $0) ) ) - (func $std/libm/ceil (; 22 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.ceil - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.clz32 (; 23 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64) (f64.convert_s/i32 (i32.clz (i32.trunc_s/f64 @@ -2333,20 +2323,15 @@ ) ) ) - (func $std/libm/clz32 (; 24 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.clz32 - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.cos (; 25 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 22 ;) (type $FF) (param $0 f64) (result f64) (unreachable) ) - (func $std/libm/cos (; 26 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cos (; 23 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.cos (get_local $0) ) ) - (func $~lib/math/NativeMath.expm1 (; 27 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 24 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -2789,7 +2774,7 @@ ) ) ) - (func $~lib/math/NativeMath.scalbn (; 28 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 25 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (set_local $2 (get_local $0) @@ -2903,7 +2888,7 @@ ) ) ) - (func $~lib/math/NativeMath.exp (; 29 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 26 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -3110,7 +3095,7 @@ (get_local $3) ) ) - (func $~lib/math/expo2 (; 30 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/expo2 (; 27 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (f64.mul (f64.mul @@ -3127,7 +3112,7 @@ (get_local $1) ) ) - (func $~lib/math/NativeMath.cosh (; 31 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (set_local $0 @@ -3214,42 +3199,32 @@ (get_local $0) ) ) - (func $std/libm/cosh (; 32 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.cosh (get_local $0) ) ) - (func $std/libm/exp (; 33 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.exp (get_local $0) ) ) - (func $std/libm/expm1 (; 34 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.expm1 (get_local $0) ) ) - (func $~lib/math/NativeMath.floor (; 35 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64) (f64.floor (get_local $0) ) ) - (func $std/libm/floor (; 36 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.floor - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.fround (; 37 ;) (type $Ff) (param $0 f64) (result f32) + (func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32) (f32.demote/f64 (get_local $0) ) ) - (func $std/libm/fround (; 38 ;) (type $Ff) (param $0 f64) (result f32) - (call $~lib/math/NativeMath.fround - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.hypot (; 39 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i64) @@ -3518,13 +3493,13 @@ ) ) ) - (func $std/libm/hypot (; 40 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (call $~lib/math/NativeMath.hypot (get_local $0) (get_local $1) ) ) - (func $~lib/math/NativeMath.imul (; 41 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (f64.convert_s/i32 (i32.mul (i32.trunc_s/f64 @@ -3536,18 +3511,18 @@ ) ) ) - (func $std/libm/imul (; 42 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (call $~lib/math/NativeMath.imul (get_local $0) (get_local $1) ) ) - (func $std/libm/log (; 43 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.log (get_local $0) ) ) - (func $~lib/math/NativeMath.log10 (; 44 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -3865,17 +3840,17 @@ (get_local $0) ) ) - (func $std/libm/log10 (; 45 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.log10 (get_local $0) ) ) - (func $std/libm/log1p (; 46 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.log1p (get_local $0) ) ) - (func $~lib/math/NativeMath.log2 (; 47 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -4181,36 +4156,24 @@ (get_local $1) ) ) - (func $std/libm/log2 (; 48 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.log2 (get_local $0) ) ) - (func $~lib/math/NativeMath.max (; 49 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (f64.max (get_local $0) (get_local $1) ) ) - (func $std/libm/max (; 50 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.max - (get_local $0) - (get_local $1) - ) - ) - (func $~lib/math/NativeMath.min (; 51 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (f64.min (get_local $0) (get_local $1) ) ) - (func $std/libm/min (; 52 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.min - (get_local $0) - (get_local $1) - ) - ) - (func $~lib/math/NativeMath.pow (; 53 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -5609,13 +5572,13 @@ (f64.const 1.e+300) ) ) - (func $std/libm/pow (; 54 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (call $~lib/math/NativeMath.pow (get_local $0) (get_local $1) ) ) - (func $~lib/math/NativeMath.round (; 55 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.round (; 48 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i32) @@ -5748,34 +5711,32 @@ ) ) ) - (func $std/libm/round (; 56 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/round (; 49 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.round (get_local $0) ) ) - (func $~lib/math/NativeMath.sign (; 57 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sign (; 50 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (select (f64.const 1) (select (f64.const -1) - (get_local $0) - (f64.lt + (tee_local $1 (get_local $0) + ) + (f64.lt + (get_local $1) (f64.const 0) ) ) (f64.gt - (get_local $0) + (get_local $1) (f64.const 0) ) ) ) - (func $std/libm/sign (; 58 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.sign - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.sinh (; 59 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 51 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i64) @@ -5894,22 +5855,17 @@ ) ) ) - (func $std/libm/sinh (; 60 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sinh (; 52 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.sinh (get_local $0) ) ) - (func $~lib/math/NativeMath.sqrt (; 61 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sqrt (; 53 ;) (type $FF) (param $0 f64) (result f64) (f64.sqrt (get_local $0) ) ) - (func $std/libm/sqrt (; 62 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.sqrt - (get_local $0) - ) - ) - (func $~lib/math/NativeMath.tanh (; 63 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 54 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6032,19 +5988,14 @@ (get_local $3) ) ) - (func $std/libm/tanh (; 64 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/tanh (; 55 ;) (type $FF) (param $0 f64) (result f64) (call $~lib/math/NativeMath.tanh (get_local $0) ) ) - (func $~lib/math/NativeMath.trunc (; 65 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/trunc (; 56 ;) (type $FF) (param $0 f64) (result f64) (f64.trunc (get_local $0) ) ) - (func $std/libm/trunc (; 66 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.trunc - (get_local $0) - ) - ) ) diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index 96db812b..94c9aefe 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -59,21 +59,22 @@ (export "tanh" (func $std/libm/tanh)) (export "trunc" (func $std/libm/trunc)) (export "memory" (memory $0)) - (func $~lib/math/NativeMath.abs (; 0 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (f64.abs - (get_local $0) + (block $~lib/math/NativeMath.abs|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.abs|inlined.0 + (f64.abs + (get_local $1) + ) + ) ) ) ) - (func $std/libm/abs (; 1 ;) (type $FF) (param $0 f64) (result f64) - (return - (call $~lib/math/NativeMath.abs - (get_local $0) - ) - ) - ) - (func $~lib/math/R (; 2 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (nop) @@ -147,7 +148,7 @@ ) ) ) - (func $~lib/math/NativeMath.acos (; 3 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -379,14 +380,14 @@ ) ) ) - (func $std/libm/acos (; 4 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.acos (get_local $0) ) ) ) - (func $~lib/math/NativeMath.log1p (; 5 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -748,7 +749,7 @@ ) ) ) - (func $~lib/math/NativeMath.log (; 6 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -1061,7 +1062,7 @@ ) ) ) - (func $~lib/math/NativeMath.acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (nop) (set_local $1 @@ -1158,14 +1159,14 @@ ) ) ) - (func $std/libm/acosh (; 8 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.acosh (get_local $0) ) ) ) - (func $~lib/math/NativeMath.asin (; 9 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1404,14 +1405,14 @@ (get_local $0) ) ) - (func $std/libm/asin (; 10 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.asin (get_local $0) ) ) ) - (func $~lib/math/NativeMath.asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1545,14 +1546,14 @@ ) ) ) - (func $std/libm/asinh (; 12 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.asinh (get_local $0) ) ) ) - (func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 12 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -1967,14 +1968,14 @@ ) ) ) - (func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/atan (; 13 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.atan (get_local $0) ) ) ) - (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 14 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -2084,14 +2085,14 @@ ) ) ) - (func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.atanh (get_local $0) ) ) ) - (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 i32) (local $4 i64) @@ -2578,7 +2579,7 @@ (f64.const 0) ) ) - (func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (return (call $~lib/math/NativeMath.atan2 (get_local $0) @@ -2586,7 +2587,7 @@ ) ) ) - (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -2805,59 +2806,61 @@ (get_local $3) ) ) - (func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.cbrt (get_local $0) ) ) ) - (func $~lib/math/NativeMath.ceil (; 21 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/ceil (; 20 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (f64.ceil - (get_local $0) - ) - ) - ) - (func $std/libm/ceil (; 22 ;) (type $FF) (param $0 f64) (result f64) - (return - (call $~lib/math/NativeMath.ceil - (get_local $0) - ) - ) - ) - (func $~lib/math/NativeMath.clz32 (; 23 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.convert_s/i32 - (i32.clz - (i32.trunc_s/f64 - (get_local $0) + (block $~lib/math/NativeMath.ceil|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.ceil|inlined.0 + (f64.ceil + (get_local $1) ) ) ) ) ) - (func $std/libm/clz32 (; 24 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (call $~lib/math/NativeMath.clz32 - (get_local $0) + (block $~lib/math/NativeMath.clz32|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.clz32|inlined.0 + (f64.convert_s/i32 + (i32.clz + (i32.trunc_s/f64 + (get_local $1) + ) + ) + ) + ) ) ) ) - (func $~lib/math/NativeMath.cos (; 25 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 22 ;) (type $FF) (param $0 f64) (result f64) (unreachable) (return (f64.const 0) ) ) - (func $std/libm/cos (; 26 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cos (; 23 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.cos (get_local $0) ) ) ) - (func $~lib/math/NativeMath.expm1 (; 27 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 24 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -3351,7 +3354,7 @@ (get_local $14) ) ) - (func $~lib/math/NativeMath.scalbn (; 28 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 25 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (nop) (set_local $2 @@ -3472,7 +3475,7 @@ ) ) ) - (func $~lib/math/NativeMath.exp (; 29 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 26 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -3709,7 +3712,7 @@ ) ) ) - (func $~lib/math/expo2 (; 30 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/expo2 (; 27 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (nop) (set_local $1 @@ -3746,7 +3749,7 @@ ) ) ) - (func $~lib/math/NativeMath.cosh (; 31 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -3855,56 +3858,58 @@ (get_local $3) ) ) - (func $std/libm/cosh (; 32 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.cosh (get_local $0) ) ) ) - (func $std/libm/exp (; 33 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.exp (get_local $0) ) ) ) - (func $std/libm/expm1 (; 34 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.expm1 (get_local $0) ) ) ) - (func $~lib/math/NativeMath.floor (; 35 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (f64.floor - (get_local $0) + (block $~lib/math/NativeMath.floor|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.floor|inlined.0 + (f64.floor + (get_local $1) + ) + ) ) ) ) - (func $std/libm/floor (; 36 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32) + (local $1 f64) (return - (call $~lib/math/NativeMath.floor - (get_local $0) + (block $~lib/math/NativeMath.fround|inlined.0 (result f32) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.fround|inlined.0 + (f32.demote/f64 + (get_local $1) + ) + ) ) ) ) - (func $~lib/math/NativeMath.fround (; 37 ;) (type $Ff) (param $0 f64) (result f32) - (return - (f32.demote/f64 - (get_local $0) - ) - ) - ) - (func $std/libm/fround (; 38 ;) (type $Ff) (param $0 f64) (result f32) - (return - (call $~lib/math/NativeMath.fround - (get_local $0) - ) - ) - ) - (func $~lib/math/NativeMath.hypot (; 39 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -4205,7 +4210,7 @@ ) ) ) - (func $std/libm/hypot (; 40 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (return (call $~lib/math/NativeMath.hypot (get_local $0) @@ -4213,7 +4218,7 @@ ) ) ) - (func $~lib/math/NativeMath.imul (; 41 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (return (f64.convert_s/i32 (i32.mul @@ -4227,7 +4232,7 @@ ) ) ) - (func $std/libm/imul (; 42 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (return (call $~lib/math/NativeMath.imul (get_local $0) @@ -4235,14 +4240,14 @@ ) ) ) - (func $std/libm/log (; 43 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.log (get_local $0) ) ) ) - (func $~lib/math/NativeMath.log10 (; 44 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -4631,21 +4636,21 @@ ) ) ) - (func $std/libm/log10 (; 45 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.log10 (get_local $0) ) ) ) - (func $std/libm/log1p (; 46 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.log1p (get_local $0) ) ) ) - (func $~lib/math/NativeMath.log2 (; 47 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -5021,46 +5026,54 @@ ) ) ) - (func $std/libm/log2 (; 48 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.log2 (get_local $0) ) ) ) - (func $~lib/math/NativeMath.max (; 49 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + (local $3 f64) (return - (f64.max - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMath.max|inlined.0 (result f64) + (set_local $2 + (get_local $0) + ) + (set_local $3 + (get_local $1) + ) + (br $~lib/math/NativeMath.max|inlined.0 + (f64.max + (get_local $2) + (get_local $3) + ) + ) ) ) ) - (func $std/libm/max (; 50 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + (local $3 f64) (return - (call $~lib/math/NativeMath.max - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMath.min|inlined.0 (result f64) + (set_local $2 + (get_local $0) + ) + (set_local $3 + (get_local $1) + ) + (br $~lib/math/NativeMath.min|inlined.0 + (f64.min + (get_local $2) + (get_local $3) + ) + ) ) ) ) - (func $~lib/math/NativeMath.min (; 51 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (return - (f64.min - (get_local $0) - (get_local $1) - ) - ) - ) - (func $std/libm/min (; 52 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (return - (call $~lib/math/NativeMath.min - (get_local $0) - (get_local $1) - ) - ) - ) - (func $~lib/math/NativeMath.pow (; 53 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6639,7 +6652,7 @@ ) ) ) - (func $std/libm/pow (; 54 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (return (call $~lib/math/NativeMath.pow (get_local $0) @@ -6647,7 +6660,7 @@ ) ) ) - (func $~lib/math/NativeMath.round (; 55 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.round (; 48 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -6809,53 +6822,54 @@ (get_local $3) ) ) - (func $std/libm/round (; 56 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/round (; 49 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.round (get_local $0) ) ) ) - (func $~lib/math/NativeMath.sign (; 57 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sign (; 50 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (if (result f64) - (f64.gt + (block $~lib/math/NativeMath.sign|inlined.0 (result f64) + (set_local $1 (get_local $0) - (f64.const 0) ) - (f64.const 1) - (if (result f64) - (f64.lt - (get_local $0) - (f64.const 0) + (br $~lib/math/NativeMath.sign|inlined.0 + (if (result f64) + (f64.gt + (get_local $1) + (f64.const 0) + ) + (f64.const 1) + (if (result f64) + (f64.lt + (get_local $1) + (f64.const 0) + ) + (f64.const -1) + (get_local $1) + ) ) - (f64.const -1) - (get_local $0) ) ) ) ) - (func $std/libm/sign (; 58 ;) (type $FF) (param $0 f64) (result f64) - (return - (call $~lib/math/NativeMath.sign - (get_local $0) - ) - ) - ) - (func $~lib/math/NativeMath.sin (; 59 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 51 ;) (type $FF) (param $0 f64) (result f64) (unreachable) (return (f64.const 0) ) ) - (func $std/libm/sin (; 60 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sin (; 52 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.sin (get_local $0) ) ) ) - (func $~lib/math/NativeMath.sinh (; 61 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 53 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 f64) @@ -6990,41 +7004,42 @@ (get_local $5) ) ) - (func $std/libm/sinh (; 62 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sinh (; 54 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.sinh (get_local $0) ) ) ) - (func $~lib/math/NativeMath.sqrt (; 63 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/sqrt (; 55 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (f64.sqrt - (get_local $0) + (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.sqrt|inlined.0 + (f64.sqrt + (get_local $1) + ) + ) ) ) ) - (func $std/libm/sqrt (; 64 ;) (type $FF) (param $0 f64) (result f64) - (return - (call $~lib/math/NativeMath.sqrt - (get_local $0) - ) - ) - ) - (func $~lib/math/NativeMath.tan (; 65 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 56 ;) (type $FF) (param $0 f64) (result f64) (unreachable) (return (f64.const 0) ) ) - (func $std/libm/tan (; 66 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/tan (; 57 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.tan (get_local $0) ) ) ) - (func $~lib/math/NativeMath.tanh (; 67 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 58 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -7170,24 +7185,25 @@ ) ) ) - (func $std/libm/tanh (; 68 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/tanh (; 59 ;) (type $FF) (param $0 f64) (result f64) (return (call $~lib/math/NativeMath.tanh (get_local $0) ) ) ) - (func $~lib/math/NativeMath.trunc (; 69 ;) (type $FF) (param $0 f64) (result f64) + (func $std/libm/trunc (; 60 ;) (type $FF) (param $0 f64) (result f64) + (local $1 f64) (return - (f64.trunc - (get_local $0) - ) - ) - ) - (func $std/libm/trunc (; 70 ;) (type $FF) (param $0 f64) (result f64) - (return - (call $~lib/math/NativeMath.trunc - (get_local $0) + (block $~lib/math/NativeMath.trunc|inlined.0 (result f64) + (set_local $1 + (get_local $0) + ) + (br $~lib/math/NativeMath.trunc|inlined.0 + (f64.trunc + (get_local $1) + ) + ) ) ) ) diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 2377eba8..c6c4f0ce 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -702,18 +702,13 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.abs (; 43 ;) (type $FF) (param $0 f64) (result f64) - (f64.abs - (get_local $0) - ) - ) - (func $std/math/test_abs (; 44 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_abs (; 43 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.abs + (f64.abs (get_local $0) ) (get_local $1) @@ -740,14 +735,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.abs (; 45 ;) (type $ff) (param $0 f32) (result f32) - (f32.abs - (get_local $0) - ) - ) - (func $std/math/test_absf (; 46 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_absf (; 44 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.abs + (f32.abs (get_local $0) ) (get_local $1) @@ -755,7 +745,7 @@ (get_local $3) ) ) - (func $~lib/math/R (; 47 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/R (; 45 ;) (type $FF) (param $0 f64) (result f64) (f64.div (f64.mul (get_local $0) @@ -818,7 +808,7 @@ ) ) ) - (func $~lib/math/NativeMath.acos (; 48 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 46 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1007,7 +997,7 @@ ) ) ) - (func $std/math/test_acos (; 49 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acos (; 47 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -1040,7 +1030,7 @@ (i32.const 1) ) ) - (func $~lib/math/Rf (; 50 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 48 ;) (type $ff) (param $0 f32) (result f32) (f32.div (f32.mul (get_local $0) @@ -1067,7 +1057,7 @@ ) ) ) - (func $~lib/math/NativeMathf.acos (; 51 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 49 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -1242,7 +1232,7 @@ ) ) ) - (func $std/math/test_acosf (; 52 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acosf (; 50 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.acos (get_local $0) @@ -1252,7 +1242,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.log1p (; 53 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 51 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1547,7 +1537,7 @@ ) ) ) - (func $~lib/math/NativeMath.log (; 54 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 52 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i64) @@ -1812,7 +1802,7 @@ ) ) ) - (func $~lib/math/NativeMath.acosh (; 55 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 53 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (if (i64.lt_u @@ -1899,7 +1889,7 @@ (f64.const 0.6931471805599453) ) ) - (func $std/math/test_acosh (; 56 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acosh (; 54 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -1932,7 +1922,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.log1p (; 57 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 55 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -2183,7 +2173,7 @@ ) ) ) - (func $~lib/math/NativeMathf.log (; 58 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 56 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -2386,7 +2376,7 @@ ) ) ) - (func $~lib/math/NativeMathf.acosh (; 59 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 57 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (if (i32.lt_u @@ -2470,7 +2460,7 @@ (f32.const 0.6931471824645996) ) ) - (func $std/math/test_acoshf (; 60 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acoshf (; 58 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.acosh (get_local $0) @@ -2480,7 +2470,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.asin (; 61 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 59 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -2689,7 +2679,7 @@ ) (get_local $0) ) - (func $std/math/test_asin (; 62 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asin (; 60 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -2722,7 +2712,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.asin (; 63 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 61 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -2860,7 +2850,7 @@ ) (get_local $0) ) - (func $std/math/test_asinf (; 64 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinf (; 62 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.asin (get_local $0) @@ -2870,7 +2860,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.asinh (; 65 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 63 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -2988,7 +2978,7 @@ ) ) ) - (func $std/math/test_asinh (; 66 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asinh (; 64 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -3021,7 +3011,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.asinh (; 67 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 65 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (set_local $1 @@ -3129,7 +3119,7 @@ (get_local $2) ) ) - (func $std/math/test_asinhf (; 68 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinhf (; 66 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.asinh (get_local $0) @@ -3139,7 +3129,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.atan (; 69 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 67 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -3499,7 +3489,7 @@ (get_local $4) ) ) - (func $std/math/test_atan (; 70 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atan (; 68 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -3532,7 +3522,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.atan (; 71 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 69 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -3851,7 +3841,7 @@ (get_local $4) ) ) - (func $std/math/test_atanf (; 72 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanf (; 70 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.atan (get_local $0) @@ -3861,7 +3851,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.atanh (; 73 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 71 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -3958,7 +3948,7 @@ ) ) ) - (func $std/math/test_atanh (; 74 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atanh (; 72 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -3991,7 +3981,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.atanh (; 75 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 73 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (set_local $2 @@ -4077,7 +4067,7 @@ (get_local $2) ) ) - (func $std/math/test_atanhf (; 76 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanhf (; 74 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.atanh (get_local $0) @@ -4087,7 +4077,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.atan2 (; 77 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 75 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4429,7 +4419,7 @@ ) ) ) - (func $std/math/test_atan2 (; 78 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_atan2 (; 76 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) @@ -4464,7 +4454,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.atan2 (; 79 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 77 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4771,7 +4761,7 @@ ) ) ) - (func $std/math/test_atan2f (; 80 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_atan2f (; 78 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.atan2 (get_local $0) @@ -4782,7 +4772,7 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.cbrt (; 81 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 79 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -4965,7 +4955,7 @@ ) ) ) - (func $std/math/test_cbrt (; 82 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cbrt (; 80 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -4998,7 +4988,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.cbrt (; 83 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $ff) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) @@ -5150,7 +5140,7 @@ ) ) ) - (func $std/math/test_cbrtf (; 84 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cbrtf (; 82 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.cbrt (get_local $0) @@ -5160,18 +5150,13 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.ceil (; 85 ;) (type $FF) (param $0 f64) (result f64) - (f64.ceil - (get_local $0) - ) - ) - (func $std/math/test_ceil (; 86 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_ceil (; 83 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.ceil + (f64.ceil (get_local $0) ) (get_local $1) @@ -5198,14 +5183,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.ceil (; 87 ;) (type $ff) (param $0 f32) (result f32) - (f32.ceil - (get_local $0) - ) - ) - (func $std/math/test_ceilf (; 88 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_ceilf (; 84 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.ceil + (f32.ceil (get_local $0) ) (get_local $1) @@ -5213,7 +5193,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.expm1 (; 89 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 85 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -5656,7 +5636,7 @@ ) ) ) - (func $~lib/math/NativeMath.exp (; 90 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 86 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -5863,7 +5843,7 @@ (get_local $3) ) ) - (func $~lib/math/expo2 (; 91 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/expo2 (; 87 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (f64.mul (f64.mul @@ -5880,7 +5860,7 @@ (get_local $1) ) ) - (func $~lib/math/NativeMath.cosh (; 92 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 88 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (set_local $0 @@ -5967,7 +5947,7 @@ (get_local $0) ) ) - (func $std/math/test_cosh (; 93 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 89 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -6000,7 +5980,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.expm1 (; 94 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 90 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -6413,7 +6393,7 @@ ) ) ) - (func $~lib/math/NativeMathf.exp (; 95 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 91 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -6606,7 +6586,7 @@ (get_local $1) ) ) - (func $~lib/math/expo2f (; 96 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/expo2f (; 92 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (f32.mul (f32.mul @@ -6623,7 +6603,7 @@ (get_local $1) ) ) - (func $~lib/math/NativeMathf.cosh (; 97 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 93 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (set_local $0 (f32.reinterpret/i32 @@ -6702,7 +6682,7 @@ (get_local $0) ) ) - (func $std/math/test_coshf (; 98 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_coshf (; 94 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.cosh (get_local $0) @@ -6712,7 +6692,7 @@ (get_local $3) ) ) - (func $std/math/test_exp (; 99 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 95 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -6745,7 +6725,7 @@ (i32.const 1) ) ) - (func $std/math/test_expf (; 100 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expf (; 96 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.exp (get_local $0) @@ -6755,7 +6735,7 @@ (get_local $3) ) ) - (func $std/math/test_expm1 (; 101 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 97 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -6788,7 +6768,7 @@ (i32.const 1) ) ) - (func $std/math/test_expm1f (; 102 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expm1f (; 98 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.expm1 (get_local $0) @@ -6798,18 +6778,13 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.floor (; 103 ;) (type $FF) (param $0 f64) (result f64) - (f64.floor - (get_local $0) - ) - ) - (func $std/math/test_floor (; 104 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_floor (; 99 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.floor + (f64.floor (get_local $0) ) (get_local $1) @@ -6836,14 +6811,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.floor (; 105 ;) (type $ff) (param $0 f32) (result f32) - (f32.floor - (get_local $0) - ) - ) - (func $std/math/test_floorf (; 106 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_floorf (; 100 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.floor + (f32.floor (get_local $0) ) (get_local $1) @@ -6851,7 +6821,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.hypot (; 107 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 101 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i64) @@ -7120,7 +7090,7 @@ ) ) ) - (func $std/math/test_hypot (; 108 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 102 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) @@ -7155,7 +7125,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.hypot (; 109 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 103 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7323,7 +7293,7 @@ ) ) ) - (func $std/math/test_hypotf (; 110 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_hypotf (; 104 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.hypot (get_local $0) @@ -7334,7 +7304,7 @@ (get_local $4) ) ) - (func $std/math/test_log (; 111 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 105 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -7367,7 +7337,7 @@ (i32.const 1) ) ) - (func $std/math/test_logf (; 112 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_logf (; 106 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.log (get_local $0) @@ -7377,7 +7347,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.log10 (; 113 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 107 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -7695,7 +7665,7 @@ (get_local $0) ) ) - (func $std/math/test_log10 (; 114 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 108 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -7728,7 +7698,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.log10 (; 115 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 109 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7968,7 +7938,7 @@ ) ) ) - (func $std/math/test_log10f (; 116 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log10f (; 110 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.log10 (get_local $0) @@ -7978,7 +7948,7 @@ (get_local $3) ) ) - (func $std/math/test_log1p (; 117 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 111 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -8011,7 +7981,7 @@ (i32.const 1) ) ) - (func $std/math/test_log1pf (; 118 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log1pf (; 112 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.log1p (get_local $0) @@ -8021,7 +7991,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.log2 (; 119 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 113 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -8327,7 +8297,7 @@ (get_local $1) ) ) - (func $std/math/test_log2 (; 120 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 114 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -8360,7 +8330,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.log2 (; 121 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 115 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -8588,7 +8558,7 @@ ) ) ) - (func $std/math/test_log2f (; 122 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log2f (; 116 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.log2 (get_local $0) @@ -8598,19 +8568,13 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.max (; 123 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.max - (get_local $0) - (get_local $1) - ) - ) - (func $std/math/test_max (; 124 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_max (; 117 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.max + (f64.max (get_local $0) (get_local $1) ) @@ -8639,15 +8603,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.max (; 125 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (f32.max - (get_local $0) - (get_local $1) - ) - ) - (func $std/math/test_maxf (; 126 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_maxf (; 118 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.max + (f32.max (get_local $0) (get_local $1) ) @@ -8656,19 +8614,13 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.min (; 127 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.min - (get_local $0) - (get_local $1) - ) - ) - (func $std/math/test_min (; 128 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_min (; 119 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.min + (f64.min (get_local $0) (get_local $1) ) @@ -8697,15 +8649,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.min (; 129 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (f32.min - (get_local $0) - (get_local $1) - ) - ) - (func $std/math/test_minf (; 130 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_minf (; 120 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.min + (f32.min (get_local $0) (get_local $1) ) @@ -8714,7 +8660,7 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.mod (; 131 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 121 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i64) @@ -9086,7 +9032,7 @@ (get_local $0) ) ) - (func $std/math/test_mod (; 132 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_mod (; 122 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) @@ -9121,7 +9067,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.mod (; 133 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 123 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9473,7 +9419,7 @@ (get_local $0) ) ) - (func $std/math/test_modf (; 134 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_modf (; 124 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.mod (get_local $0) @@ -9484,7 +9430,7 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.pow (; 135 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 125 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -10883,7 +10829,7 @@ (f64.const 1.e+300) ) ) - (func $std/math/test_pow (; 136 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 126 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (i32.and (if (result i32) @@ -10918,7 +10864,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.pow (; 137 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 127 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -12083,7 +12029,7 @@ (f32.const 1000000015047466219876688e6) ) ) - (func $std/math/test_powf (; 138 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_powf (; 128 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.pow (get_local $0) @@ -12094,7 +12040,7 @@ (get_local $4) ) ) - (func $~lib/math/murmurHash3 (; 139 ;) (type $II) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 129 ;) (type $II) (param $0 i64) (result i64) (i64.xor (tee_local $0 (i64.mul @@ -12125,7 +12071,7 @@ ) ) ) - (func $~lib/math/NativeMath.seedRandom (; 140 ;) (type $Iv) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 130 ;) (type $Iv) (param $0 i64) (if (i64.eqz (get_local $0) @@ -12134,7 +12080,7 @@ (call $abort (i32.const 0) (i32.const 32) - (i32.const 993) + (i32.const 1000) (i32.const 4) ) (unreachable) @@ -12154,7 +12100,7 @@ ) ) ) - (func $~lib/math/NativeMath.random (; 141 ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 131 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (if @@ -12165,7 +12111,7 @@ (call $abort (i32.const 0) (i32.const 32) - (i32.const 1000) + (i32.const 1007) (i32.const 24) ) (unreachable) @@ -12223,12 +12169,7 @@ (f64.const 1) ) ) - (func $~lib/math/NativeMathf.seedRandom (; 142 ;) (type $Iv) (param $0 i64) - (call $~lib/math/NativeMath.seedRandom - (get_local $0) - ) - ) - (func $~lib/math/NativeMathf.random (; 143 ;) (type $f) (result f32) + (func $~lib/math/NativeMathf.random (; 132 ;) (type $f) (result f32) (local $0 f32) (loop $continue|0 (br_if $continue|0 @@ -12244,7 +12185,7 @@ ) (get_local $0) ) - (func $~lib/math/NativeMath.round (; 144 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.round (; 133 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i32) @@ -12377,7 +12318,7 @@ ) ) ) - (func $std/math/test_round (; 145 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_round (; 134 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMath.round (get_local $0) @@ -12387,7 +12328,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMathf.round (; 146 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.round (; 135 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -12515,7 +12456,7 @@ ) ) ) - (func $std/math/test_roundf (; 147 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_roundf (; 136 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.round (get_local $0) @@ -12525,31 +12466,29 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.sign (; 148 ;) (type $FF) (param $0 f64) (result f64) - (select - (f64.const 1) - (select - (f64.const -1) - (get_local $0) - (f64.lt - (get_local $0) - (f64.const 0) - ) - ) - (f64.gt - (get_local $0) - (f64.const 0) - ) - ) - ) - (func $std/math/test_sign (; 149 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sign (; 137 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) + (local $5 f64) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.sign - (get_local $0) + (select + (f64.const 1) + (select + (f64.const -1) + (tee_local $5 + (get_local $0) + ) + (f64.lt + (get_local $5) + (f64.const 0) + ) + ) + (f64.gt + (get_local $5) + (f64.const 0) + ) ) (get_local $1) (get_local $2) @@ -12575,34 +12514,32 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.sign (; 150 ;) (type $ff) (param $0 f32) (result f32) - (select - (f32.const 1) + (func $std/math/test_signf (; 138 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) + (call $std/math/check (select - (f32.const -1) - (get_local $0) - (f32.lt - (get_local $0) + (f32.const 1) + (select + (f32.const -1) + (tee_local $4 + (get_local $0) + ) + (f32.lt + (get_local $4) + (f32.const 0) + ) + ) + (f32.gt + (get_local $4) (f32.const 0) ) ) - (f32.gt - (get_local $0) - (f32.const 0) - ) - ) - ) - (func $std/math/test_signf (; 151 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.sign - (get_local $0) - ) (get_local $1) (get_local $2) (get_local $3) ) ) - (func $~lib/math/NativeMath.rem (; 152 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 139 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i64) (local $4 i32) @@ -13078,7 +13015,7 @@ (get_local $11) ) ) - (func $std/math/test_rem (; 153 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_rem (; 140 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMath.rem (get_local $0) @@ -13089,7 +13026,7 @@ (get_local $4) ) ) - (func $~lib/math/NativeMathf.rem (; 154 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 141 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13541,7 +13478,7 @@ (get_local $10) ) ) - (func $std/math/test_remf (; 155 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_remf (; 142 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.rem (get_local $0) @@ -13552,7 +13489,7 @@ (get_local $4) ) ) - (func $~lib/math/NativeMath.sinh (; 156 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 143 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i64) @@ -13671,7 +13608,7 @@ ) ) ) - (func $std/math/test_sinh (; 157 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 144 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -13704,7 +13641,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.sinh (; 158 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 145 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) (local $3 i32) @@ -13812,7 +13749,7 @@ ) ) ) - (func $std/math/test_sinhf (; 159 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinhf (; 146 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.sinh (get_local $0) @@ -13822,18 +13759,13 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.sqrt (; 160 ;) (type $FF) (param $0 f64) (result f64) - (f64.sqrt - (get_local $0) - ) - ) - (func $std/math/test_sqrt (; 161 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sqrt (; 147 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.sqrt + (f64.sqrt (get_local $0) ) (get_local $1) @@ -13860,14 +13792,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.sqrt (; 162 ;) (type $ff) (param $0 f32) (result f32) - (f32.sqrt - (get_local $0) - ) - ) - (func $std/math/test_sqrtf (; 163 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sqrtf (; 148 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.sqrt + (f32.sqrt (get_local $0) ) (get_local $1) @@ -13875,7 +13802,7 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.tanh (; 164 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 149 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -13998,7 +13925,7 @@ (get_local $3) ) ) - (func $std/math/test_tanh (; 165 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 150 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) @@ -14031,7 +13958,7 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.tanh (; 166 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 151 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (set_local $2 @@ -14144,7 +14071,7 @@ (get_local $2) ) ) - (func $std/math/test_tanhf (; 167 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanhf (; 152 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check (call $~lib/math/NativeMathf.tanh (get_local $0) @@ -14154,18 +14081,13 @@ (get_local $3) ) ) - (func $~lib/math/NativeMath.trunc (; 168 ;) (type $FF) (param $0 f64) (result f64) - (f64.trunc - (get_local $0) - ) - ) - (func $std/math/test_trunc (; 169 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_trunc (; 153 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (i32.and (if (result i32) (tee_local $4 (call $std/math/check - (call $~lib/math/NativeMath.trunc + (f64.trunc (get_local $0) ) (get_local $1) @@ -14192,14 +14114,9 @@ (i32.const 1) ) ) - (func $~lib/math/NativeMathf.trunc (; 170 ;) (type $ff) (param $0 f32) (result f32) - (f32.trunc - (get_local $0) - ) - ) - (func $std/math/test_truncf (; 171 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_truncf (; 154 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (call $std/math/check - (call $~lib/math/NativeMathf.trunc + (f32.trunc (get_local $0) ) (get_local $1) @@ -14207,7 +14124,7 @@ (get_local $3) ) ) - (func $start (; 172 ;) (type $v) + (func $start (; 155 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 f64) @@ -44667,7 +44584,7 @@ ) ) ) - (call $~lib/math/NativeMathf.seedRandom + (call $~lib/math/NativeMath.seedRandom (i64.reinterpret/f64 (call $~lib/math/JSMath.random) ) diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index bac236c5..407a2da5 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -768,22 +768,23 @@ ) ) ) - (func $~lib/math/NativeMath.abs (; 43 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.abs - (get_local $0) - ) - ) - ) - (func $std/math/test_abs (; 44 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_abs (; 43 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.abs - (get_local $0) + (block $~lib/math/NativeMath.abs|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.abs|inlined.0 + (f64.abs + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -791,12 +792,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.abs (get_local $0) @@ -806,24 +807,25 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.abs (; 45 ;) (type $ff) (param $0 f32) (result f32) - (return - (f32.abs - (get_local $0) - ) - ) - ) - (func $std/math/test_absf (; 46 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_absf (; 44 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.abs - (get_local $0) + (block $~lib/math/NativeMathf.abs|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.abs|inlined.0 + (f32.abs + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -831,7 +833,7 @@ ) ) ) - (func $~lib/math/R (; 47 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/R (; 45 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (nop) @@ -905,7 +907,7 @@ ) ) ) - (func $~lib/math/NativeMath.acos (; 48 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 46 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1137,7 +1139,7 @@ ) ) ) - (func $std/math/test_acos (; 49 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acos (; 47 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -1174,7 +1176,7 @@ ) ) ) - (func $~lib/math/Rf (; 50 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 48 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) (nop) @@ -1212,7 +1214,7 @@ ) ) ) - (func $~lib/math/NativeMathf.acos (; 51 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 49 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -1424,7 +1426,7 @@ ) ) ) - (func $std/math/test_acosf (; 52 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acosf (; 50 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.acos @@ -1436,7 +1438,7 @@ ) ) ) - (func $~lib/math/NativeMath.log1p (; 53 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 51 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -1798,7 +1800,7 @@ ) ) ) - (func $~lib/math/NativeMath.log (; 54 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 52 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -2111,7 +2113,7 @@ ) ) ) - (func $~lib/math/NativeMath.acosh (; 55 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 53 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (nop) (set_local $1 @@ -2208,7 +2210,7 @@ ) ) ) - (func $std/math/test_acosh (; 56 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acosh (; 54 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -2245,7 +2247,7 @@ ) ) ) - (func $~lib/math/NativeMathf.log1p (; 57 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 55 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -2556,7 +2558,7 @@ ) ) ) - (func $~lib/math/NativeMathf.log (; 58 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 56 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2803,7 +2805,7 @@ ) ) ) - (func $~lib/math/NativeMathf.acosh (; 59 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 57 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (nop) @@ -2907,7 +2909,7 @@ ) ) ) - (func $std/math/test_acoshf (; 60 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acoshf (; 58 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.acosh @@ -2919,7 +2921,7 @@ ) ) ) - (func $~lib/math/NativeMath.asin (; 61 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 59 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3158,7 +3160,7 @@ (get_local $0) ) ) - (func $std/math/test_asin (; 62 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asin (; 60 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -3195,7 +3197,7 @@ ) ) ) - (func $~lib/math/NativeMathf.asin (; 63 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 61 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3346,7 +3348,7 @@ (get_local $0) ) ) - (func $std/math/test_asinf (; 64 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinf (; 62 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.asin @@ -3358,7 +3360,7 @@ ) ) ) - (func $~lib/math/NativeMath.asinh (; 65 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 63 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -3492,7 +3494,7 @@ ) ) ) - (func $std/math/test_asinh (; 66 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asinh (; 64 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -3529,7 +3531,7 @@ ) ) ) - (func $~lib/math/NativeMathf.asinh (; 67 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 65 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3663,7 +3665,7 @@ ) ) ) - (func $std/math/test_asinhf (; 68 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinhf (; 66 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.asinh @@ -3675,7 +3677,7 @@ ) ) ) - (func $~lib/math/NativeMath.atan (; 69 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 67 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -4090,7 +4092,7 @@ ) ) ) - (func $std/math/test_atan (; 70 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atan (; 68 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -4127,7 +4129,7 @@ ) ) ) - (func $~lib/math/NativeMathf.atan (; 71 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 69 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -4499,7 +4501,7 @@ ) ) ) - (func $std/math/test_atanf (; 72 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanf (; 70 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.atan @@ -4511,7 +4513,7 @@ ) ) ) - (func $~lib/math/NativeMath.atanh (; 73 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 71 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -4621,7 +4623,7 @@ ) ) ) - (func $std/math/test_atanh (; 74 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atanh (; 72 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -4658,7 +4660,7 @@ ) ) ) - (func $~lib/math/NativeMathf.atanh (; 75 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 73 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -4761,7 +4763,7 @@ ) ) ) - (func $std/math/test_atanhf (; 76 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanhf (; 74 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.atanh @@ -4773,7 +4775,7 @@ ) ) ) - (func $~lib/math/NativeMath.atan2 (; 77 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 75 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 i32) (local $4 i64) @@ -5260,7 +5262,7 @@ (f64.const 0) ) ) - (func $std/math/test_atan2 (; 78 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_atan2 (; 76 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (return (i32.and @@ -5299,7 +5301,7 @@ ) ) ) - (func $~lib/math/NativeMathf.atan2 (; 79 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 77 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -5745,7 +5747,7 @@ (f32.const 0) ) ) - (func $std/math/test_atan2f (; 80 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_atan2f (; 78 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.atan2 @@ -5758,7 +5760,7 @@ ) ) ) - (func $~lib/math/NativeMath.cbrt (; 81 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 79 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -5977,7 +5979,7 @@ (get_local $3) ) ) - (func $std/math/test_cbrt (; 82 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cbrt (; 80 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -6014,7 +6016,7 @@ ) ) ) - (func $~lib/math/NativeMathf.cbrt (; 83 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -6189,7 +6191,7 @@ ) ) ) - (func $std/math/test_cbrtf (; 84 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cbrtf (; 82 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.cbrt @@ -6201,22 +6203,23 @@ ) ) ) - (func $~lib/math/NativeMath.ceil (; 85 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.ceil - (get_local $0) - ) - ) - ) - (func $std/math/test_ceil (; 86 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_ceil (; 83 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.ceil - (get_local $0) + (block $~lib/math/NativeMath.ceil|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.ceil|inlined.0 + (f64.ceil + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -6224,12 +6227,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.ceil (get_local $0) @@ -6239,24 +6242,25 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.ceil (; 87 ;) (type $ff) (param $0 f32) (result f32) - (return - (f32.ceil - (get_local $0) - ) - ) - ) - (func $std/math/test_ceilf (; 88 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_ceilf (; 84 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.ceil - (get_local $0) + (block $~lib/math/NativeMathf.ceil|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.ceil|inlined.0 + (f32.ceil + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -6264,7 +6268,7 @@ ) ) ) - (func $~lib/math/NativeMath.expm1 (; 89 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 85 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6758,7 +6762,7 @@ (get_local $14) ) ) - (func $~lib/math/NativeMath.exp (; 90 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 86 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -6995,7 +6999,7 @@ ) ) ) - (func $~lib/math/expo2 (; 91 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/expo2 (; 87 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (nop) (set_local $1 @@ -7032,7 +7036,7 @@ ) ) ) - (func $~lib/math/NativeMath.cosh (; 92 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 88 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -7141,7 +7145,7 @@ (get_local $3) ) ) - (func $std/math/test_cosh (; 93 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 89 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -7178,7 +7182,7 @@ ) ) ) - (func $~lib/math/NativeMathf.expm1 (; 94 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 90 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7639,7 +7643,7 @@ (get_local $14) ) ) - (func $~lib/math/NativeMathf.exp (; 95 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 91 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7861,7 +7865,7 @@ ) ) ) - (func $~lib/math/expo2f (; 96 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/expo2f (; 92 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (nop) (set_local $1 @@ -7893,7 +7897,7 @@ ) ) ) - (func $~lib/math/NativeMathf.cosh (; 97 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 93 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (set_local $1 @@ -7989,7 +7993,7 @@ ) ) ) - (func $std/math/test_coshf (; 98 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_coshf (; 94 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.cosh @@ -8001,7 +8005,7 @@ ) ) ) - (func $std/math/test_exp (; 99 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 95 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -8038,7 +8042,7 @@ ) ) ) - (func $std/math/test_expf (; 100 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expf (; 96 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.exp @@ -8050,7 +8054,7 @@ ) ) ) - (func $std/math/test_expm1 (; 101 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 97 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -8087,7 +8091,7 @@ ) ) ) - (func $std/math/test_expm1f (; 102 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expm1f (; 98 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.expm1 @@ -8099,22 +8103,23 @@ ) ) ) - (func $~lib/math/NativeMath.floor (; 103 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.floor - (get_local $0) - ) - ) - ) - (func $std/math/test_floor (; 104 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_floor (; 99 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.floor - (get_local $0) + (block $~lib/math/NativeMath.floor|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.floor|inlined.0 + (f64.floor + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -8122,12 +8127,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.floor (get_local $0) @@ -8137,24 +8142,25 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.floor (; 105 ;) (type $ff) (param $0 f32) (result f32) - (return - (f32.floor - (get_local $0) - ) - ) - ) - (func $std/math/test_floorf (; 106 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_floorf (; 100 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.floor - (get_local $0) + (block $~lib/math/NativeMathf.floor|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.floor|inlined.0 + (f32.floor + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -8162,7 +8168,7 @@ ) ) ) - (func $~lib/math/NativeMath.hypot (; 107 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 101 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -8463,7 +8469,7 @@ ) ) ) - (func $std/math/test_hypot (; 108 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 102 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (return (i32.and @@ -8502,7 +8508,7 @@ ) ) ) - (func $~lib/math/NativeMathf.hypot (; 109 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 103 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8703,7 +8709,7 @@ ) ) ) - (func $std/math/test_hypotf (; 110 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_hypotf (; 104 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.hypot @@ -8716,7 +8722,7 @@ ) ) ) - (func $std/math/test_log (; 111 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 105 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -8753,7 +8759,7 @@ ) ) ) - (func $std/math/test_logf (; 112 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_logf (; 106 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.log @@ -8765,7 +8771,7 @@ ) ) ) - (func $~lib/math/NativeMath.log10 (; 113 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 107 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -9154,7 +9160,7 @@ ) ) ) - (func $std/math/test_log10 (; 114 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 108 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -9191,7 +9197,7 @@ ) ) ) - (func $~lib/math/NativeMathf.log10 (; 115 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 109 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9486,7 +9492,7 @@ ) ) ) - (func $std/math/test_log10f (; 116 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log10f (; 110 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.log10 @@ -9498,7 +9504,7 @@ ) ) ) - (func $std/math/test_log1p (; 117 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 111 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -9535,7 +9541,7 @@ ) ) ) - (func $std/math/test_log1pf (; 118 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log1pf (; 112 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.log1p @@ -9547,7 +9553,7 @@ ) ) ) - (func $~lib/math/NativeMath.log2 (; 119 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 113 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -9923,7 +9929,7 @@ ) ) ) - (func $std/math/test_log2 (; 120 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 114 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -9960,7 +9966,7 @@ ) ) ) - (func $~lib/math/NativeMathf.log2 (; 121 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 115 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10247,7 +10253,7 @@ ) ) ) - (func $std/math/test_log2f (; 122 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log2f (; 116 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.log2 @@ -10259,24 +10265,28 @@ ) ) ) - (func $~lib/math/NativeMath.max (; 123 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (return - (f64.max - (get_local $0) - (get_local $1) - ) - ) - ) - (func $std/math/test_max (; 124 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) - (local $5 i32) + (func $std/math/test_max (; 117 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) (return (i32.and (if (result i32) - (tee_local $5 + (tee_local $7 (call $std/math/check - (call $~lib/math/NativeMath.max - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMath.max|inlined.0 (result f64) + (set_local $5 + (get_local $0) + ) + (set_local $6 + (get_local $1) + ) + (br $~lib/math/NativeMath.max|inlined.0 + (f64.max + (get_local $5) + (get_local $6) + ) + ) ) (get_local $2) (get_local $3) @@ -10284,12 +10294,12 @@ ) ) (if (result i32) - (tee_local $5 + (tee_local $7 (i32.eqz (i32.const 1) ) ) - (get_local $5) + (get_local $7) (call $std/math/check (call $~lib/math/JSMath.max (get_local $0) @@ -10300,26 +10310,30 @@ (get_local $4) ) ) - (get_local $5) + (get_local $7) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.max (; 125 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (return - (f32.max - (get_local $0) - (get_local $1) - ) - ) - ) - (func $std/math/test_maxf (; 126 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_maxf (; 118 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (local $5 f32) + (local $6 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.max - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMathf.max|inlined.0 (result f32) + (set_local $5 + (get_local $0) + ) + (set_local $6 + (get_local $1) + ) + (br $~lib/math/NativeMathf.max|inlined.0 + (f32.max + (get_local $5) + (get_local $6) + ) + ) ) (get_local $2) (get_local $3) @@ -10327,24 +10341,28 @@ ) ) ) - (func $~lib/math/NativeMath.min (; 127 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (return - (f64.min - (get_local $0) - (get_local $1) - ) - ) - ) - (func $std/math/test_min (; 128 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) - (local $5 i32) + (func $std/math/test_min (; 119 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) (return (i32.and (if (result i32) - (tee_local $5 + (tee_local $7 (call $std/math/check - (call $~lib/math/NativeMath.min - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMath.min|inlined.0 (result f64) + (set_local $5 + (get_local $0) + ) + (set_local $6 + (get_local $1) + ) + (br $~lib/math/NativeMath.min|inlined.0 + (f64.min + (get_local $5) + (get_local $6) + ) + ) ) (get_local $2) (get_local $3) @@ -10352,12 +10370,12 @@ ) ) (if (result i32) - (tee_local $5 + (tee_local $7 (i32.eqz (i32.const 1) ) ) - (get_local $5) + (get_local $7) (call $std/math/check (call $~lib/math/JSMath.min (get_local $0) @@ -10368,26 +10386,30 @@ (get_local $4) ) ) - (get_local $5) + (get_local $7) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.min (; 129 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (return - (f32.min - (get_local $0) - (get_local $1) - ) - ) - ) - (func $std/math/test_minf (; 130 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_minf (; 120 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (local $5 f32) + (local $6 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.min - (get_local $0) - (get_local $1) + (block $~lib/math/NativeMathf.min|inlined.0 (result f32) + (set_local $5 + (get_local $0) + ) + (set_local $6 + (get_local $1) + ) + (br $~lib/math/NativeMathf.min|inlined.0 + (f32.min + (get_local $5) + (get_local $6) + ) + ) ) (get_local $2) (get_local $3) @@ -10395,7 +10417,7 @@ ) ) ) - (func $~lib/math/NativeMath.mod (; 131 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 121 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i32) @@ -10850,7 +10872,7 @@ ) ) ) - (func $std/math/test_mod (; 132 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_mod (; 122 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (return (i32.and @@ -10889,7 +10911,7 @@ ) ) ) - (func $~lib/math/NativeMathf.mod (; 133 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 123 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11325,7 +11347,7 @@ ) ) ) - (func $std/math/test_modf (; 134 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_modf (; 124 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.mod @@ -11338,7 +11360,7 @@ ) ) ) - (func $~lib/math/NativeMath.pow (; 135 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 125 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -12917,7 +12939,7 @@ ) ) ) - (func $std/math/test_pow (; 136 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 126 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) (return (i32.and @@ -12956,7 +12978,7 @@ ) ) ) - (func $~lib/math/NativeMathf.pow (; 137 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 127 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14287,7 +14309,7 @@ ) ) ) - (func $std/math/test_powf (; 138 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_powf (; 128 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.pow @@ -14300,7 +14322,7 @@ ) ) ) - (func $~lib/math/murmurHash3 (; 139 ;) (type $II) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 129 ;) (type $II) (param $0 i64) (result i64) (set_local $0 (i64.xor (get_local $0) @@ -14344,7 +14366,7 @@ (get_local $0) ) ) - (func $~lib/math/NativeMath.seedRandom (; 140 ;) (type $Iv) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 130 ;) (type $Iv) (param $0 i64) (if (i64.eqz (get_local $0) @@ -14353,7 +14375,7 @@ (call $abort (i32.const 0) (i32.const 32) - (i32.const 993) + (i32.const 1000) (i32.const 4) ) (unreachable) @@ -14373,7 +14395,7 @@ ) ) ) - (func $~lib/math/NativeMath.random (; 141 ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 131 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -14385,7 +14407,7 @@ (call $abort (i32.const 0) (i32.const 32) - (i32.const 1000) + (i32.const 1007) (i32.const 24) ) (unreachable) @@ -14457,12 +14479,7 @@ ) ) ) - (func $~lib/math/NativeMathf.seedRandom (; 142 ;) (type $Iv) (param $0 i64) - (call $~lib/math/NativeMath.seedRandom - (get_local $0) - ) - ) - (func $~lib/math/NativeMathf.random (; 143 ;) (type $f) (result f32) + (func $~lib/math/NativeMathf.random (; 132 ;) (type $f) (result f32) (local $0 f32) (nop) (block $break|0 @@ -14484,7 +14501,7 @@ (get_local $0) ) ) - (func $~lib/math/NativeMath.round (; 144 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.round (; 133 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -14646,7 +14663,7 @@ (get_local $3) ) ) - (func $std/math/test_round (; 145 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_round (; 134 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMath.round @@ -14658,7 +14675,7 @@ ) ) ) - (func $~lib/math/NativeMathf.round (; 146 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.round (; 135 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -14815,7 +14832,7 @@ (get_local $3) ) ) - (func $std/math/test_roundf (; 147 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_roundf (; 136 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.round @@ -14827,34 +14844,35 @@ ) ) ) - (func $~lib/math/NativeMath.sign (; 148 ;) (type $FF) (param $0 f64) (result f64) - (return - (if (result f64) - (f64.gt - (get_local $0) - (f64.const 0) - ) - (f64.const 1) - (if (result f64) - (f64.lt - (get_local $0) - (f64.const 0) - ) - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - (func $std/math/test_sign (; 149 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_sign (; 137 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.sign - (get_local $0) + (block $~lib/math/NativeMath.sign|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.sign|inlined.0 + (if (result f64) + (f64.gt + (get_local $4) + (f64.const 0) + ) + (f64.const 1) + (if (result f64) + (f64.lt + (get_local $4) + (f64.const 0) + ) + (f64.const -1) + (get_local $4) + ) + ) + ) ) (get_local $1) (get_local $2) @@ -14862,12 +14880,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.sign (get_local $0) @@ -14877,36 +14895,37 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.sign (; 150 ;) (type $ff) (param $0 f32) (result f32) - (return - (if (result f32) - (f32.gt - (get_local $0) - (f32.const 0) - ) - (f32.const 1) - (if (result f32) - (f32.lt - (get_local $0) - (f32.const 0) - ) - (f32.const -1) - (get_local $0) - ) - ) - ) - ) - (func $std/math/test_signf (; 151 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_signf (; 138 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.sign - (get_local $0) + (block $~lib/math/NativeMathf.sign|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.sign|inlined.0 + (if (result f32) + (f32.gt + (get_local $4) + (f32.const 0) + ) + (f32.const 1) + (if (result f32) + (f32.lt + (get_local $4) + (f32.const 0) + ) + (f32.const -1) + (get_local $4) + ) + ) + ) ) (get_local $1) (get_local $2) @@ -14914,7 +14933,7 @@ ) ) ) - (func $~lib/math/NativeMath.rem (; 152 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 139 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i32) @@ -15493,7 +15512,7 @@ ) ) ) - (func $std/math/test_rem (; 153 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_rem (; 140 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMath.rem @@ -15506,7 +15525,7 @@ ) ) ) - (func $~lib/math/NativeMathf.rem (; 154 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 141 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16069,7 +16088,7 @@ ) ) ) - (func $std/math/test_remf (; 155 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_remf (; 142 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.rem @@ -16082,7 +16101,7 @@ ) ) ) - (func $~lib/math/NativeMath.sinh (; 156 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 143 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 f64) @@ -16217,7 +16236,7 @@ (get_local $5) ) ) - (func $std/math/test_sinh (; 157 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 144 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -16254,7 +16273,7 @@ ) ) ) - (func $~lib/math/NativeMathf.sinh (; 158 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 145 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -16377,7 +16396,7 @@ (get_local $4) ) ) - (func $std/math/test_sinhf (; 159 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinhf (; 146 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.sinh @@ -16389,22 +16408,23 @@ ) ) ) - (func $~lib/math/NativeMath.sqrt (; 160 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - (func $std/math/test_sqrt (; 161 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_sqrt (; 147 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.sqrt - (get_local $0) + (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.sqrt|inlined.0 + (f64.sqrt + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -16412,12 +16432,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.sqrt (get_local $0) @@ -16427,24 +16447,25 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.sqrt (; 162 ;) (type $ff) (param $0 f32) (result f32) - (return - (f32.sqrt - (get_local $0) - ) - ) - ) - (func $std/math/test_sqrtf (; 163 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sqrtf (; 148 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.sqrt - (get_local $0) + (block $~lib/math/NativeMathf.sqrt|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.sqrt|inlined.0 + (f32.sqrt + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -16452,7 +16473,7 @@ ) ) ) - (func $~lib/math/NativeMath.tanh (; 164 ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 149 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -16598,7 +16619,7 @@ ) ) ) - (func $std/math/test_tanh (; 165 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 150 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) (return (i32.and @@ -16635,7 +16656,7 @@ ) ) ) - (func $~lib/math/NativeMathf.tanh (; 166 ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 151 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -16770,7 +16791,7 @@ ) ) ) - (func $std/math/test_tanhf (; 167 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanhf (; 152 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (return (call $std/math/check (call $~lib/math/NativeMathf.tanh @@ -16782,22 +16803,23 @@ ) ) ) - (func $~lib/math/NativeMath.trunc (; 168 ;) (type $FF) (param $0 f64) (result f64) - (return - (f64.trunc - (get_local $0) - ) - ) - ) - (func $std/math/test_trunc (; 169 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (local $4 i32) + (func $std/math/test_trunc (; 153 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (local $4 f64) + (local $5 i32) (return (i32.and (if (result i32) - (tee_local $4 + (tee_local $5 (call $std/math/check - (call $~lib/math/NativeMath.trunc - (get_local $0) + (block $~lib/math/NativeMath.trunc|inlined.0 (result f64) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMath.trunc|inlined.0 + (f64.trunc + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -16805,12 +16827,12 @@ ) ) (if (result i32) - (tee_local $4 + (tee_local $5 (i32.eqz (i32.const 1) ) ) - (get_local $4) + (get_local $5) (call $std/math/check (call $~lib/math/JSMath.trunc (get_local $0) @@ -16820,24 +16842,25 @@ (get_local $3) ) ) - (get_local $4) + (get_local $5) ) (i32.const 1) ) ) ) - (func $~lib/math/NativeMathf.trunc (; 170 ;) (type $ff) (param $0 f32) (result f32) - (return - (f32.trunc - (get_local $0) - ) - ) - ) - (func $std/math/test_truncf (; 171 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_truncf (; 154 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (local $4 f32) (return (call $std/math/check - (call $~lib/math/NativeMathf.trunc - (get_local $0) + (block $~lib/math/NativeMathf.trunc|inlined.0 (result f32) + (set_local $4 + (get_local $0) + ) + (br $~lib/math/NativeMathf.trunc|inlined.0 + (f32.trunc + (get_local $4) + ) + ) ) (get_local $1) (get_local $2) @@ -16845,11 +16868,12 @@ ) ) ) - (func $start (; 172 ;) (type $v) + (func $start (; 155 ;) (type $v) (local $0 i32) (local $1 f64) (local $2 i32) - (local $3 f32) + (local $3 i64) + (local $4 f32) (if (i32.eqz (f64.eq @@ -47958,9 +47982,14 @@ ) ) ) - (call $~lib/math/NativeMathf.seedRandom - (i64.reinterpret/f64 - (call $~lib/math/JSMath.random) + (block $~lib/math/NativeMathf.seedRandom|inlined.0 + (set_local $3 + (i64.reinterpret/f64 + (call $~lib/math/JSMath.random) + ) + ) + (call $~lib/math/NativeMath.seedRandom + (get_local $3) ) ) (block $break|1 @@ -47977,7 +48006,7 @@ ) (block (block - (set_local $3 + (set_local $4 (call $~lib/math/NativeMathf.random) ) (if @@ -47986,12 +48015,12 @@ (if (result i32) (tee_local $2 (f32.ge - (get_local $3) + (get_local $4) (f32.const 0) ) ) (f32.lt - (get_local $3) + (get_local $4) (f32.const 1) ) (get_local $2)