From 209dbd2e637bfcbe1c105ee23bf12766e6c0f404 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 29 Oct 2021 02:04:49 +0300 Subject: [PATCH 1/6] use non trapping float to int conv by default --- src/compiler.ts | 4 +- src/module.ts | 2 +- tests/compiler/asc-constants.untouched.wat | 4 +- tests/compiler/binary.untouched.wat | 2 +- tests/compiler/number.untouched.wat | 2 +- .../portable-conversions.untouched.wat | 40 +- tests/compiler/resolve-binary.untouched.wat | 2 +- .../resolve-elementaccess.optimized.wat | 2 +- .../resolve-elementaccess.untouched.wat | 2 +- tests/compiler/resolve-ternary.untouched.wat | 2 +- tests/compiler/std/array.optimized.wat | 8 +- tests/compiler/std/array.untouched.wat | 8 +- tests/compiler/std/map.optimized.wat | 28 +- tests/compiler/std/map.untouched.wat | 28 +- tests/compiler/std/math.optimized.wat | 24 +- tests/compiler/std/math.untouched.wat | 22 +- tests/compiler/std/string.optimized.wat | 6 +- tests/compiler/std/string.untouched.wat | 6 +- tests/compiler/std/typedarray.optimized.wat | 868 +++++++++--------- tests/compiler/std/typedarray.untouched.wat | 40 +- tests/compiler/templateliteral.optimized.wat | 2 +- tests/compiler/templateliteral.untouched.wat | 2 +- tests/compiler/wasi/trace.optimized.wat | 2 +- tests/compiler/wasi/trace.untouched.wat | 2 +- tests/features.json | 3 - 25 files changed, 535 insertions(+), 576 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 9ad5925ab3..b60c600caa 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -241,7 +241,7 @@ export class Options { /** Global aliases, mapping alias names as the key to internal names to be aliased as the value. */ globalAliases: Map | null = null; /** Features to activate by default. These are the finished proposals. */ - features: Feature = Feature.MUTABLE_GLOBALS | Feature.SIGN_EXTENSION; + features: Feature = Feature.MUTABLE_GLOBALS | Feature.SIGN_EXTENSION | Feature.NONTRAPPING_F2I; /** If true, disallows unsafe features in user code. */ noUnsafe: bool = false; /** If true, enables pedantic diagnostics. */ @@ -425,7 +425,7 @@ export class Compiler extends DiagnosticEmitter { } var featureFlags: FeatureFlags = 0; if (options.hasFeature(Feature.SIGN_EXTENSION)) featureFlags |= FeatureFlags.SignExt; - if (options.hasFeature(Feature.MUTABLE_GLOBALS)) featureFlags |= FeatureFlags.MutableGloabls; + if (options.hasFeature(Feature.MUTABLE_GLOBALS)) featureFlags |= FeatureFlags.MutableGlobals; if (options.hasFeature(Feature.NONTRAPPING_F2I)) featureFlags |= FeatureFlags.TruncSat; if (options.hasFeature(Feature.BULK_MEMORY)) featureFlags |= FeatureFlags.BulkMemory; if (options.hasFeature(Feature.SIMD)) featureFlags |= FeatureFlags.SIMD; diff --git a/src/module.ts b/src/module.ts index 4c1c379f9c..6acc06103a 100644 --- a/src/module.ts +++ b/src/module.ts @@ -64,7 +64,7 @@ export namespace TypeRef { export enum FeatureFlags { MVP = 0 /* _BinaryenFeatureMVP */, Atomics = 1 /* _BinaryenFeatureAtomics */, - MutableGloabls = 2 /* _BinaryenFeatureMutableGlobals */, + MutableGlobals = 2 /* _BinaryenFeatureMutableGlobals */, TruncSat = 4 /* _BinaryenFeatureNontrappingFPToInt */, SIMD = 8 /* _BinaryenFeatureSIMD128 */, BulkMemory = 16 /* _BinaryenFeatureBulkMemory */, diff --git a/tests/compiler/asc-constants.untouched.wat b/tests/compiler/asc-constants.untouched.wat index 0fc4903e56..a809221e67 100644 --- a/tests/compiler/asc-constants.untouched.wat +++ b/tests/compiler/asc-constants.untouched.wat @@ -7,7 +7,7 @@ (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/ASC_FEATURE_SIGN_EXTENSION i32 (i32.const 1)) (global $~lib/ASC_FEATURE_MUTABLE_GLOBALS i32 (i32.const 1)) - (global $~lib/ASC_FEATURE_NONTRAPPING_F2I i32 (i32.const 0)) + (global $~lib/ASC_FEATURE_NONTRAPPING_F2I i32 (i32.const 1)) (global $~lib/ASC_FEATURE_BULK_MEMORY i32 (i32.const 0)) (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0)) (global $~lib/ASC_FEATURE_THREADS i32 (i32.const 0)) @@ -40,7 +40,7 @@ drop i32.const 1 drop - i32.const 0 + i32.const 1 drop i32.const 0 drop diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index ae76893ff6..4654eaba73 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -2649,7 +2649,7 @@ f64.convert_i64_s f64.const 1 call $~lib/math/NativeMath.pow - i64.trunc_f64_s + i64.trunc_sat_f64_s global.set $binary/I global.get $binary/I i64.const 1 diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index a44c71d806..9259d8fbaf 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -5182,7 +5182,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/portable-conversions.untouched.wat b/tests/compiler/portable-conversions.untouched.wat index fda49f783b..5f7090e136 100644 --- a/tests/compiler/portable-conversions.untouched.wat +++ b/tests/compiler/portable-conversions.untouched.wat @@ -40,7 +40,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.extend8_s i32.eqz if @@ -52,7 +52,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.extend8_s i32.eqz if @@ -87,7 +87,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.extend16_s i32.eqz if @@ -99,7 +99,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.extend16_s i32.eqz if @@ -132,7 +132,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.eqz if i32.const 0 @@ -143,7 +143,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.eqz if i32.const 0 @@ -175,7 +175,7 @@ unreachable end global.get $portable-conversions/f - i64.trunc_f32_s + i64.trunc_sat_f32_s i64.eqz if i32.const 0 @@ -186,7 +186,7 @@ unreachable end global.get $portable-conversions/F - i64.trunc_f64_s + i64.trunc_sat_f64_s i64.eqz if i32.const 0 @@ -218,7 +218,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.eqz if i32.const 0 @@ -229,7 +229,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.eqz if i32.const 0 @@ -265,7 +265,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_u + i32.trunc_sat_f32_u i32.const 255 i32.and i32.eqz @@ -278,7 +278,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_u + i32.trunc_sat_f64_u i32.const 255 i32.and i32.eqz @@ -316,7 +316,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_u + i32.trunc_sat_f32_u i32.const 65535 i32.and i32.eqz @@ -329,7 +329,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_u + i32.trunc_sat_f64_u i32.const 65535 i32.and i32.eqz @@ -363,7 +363,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_u + i32.trunc_sat_f32_u i32.eqz if i32.const 0 @@ -374,7 +374,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_u + i32.trunc_sat_f64_u i32.eqz if i32.const 0 @@ -406,7 +406,7 @@ unreachable end global.get $portable-conversions/f - i64.trunc_f32_u + i64.trunc_sat_f32_u i64.eqz if i32.const 0 @@ -417,7 +417,7 @@ unreachable end global.get $portable-conversions/F - i64.trunc_f64_u + i64.trunc_sat_f64_u i64.eqz if i32.const 0 @@ -449,7 +449,7 @@ unreachable end global.get $portable-conversions/f - i32.trunc_f32_u + i32.trunc_sat_f32_u i32.eqz if i32.const 0 @@ -460,7 +460,7 @@ unreachable end global.get $portable-conversions/F - i32.trunc_f64_u + i32.trunc_sat_f64_u i32.eqz if i32.const 0 diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index d434e75855..e3e3f55e43 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -6180,7 +6180,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 6f78d8f528..6199908705 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -3766,7 +3766,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $2 local.get $0 local.get $2 diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 0a67fc5010..7e7cfdef79 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -4932,7 +4932,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 922eca36b6..326cfa3912 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -5172,7 +5172,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 3432398cde..327b540630 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -10710,7 +10710,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $3 local.get $1 local.get $3 @@ -25906,7 +25906,7 @@ call $~lib/math/NativeMath.random f64.const 32 f64.mul - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $5 i32.const 0 local.set $8 @@ -25952,7 +25952,7 @@ f64.convert_i32_s f64.mul f64.floor - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29745,7 +29745,7 @@ local.get $0 f64.convert_i32_s f64.mul - i32.trunc_f64_s + i32.trunc_sat_f64_s call $~lib/array/Array#__set local.get $2 i32.const 1 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index c2c0f7c8d6..06c56a159c 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -17525,7 +17525,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 @@ -25473,7 +25473,7 @@ local.set $4 local.get $4 f64.floor - i32.trunc_f64_s + i32.trunc_sat_f64_s call $~lib/string/String#charAt local.set $5 global.get $~lib/memory/__stack_pointer @@ -25531,7 +25531,7 @@ call $~lib/math/NativeMath.random f64.const 32 f64.mul - i32.trunc_f64_s + i32.trunc_sat_f64_s call $std/array/createRandomString local.set $4 global.get $~lib/memory/__stack_pointer @@ -38449,7 +38449,7 @@ local.get $0 f64.convert_i32_s f64.mul - i32.trunc_f64_s + i32.trunc_sat_f64_s call $~lib/array/Array#__set local.get $2 i32.const 1 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 1123142e58..6635e62348 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -18927,7 +18927,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set @@ -19012,7 +19012,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -19131,7 +19131,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -19146,7 +19146,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add call $~lib/map/Map#set @@ -19231,7 +19231,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -20132,7 +20132,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -20328,7 +20328,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set @@ -21138,7 +21138,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 10 i32.add call $~lib/map/Map#set @@ -21158,7 +21158,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 10 i32.add i32.ne @@ -21212,7 +21212,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 10 i32.add i32.ne @@ -21227,7 +21227,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 20 i32.add call $~lib/map/Map#set @@ -21247,7 +21247,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 20 i32.add i32.ne @@ -21978,7 +21978,7 @@ local.get $3 call $~lib/map/Map#get local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 20 i32.add i32.ne @@ -22044,7 +22044,7 @@ local.get $4 local.get $3 local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.const 10 i32.add call $~lib/map/Map#set diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 2a7dc6da68..3fe9ec83ad 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -14767,7 +14767,7 @@ local.get $1 i32.const 10 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add call $~lib/map/Map#set drop @@ -14788,7 +14788,7 @@ call $~lib/map/Map#get i32.const 10 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add i32.eq i32.eqz @@ -14846,7 +14846,7 @@ call $~lib/map/Map#get i32.const 10 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add i32.eq i32.eqz @@ -14862,7 +14862,7 @@ local.get $1 i32.const 20 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add call $~lib/map/Map#set drop @@ -14883,7 +14883,7 @@ call $~lib/map/Map#get i32.const 20 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add i32.eq i32.eqz @@ -15053,7 +15053,7 @@ call $~lib/map/Map#get i32.const 20 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add i32.eq i32.eqz @@ -15128,7 +15128,7 @@ local.get $1 i32.const 10 local.get $1 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.add call $~lib/map/Map#set drop @@ -16067,7 +16067,7 @@ local.get $1 i32.const 10 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add call $~lib/map/Map#set drop @@ -16088,7 +16088,7 @@ call $~lib/map/Map#get i32.const 10 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add i32.eq i32.eqz @@ -16146,7 +16146,7 @@ call $~lib/map/Map#get i32.const 10 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add i32.eq i32.eqz @@ -16162,7 +16162,7 @@ local.get $1 i32.const 20 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add call $~lib/map/Map#set drop @@ -16183,7 +16183,7 @@ call $~lib/map/Map#get i32.const 20 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add i32.eq i32.eqz @@ -16353,7 +16353,7 @@ call $~lib/map/Map#get i32.const 20 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add i32.eq i32.eqz @@ -16428,7 +16428,7 @@ local.get $1 i32.const 10 local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s i32.add call $~lib/map/Map#set drop diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index decb92239f..3e76a7dc1b 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -3682,7 +3682,7 @@ f64.const 3.834951969714103e-04 f64.mul f64.add - i64.trunc_f64_u + i64.trunc_sat_f64_u local.tee $1 i64.lt_u i64.extend_i32_u @@ -4017,7 +4017,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $4 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.0 end i32.const 0 @@ -4399,7 +4399,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $8 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.0 end local.get $1 @@ -4655,7 +4655,7 @@ local.get $0 f64.copysign f64.add - i32.trunc_f64_s + i32.trunc_sat_f64_s local.get $5 i32.const 1072734898 i32.lt_u @@ -5214,7 +5214,7 @@ local.get $0 f32.copysign f32.add - i32.trunc_f32_s + i32.trunc_sat_f32_s local.get $5 i32.const 1065686418 i32.lt_u @@ -9475,7 +9475,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $4 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.1 end i32.const 0 @@ -9870,7 +9870,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $9 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.1 end local.get $1 @@ -10638,7 +10638,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $6 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $3 br $~lib/math/rempio2|inlined.2 end @@ -10835,7 +10835,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $7 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.2 end local.get $1 @@ -11537,7 +11537,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $4 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.3 end i32.const 0 @@ -11729,7 +11729,7 @@ i64.le_u if (result i32) local.get $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s else local.get $3 i64.const 1106 @@ -11772,7 +11772,7 @@ i64.le_u if (result i32) local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s else local.get $3 i64.const 1106 diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index d83cf67e4f..2f02d34244 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -4561,7 +4561,7 @@ f64.convert_i64_u f64.mul f64.add - i64.trunc_f64_u + i64.trunc_sat_f64_u local.set $18 local.get $31 local.get $33 @@ -4954,7 +4954,7 @@ local.get $5 global.set $~lib/math/rempio2_y1 local.get $7 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.0 end local.get $4 @@ -5554,7 +5554,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $6 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.0 end local.get $10 @@ -5848,7 +5848,7 @@ local.get $0 f64.copysign f64.add - i32.trunc_f64_s + i32.trunc_sat_f64_s local.get $2 i32.const 1072734898 i32.lt_u @@ -6554,7 +6554,7 @@ local.get $0 f32.copysign f32.add - i32.trunc_f32_s + i32.trunc_sat_f32_s local.get $2 i32.const 1065686418 i32.lt_u @@ -12503,7 +12503,7 @@ local.get $6 global.set $~lib/math/rempio2_y1 local.get $8 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.1 end local.get $5 @@ -13095,7 +13095,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $7 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.1 end local.get $10 @@ -14066,7 +14066,7 @@ local.get $15 global.set $~lib/math/rempio2_y1 local.get $11 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.2 end local.get $6 @@ -14577,7 +14577,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $10 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.2 end local.get $12 @@ -15442,7 +15442,7 @@ local.get $6 global.set $~lib/math/rempio2_y1 local.get $9 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.3 end local.get $5 @@ -15693,7 +15693,7 @@ i64.le_u if local.get $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $1 else local.get $3 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 9302607f35..bf521d78d6 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -5730,7 +5730,7 @@ f64.const 0.00004294967296 f64.mul f64.nearest - i64.trunc_f64_u + i64.trunc_sat_f64_u local.get $6 local.get $9 i64.shl @@ -5771,7 +5771,7 @@ local.get $10 f64.convert_i64_u f64.div - i64.trunc_f64_u + i64.trunc_sat_f64_u local.get $14 local.get $9 i64.shl @@ -7307,7 +7307,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $2 local.get $0 local.get $2 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index dfb1faca55..1387104395 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -6822,7 +6822,7 @@ f64.convert_i64_u f64.mul f64.nearest - i64.trunc_f64_u + i64.trunc_sat_f64_u i64.add local.set $19 local.get $20 @@ -6868,7 +6868,7 @@ local.get $23 f64.convert_i64_u f64.div - i64.trunc_f64_u + i64.trunc_sat_f64_u i64.add local.set $19 local.get $20 @@ -8949,7 +8949,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 18df4d77cd..1c2a0e1413 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -27671,7 +27671,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $3 local.get $1 local.get $3 @@ -41616,9 +41616,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41664,21 +41664,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -41737,43 +41737,41 @@ i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $2 + local.get $9 i32.lt_s if - local.get $3 - local.get $6 + local.get $2 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + i32.trunc_sat_f32_s + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_s - else - i32.const 0 - end + select i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -41782,12 +41780,12 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 local.get $1 @@ -41821,38 +41819,36 @@ i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $2 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 - local.get $4 + local.get $2 i32.add local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_s + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_s - else - i32.const 0 - end + select i32.store8 local.get $1 i32.const 1 @@ -41874,7 +41870,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -41889,12 +41885,12 @@ i32.const 15 i32.const 11488 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42006,9 +42002,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42054,21 +42050,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42127,43 +42123,41 @@ i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $2 + local.get $9 i32.lt_s if - local.get $3 - local.get $6 + local.get $2 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + i32.trunc_sat_f32_u + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_u - else - i32.const 0 - end + select i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -42172,12 +42166,12 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 local.get $1 @@ -42211,38 +42205,36 @@ i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $2 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 - local.get $4 + local.get $2 i32.add local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_u + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_u - else - i32.const 0 - end + select i32.store8 local.get $1 i32.const 1 @@ -42264,7 +42256,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42279,12 +42271,12 @@ i32.const 63 i32.const 11696 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42397,9 +42389,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f64) + (local $8 f32) + (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42428,55 +42420,55 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -42503,10 +42495,10 @@ local.set $7 i32.const 11020 i32.load - local.set $8 + local.set $10 loop $for-loop|0 local.get $0 - local.get $8 + local.get $10 i32.lt_s if local.get $0 @@ -42519,13 +42511,13 @@ local.get $7 i32.add i32.load - local.tee $5 + local.tee $4 i32.sub i32.const 31 i32.shr_s - local.get $5 + local.get $4 i32.or - local.get $5 + local.get $4 i32.const 31 i32.shr_s i32.const -1 @@ -42568,42 +42560,40 @@ i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $8 + local.set $7 loop $for-loop|04 local.get $0 - local.get $8 + local.get $7 i32.lt_s if local.get $0 - local.get $6 + local.get $4 i32.add + f32.const 0 + f32.const 255 local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $9 - local.get $9 + local.tee $8 + f32.min + f32.max + i32.trunc_sat_f32_u + i32.const 0 + local.get $8 + local.get $8 f32.sub f32.const 0 f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $9 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end + select i32.store8 local.get $0 i32.const 1 @@ -42625,7 +42615,7 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $3 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 @@ -42657,42 +42647,40 @@ i32.load offset=4 i32.const 2 i32.add - local.set $5 + local.set $2 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|08 local.get $0 - local.get $7 + local.get $6 i32.lt_s if local.get $0 - local.get $5 + local.get $2 i32.add + f64.const 0 + f64.const 255 local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $10 - local.get $10 + local.tee $9 + f64.min + f64.max + i32.trunc_sat_f64_u + i32.const 0 + local.get $9 + local.get $9 f64.sub f64.const 0 f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $10 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end + select i32.store8 local.get $0 i32.const 1 @@ -42714,10 +42702,10 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $1 - local.get $4 + local.get $5 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -42737,33 +42725,33 @@ i32.load offset=4 i32.const 7 i32.add - local.set $3 + local.set $2 i32.const 11268 i32.load - local.set $4 + local.set $5 i32.const 11276 i32.load - local.set $5 + local.set $4 loop $for-loop|012 local.get $0 - local.get $5 + local.get $4 i32.lt_s if local.get $0 - local.get $3 + local.get $2 i32.add i32.const 255 local.get $0 - local.get $4 + local.get $5 i32.add i32.load8_s - local.tee $2 + local.tee $3 i32.sub i32.const 31 i32.shr_s - local.get $2 + local.get $3 i32.or - local.get $2 + local.get $3 i32.const 31 i32.shr_s i32.const -1 @@ -42904,9 +42892,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42952,21 +42940,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43027,45 +43015,43 @@ i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $2 + local.get $9 i32.lt_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + i32.trunc_sat_f32_s + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_s - else - i32.const 0 - end + select i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -43074,12 +43060,12 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 local.get $1 @@ -43115,40 +43101,38 @@ i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $2 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_s + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_s - else - i32.const 0 - end + select i32.store16 local.get $1 i32.const 1 @@ -43170,7 +43154,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43185,12 +43169,12 @@ i32.const 64 i32.const 12192 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43307,9 +43291,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43355,21 +43339,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43430,45 +43414,43 @@ i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $2 + local.get $9 i32.lt_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + i32.trunc_sat_f32_u + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_u - else - i32.const 0 - end + select i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -43477,12 +43459,12 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 local.get $1 @@ -43518,40 +43500,38 @@ i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $2 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_u + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_u - else - i32.const 0 - end + select i32.store16 local.get $1 i32.const 1 @@ -43573,7 +43553,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43588,12 +43568,12 @@ i32.const 65 i32.const 12480 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43710,9 +43690,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43811,12 +43791,12 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43836,45 +43816,43 @@ i32.load offset=4 i32.const 12 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $10 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $10 + local.get $3 + local.get $9 i32.lt_s if - local.get $7 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $10 + local.get $6 i32.add f32.load - local.set $8 - local.get $3 - local.get $6 + local.set $7 + local.get $4 + local.get $10 i32.add - local.get $8 - local.get $8 + local.get $7 + i32.trunc_sat_f32_s + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_s - else - i32.const 0 - end + select i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -43883,12 +43861,12 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 local.get $1 @@ -43927,13 +43905,13 @@ local.set $3 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 @@ -43944,20 +43922,18 @@ local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_s + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_s - else - i32.const 0 - end + select i32.store local.get $1 i32.const 1 @@ -44116,9 +44092,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44217,12 +44193,12 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44242,45 +44218,43 @@ i32.load offset=4 i32.const 12 i32.add - local.set $6 + local.set $4 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $10 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $10 + local.get $3 + local.get $9 i32.lt_s if - local.get $7 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $10 + local.get $6 i32.add f32.load - local.set $8 - local.get $3 - local.get $6 + local.set $7 + local.get $4 + local.get $10 i32.add - local.get $8 - local.get $8 + local.get $7 + i32.trunc_sat_f32_u + i32.const 0 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_u - else - i32.const 0 - end + select i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -44289,12 +44263,12 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 local.get $1 @@ -44333,13 +44307,13 @@ local.set $3 i32.const 11188 i32.load - local.set $6 + local.set $4 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $1 @@ -44350,20 +44324,18 @@ local.get $1 i32.const 3 i32.shl - local.get $6 + local.get $4 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + i32.trunc_sat_f64_u + i32.const 0 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_u - else - i32.const 0 - end + select i32.store local.get $1 i32.const 1 @@ -44670,16 +44642,14 @@ i32.add f32.load local.tee $9 + i64.trunc_sat_f32_s + i64.const 0 + local.get $9 local.get $9 f32.sub f32.const 0 f32.eq - if (result i64) - local.get $9 - i64.trunc_f32_s - else - i64.const 0 - end + select i64.store local.get $2 i32.const 1 @@ -44758,16 +44728,14 @@ local.get $7 i32.add local.get $8 + i64.trunc_sat_f64_s + i64.const 0 + local.get $8 local.get $8 f64.sub f64.const 0 f64.eq - if (result i64) - local.get $8 - i64.trunc_f64_s - else - i64.const 0 - end + select i64.store local.get $1 i32.const 1 @@ -45074,16 +45042,14 @@ i32.add f32.load local.tee $9 + i64.trunc_sat_f32_u + i64.const 0 + local.get $9 local.get $9 f32.sub f32.const 0 f32.eq - if (result i64) - local.get $9 - i64.trunc_f32_u - else - i64.const 0 - end + select i64.store local.get $2 i32.const 1 @@ -45162,16 +45128,14 @@ local.get $7 i32.add local.get $8 + i64.trunc_sat_f64_u + i64.const 0 + local.get $8 local.get $8 f64.sub f64.const 0 f64.eq - if (result i64) - local.get $8 - i64.trunc_f64_u - else - i64.const 0 - end + select i64.store local.get $1 i32.const 1 @@ -46279,10 +46243,10 @@ (local $10 i32) (local $11 f32) (local $12 f64) - (local $13 i64) - (local $14 f32) - (local $15 f64) - (local $16 i32) + (local $13 i32) + (local $14 i64) + (local $15 f32) + (local $16 f64) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -48965,14 +48929,14 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 local.get $5 local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 + local.set $14 local.get $5 i32.const 1 i32.add @@ -48980,7 +48944,7 @@ br $for-loop|023 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -49023,7 +48987,7 @@ i32.const 0 local.set $5 i64.const 0 - local.set $13 + local.set $14 local.get $2 i32.load offset=4 local.set $1 @@ -49046,14 +49010,14 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 local.get $5 local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 + local.set $14 local.get $5 i32.const 1 i32.add @@ -49061,7 +49025,7 @@ br $for-loop|025 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -49125,14 +49089,14 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $15 local.get $11 local.get $5 local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 + local.set $15 local.get $5 i32.const 1 i32.add @@ -49140,7 +49104,7 @@ br $for-loop|027 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner1 @@ -49204,14 +49168,14 @@ local.set $12 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $16 local.get $12 local.get $5 local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 + local.set $16 local.get $5 i32.const 1 i32.add @@ -49219,7 +49183,7 @@ br $for-loop|029 end end - local.get $15 + local.get $16 f64.const 6 f64.ne br_if $folding-inner1 @@ -50386,7 +50350,7 @@ i32.const 3472 i32.store offset=4 i64.const 0 - local.set $13 + local.set $14 local.get $1 i32.load offset=4 local.set $0 @@ -50411,14 +50375,14 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 local.get $3 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 + local.set $14 local.get $3 i32.const 1 i32.sub @@ -50426,7 +50390,7 @@ br $for-loop|046 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -50467,7 +50431,7 @@ i32.const 3504 i32.store offset=4 i64.const 0 - local.set $13 + local.set $14 local.get $1 i32.load offset=4 local.set $0 @@ -50492,14 +50456,14 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 local.get $3 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 + local.set $14 local.get $3 i32.const 1 i32.sub @@ -50507,7 +50471,7 @@ br $for-loop|048 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -50548,7 +50512,7 @@ i32.const 3536 i32.store offset=4 f32.const 0 - local.set $14 + local.set $15 local.get $1 i32.load offset=4 local.set $0 @@ -50573,14 +50537,14 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $15 local.get $11 local.get $3 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 + local.set $15 local.get $3 i32.const 1 i32.sub @@ -50588,7 +50552,7 @@ br $for-loop|050 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner5 @@ -50629,7 +50593,7 @@ i32.const 3568 i32.store offset=4 f64.const 0 - local.set $15 + local.set $16 local.get $1 i32.load offset=4 local.set $0 @@ -50654,14 +50618,14 @@ local.set $12 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $16 local.get $12 local.get $3 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 + local.set $16 local.get $3 i32.const 1 i32.sub @@ -50669,7 +50633,7 @@ br $for-loop|052 end end - local.get $15 + local.get $16 f64.const 6 f64.ne br_if $folding-inner5 @@ -62396,7 +62360,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 + local.tee $6 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -62418,21 +62382,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set @@ -62449,7 +62413,7 @@ i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $7 + local.get $6 i32.load offset=8 local.get $1 i32.load offset=8 @@ -62459,63 +62423,61 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $7 + local.get $6 i32.load offset=4 i32.const 1 i32.add - local.set $4 + local.set $3 local.get $1 i32.load offset=4 - local.set $3 + local.set $2 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|082 - local.get $2 - local.get $16 + local.get $1 + local.get $13 i32.gt_s if - local.get $4 - local.get $16 + local.get $3 + local.get $13 i32.add - local.get $16 + f32.const 0 + f32.const 255 + local.get $13 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load local.tee $11 + f32.min + f32.max + i32.trunc_sat_f32_u + i32.const 0 + local.get $11 local.get $11 f32.sub f32.const 0 f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end + select i32.store8 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|082 end end - local.get $7 - local.get $5 + local.get $6 + local.get $4 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $6 - local.get $7 + local.set $13 + local.get $6 i32.load offset=8 local.get $0 i32.load offset=8 @@ -62525,7 +62487,7 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $7 + local.get $6 i32.load offset=4 i32.const 8 i32.add @@ -62540,13 +62502,13 @@ local.set $0 loop $for-loop|086311 local.get $0 - local.get $6 + local.get $13 i32.gt_s if local.get $2 - local.get $6 + local.get $13 i32.add - local.get $6 + local.get $13 i32.const 2 i32.shl local.get $1 @@ -62566,10 +62528,10 @@ i32.xor i32.and i32.store8 - local.get $6 + local.get $13 i32.const 1 i32.add - local.set $6 + local.set $13 br $for-loop|086311 end end @@ -62582,7 +62544,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -62628,8 +62590,8 @@ i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $6 - local.get $7 + local.set $13 + local.get $6 i32.load offset=8 local.get $0 i32.load offset=8 @@ -62637,7 +62599,7 @@ i32.shr_u i32.lt_s br_if $folding-inner19 - local.get $7 + local.get $6 i32.load offset=4 local.set $3 local.get $0 @@ -62650,14 +62612,14 @@ local.set $1 loop $for-loop|090 local.get $1 - local.get $6 + local.get $13 i32.gt_s if local.get $3 - local.get $6 + local.get $13 i32.add i32.const 255 - local.get $6 + local.get $13 i32.const 2 i32.shl local.get $2 @@ -62669,14 +62631,14 @@ i32.gt_u select i32.store8 - local.get $6 + local.get $13 i32.const 1 i32.add - local.set $6 + local.set $13 br $for-loop|090 end end - local.get $7 + local.get $6 local.get $4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> @@ -62689,7 +62651,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index bf2c7a5a80..b5f1bbb81d 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -23873,7 +23873,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 @@ -24713,7 +24713,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_s + i32.trunc_sat_f32_s else i32.const 0 end @@ -24919,7 +24919,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_s + i32.trunc_sat_f64_s else i32.const 0 end @@ -25342,7 +25342,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_u + i32.trunc_sat_f32_u else i32.const 0 end @@ -25544,7 +25544,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_u + i32.trunc_sat_f64_u else i32.const 0 end @@ -25977,7 +25977,7 @@ local.get $11 f32.min f32.max - i32.trunc_f32_u + i32.trunc_sat_f32_u else i32.const 0 end @@ -26206,7 +26206,7 @@ local.get $11 f64.min f64.max - i32.trunc_f64_u + i32.trunc_sat_f64_u else i32.const 0 end @@ -26712,7 +26712,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_s + i32.trunc_sat_f32_s else i32.const 0 end @@ -26914,7 +26914,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_s + i32.trunc_sat_f64_s else i32.const 0 end @@ -27381,7 +27381,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_u + i32.trunc_sat_f32_u else i32.const 0 end @@ -27583,7 +27583,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_u + i32.trunc_sat_f64_u else i32.const 0 end @@ -28004,7 +28004,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_s + i32.trunc_sat_f32_s else i32.const 0 end @@ -28206,7 +28206,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_s + i32.trunc_sat_f64_s else i32.const 0 end @@ -28673,7 +28673,7 @@ f32.eq if (result i32) local.get $11 - i32.trunc_f32_u + i32.trunc_sat_f32_u else i32.const 0 end @@ -28875,7 +28875,7 @@ f64.eq if (result i32) local.get $11 - i32.trunc_f64_u + i32.trunc_sat_f64_u else i32.const 0 end @@ -29384,7 +29384,7 @@ f32.eq if (result i64) local.get $11 - i64.trunc_f32_s + i64.trunc_sat_f32_s else i64.const 0 end @@ -29544,7 +29544,7 @@ f64.eq if (result i64) local.get $11 - i64.trunc_f64_s + i64.trunc_sat_f64_s else i64.const 0 end @@ -30053,7 +30053,7 @@ f32.eq if (result i64) local.get $11 - i64.trunc_f32_u + i64.trunc_sat_f32_u else i64.const 0 end @@ -30213,7 +30213,7 @@ f64.eq if (result i64) local.get $11 - i64.trunc_f64_u + i64.trunc_sat_f64_u else i64.const 0 end @@ -31765,7 +31765,7 @@ local.get $11 f32.min f32.max - i32.trunc_f32_u + i32.trunc_sat_f32_u else i32.const 0 end diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 44041fd406..f5fa40e299 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -4203,7 +4203,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $2 local.get $0 local.get $2 diff --git a/tests/compiler/templateliteral.untouched.wat b/tests/compiler/templateliteral.untouched.wat index 324a967b2c..f3b765fbe7 100644 --- a/tests/compiler/templateliteral.untouched.wat +++ b/tests/compiler/templateliteral.untouched.wat @@ -5308,7 +5308,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index ae31d07581..ce5663c746 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -3054,7 +3054,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $3 local.get $1 local.get $3 diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index 13b2f46cb4..e37edf40c1 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -4362,7 +4362,7 @@ f64.add local.set $16 local.get $16 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $15 local.get $15 local.get $15 diff --git a/tests/features.json b/tests/features.json index 07322b22df..90fe5ee80e 100644 --- a/tests/features.json +++ b/tests/features.json @@ -4,9 +4,6 @@ "bigint-integration": { }, "nontrapping-f2i": { - "asc_flags": [ - "--enable nontrapping-f2i" - ] }, "simd": { "asc_flags": [ From f0e09178a86e2535de13162147753891a1c7ab49 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 29 Oct 2021 02:10:51 +0300 Subject: [PATCH 2/6] update asc.json --- cli/asc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/asc.json b/cli/asc.json index e8b049cf63..138295fa34 100644 --- a/cli/asc.json +++ b/cli/asc.json @@ -215,7 +215,6 @@ "description": [ "Enables WebAssembly features being disabled by default.", "", - " nontrapping-f2i Non-trapping float to integer ops.", " bulk-memory Bulk memory operations.", " simd SIMD types and operations.", " threads Threading and atomic operations.", @@ -239,6 +238,7 @@ "", " mutable-globals Mutable global imports and exports.", " sign-extension Sign-extension operations", + " nontrapping-f2i Non-trapping float to integer ops.", "" ], "type": "S", From 70e0e85b770905ddef027d0c400b51a589a0bf90 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 29 Oct 2021 15:17:02 +0300 Subject: [PATCH 3/6] add compact !x path for makeIsTrueish for floating points --- src/compiler.ts | 90 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 28 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index b60c600caa..dce768204c 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10261,38 +10261,72 @@ export class Compiler extends DiagnosticEmitter { : expr; } case TypeKind.F32: { - // 0 < abs(bitCast(x)) <= bitCast(Infinity) or - // (reinterpret(x) & 0x7FFFFFFF) - 1 <= 0x7F800000 - 1 - // - // and finally: - // (reinterpret(x) << 1) - (1 << 1) <= ((0x7F800000 - 1) << 1) - return module.binary(BinaryOp.LeU32, - module.binary(BinaryOp.SubI32, - module.binary(BinaryOp.ShlI32, - module.unary(UnaryOp.ReinterpretF32ToI32, expr), - module.i32(1) + if ( + this.options.shrinkLevelHint > 1 && + this.options.hasFeature(Feature.NONTRAPPING_F2I) + ) { + // Use more compact but slower 5-byte approach + // !!(i32.trunc_sat_f32_u(f32.ceil(f32.abs(x)))) + return module.unary(UnaryOp.EqzI32, + module.unary(UnaryOp.EqzI32, + module.unary(UnaryOp.TruncSatF32ToU32, + module.unary(UnaryOp.CeilF32, + module.unary(UnaryOp.AbsF32, expr) + ) + ) + ) + ); + } else { + // 0 < abs(bitCast(x)) <= bitCast(Infinity) or + // (reinterpret(x) & 0x7FFFFFFF) - 1 <= 0x7F800000 - 1 + // + // and finally: + // (reinterpret(x) << 1) - (1 << 1) <= ((0x7F800000 - 1) << 1) + return module.binary(BinaryOp.LeU32, + module.binary(BinaryOp.SubI32, + module.binary(BinaryOp.ShlI32, + module.unary(UnaryOp.ReinterpretF32ToI32, expr), + module.i32(1) + ), + module.i32(2) // 1 << 1 ), - module.i32(2) // 1 << 1 - ), - module.i32(0xFEFFFFFE) // (0x7F800000 - 1) << 1 - ); + module.i32(0xFEFFFFFE) // (0x7F800000 - 1) << 1 + ); + } } case TypeKind.F64: { - // 0 < abs(bitCast(x)) <= bitCast(Infinity) or - // (reinterpret(x) & 0x7FFFFFFFFFFFFFFF) - 1 <= 0x7FF0000000000000 - 1 - // - // and finally: - // (reinterpret(x) << 1) - (1 << 1) <= ((0x7FF0000000000000 - 1) << 1) - return module.binary(BinaryOp.LeU64, - module.binary(BinaryOp.SubI64, - module.binary(BinaryOp.ShlI64, - module.unary(UnaryOp.ReinterpretF64ToI64, expr), - module.i64(1) + if ( + this.options.shrinkLevelHint > 1 && + this.options.hasFeature(Feature.NONTRAPPING_F2I) + ) { + // Use more compact but slower 5-byte approach + // !!(i32.trunc_sat_f64_u(f64.ceil(f64.abs(x)))) + return module.unary(UnaryOp.EqzI32, + module.unary(UnaryOp.EqzI32, + module.unary(UnaryOp.TruncSatF64ToU32, + module.unary(UnaryOp.CeilF64, + module.unary(UnaryOp.AbsF64, expr) + ) + ) + ) + ); + } else { + // 0 < abs(bitCast(x)) <= bitCast(Infinity) or + // (reinterpret(x) & 0x7FFFFFFFFFFFFFFF) - 1 <= 0x7FF0000000000000 - 1 + // + // and finally: + // (reinterpret(x) << 1) - (1 << 1) <= ((0x7FF0000000000000 - 1) << 1) + return module.binary(BinaryOp.LeU64, + module.binary(BinaryOp.SubI64, + module.binary(BinaryOp.ShlI64, + module.unary(UnaryOp.ReinterpretF64ToI64, expr), + module.i64(1) + ), + module.i64(2) // 1 << 1 ), - module.i64(2) // 1 << 1 - ), - module.i64(0xFFFFFFFE, 0xFFDFFFFF) // (0x7FF0000000000000 - 1) << 1 - ); + module.i64(0xFFFFFFFE, 0xFFDFFFFF) // (0x7FF0000000000000 - 1) << 1 + ); + } } case TypeKind.FUNCREF: case TypeKind.EXTERNREF: From 39a153f058dd3d4178cf7b70cfee2f88c5c18401 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 29 Oct 2021 16:30:33 +0300 Subject: [PATCH 4/6] add tests for float to bool casts for Oz --- tests/compiler/bool-Oz.json | 5 +++ tests/compiler/bool-Oz.optimized.wat | 6 +++ tests/compiler/bool-Oz.ts | 61 ++++++++++++++++++++++++++++ tests/compiler/bool-Oz.untouched.wat | 6 +++ 4 files changed, 78 insertions(+) create mode 100644 tests/compiler/bool-Oz.json create mode 100644 tests/compiler/bool-Oz.optimized.wat create mode 100644 tests/compiler/bool-Oz.ts create mode 100644 tests/compiler/bool-Oz.untouched.wat diff --git a/tests/compiler/bool-Oz.json b/tests/compiler/bool-Oz.json new file mode 100644 index 0000000000..e8dc22c998 --- /dev/null +++ b/tests/compiler/bool-Oz.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "-Oz" + ] +} diff --git a/tests/compiler/bool-Oz.optimized.wat b/tests/compiler/bool-Oz.optimized.wat new file mode 100644 index 0000000000..1ef9ba2bc2 --- /dev/null +++ b/tests/compiler/bool-Oz.optimized.wat @@ -0,0 +1,6 @@ +(module + (memory $0 1) + (data (i32.const 12) ",") + (data (i32.const 24) "\01\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") + (export "memory" (memory $0)) +) diff --git a/tests/compiler/bool-Oz.ts b/tests/compiler/bool-Oz.ts new file mode 100644 index 0000000000..5b54f755c0 --- /dev/null +++ b/tests/compiler/bool-Oz.ts @@ -0,0 +1,61 @@ +var f = 2; +assert(f == true); +var f0 = +0.0; +assert(f0 == false); +var f1 = -0.0; +assert(f1 == false); +var f2 = +NaN; +assert(f2 == false); +var f3 = -NaN; +assert(f3 == false); +var f4 = +f32.MAX_VALUE; +assert(f4 == true); +var f5 = -f32.MAX_VALUE; +assert(f5 == true); +var f6 = +Infinity; +assert(f6 == true); +var f7 = -Infinity; +assert(f7 == true); +var f8 = +f32.MIN_VALUE; +assert(f8 == true); +var f9 = -f32.MIN_VALUE; +assert(f9 == true); +var f10 = reinterpret(1); +assert(f10 == true); +var f11 = reinterpret(0x7F800000 - 1); +assert(f11 == true); +var f12 = reinterpret(0x7F800000 + 1); +assert(f12 == false); +var f13 = reinterpret(0xFF800000 + 1); +assert(f13 == false); + +var F = 2; +assert(F == true); +var F0 = +0.0; +assert(F0 == false); +var F1 = -0.0; +assert(F1 == false); +var F2 = +NaN; +assert(F2 == false); +var F3 = -NaN; +assert(F3 == false); +var F4 = +f64.MAX_VALUE; +assert(F4 == true); +var F5 = -f64.MAX_VALUE; +assert(F5 == true); +var F6 = +Infinity; +assert(F6 == true); +var F7 = -Infinity; +assert(F7 == true); +var F8 = +f64.MIN_VALUE; +assert(F8 == true); +var F9 = -f64.MIN_VALUE; +assert(F9 == true); +var F10 = reinterpret(1); +assert(F10 == true); +var F11 = reinterpret(0x7FF0000000000000 - 1); +assert(F11 == true); +var F12 = reinterpret(0x7FF0000000000000 + 1); +assert(F12 == false); +var F13 = reinterpret(0xFFF0000000000000 + 1); +assert(F13 == false); diff --git a/tests/compiler/bool-Oz.untouched.wat b/tests/compiler/bool-Oz.untouched.wat new file mode 100644 index 0000000000..1ef9ba2bc2 --- /dev/null +++ b/tests/compiler/bool-Oz.untouched.wat @@ -0,0 +1,6 @@ +(module + (memory $0 1) + (data (i32.const 12) ",") + (data (i32.const 24) "\01\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") + (export "memory" (memory $0)) +) From 26b475e3950382e385b357a99474ea00ef80a21b Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 29 Oct 2021 18:09:21 +0300 Subject: [PATCH 5/6] mention best case for size --- src/compiler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index dce768204c..5db2b48b28 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10265,7 +10265,7 @@ export class Compiler extends DiagnosticEmitter { this.options.shrinkLevelHint > 1 && this.options.hasFeature(Feature.NONTRAPPING_F2I) ) { - // Use more compact but slower 5-byte approach + // Use more compact but slower 5-byte (3 bytes in best case) approach // !!(i32.trunc_sat_f32_u(f32.ceil(f32.abs(x)))) return module.unary(UnaryOp.EqzI32, module.unary(UnaryOp.EqzI32, @@ -10299,7 +10299,7 @@ export class Compiler extends DiagnosticEmitter { this.options.shrinkLevelHint > 1 && this.options.hasFeature(Feature.NONTRAPPING_F2I) ) { - // Use more compact but slower 5-byte approach + // Use more compact but slower 5-byte (3 bytes in best case) approach // !!(i32.trunc_sat_f64_u(f64.ceil(f64.abs(x)))) return module.unary(UnaryOp.EqzI32, module.unary(UnaryOp.EqzI32, From d905bf9e982ada6b8087232c845d1ab0e47097f5 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 4 Dec 2021 16:02:34 +0200 Subject: [PATCH 6/6] also simplify TypedArray's set --- std/assembly/typedarray.ts | 66 +- tests/compiler/std/typedarray.optimized.wat | 2608 +++++------ tests/compiler/std/typedarray.ts | 18 +- tests/compiler/std/typedarray.untouched.wat | 4495 ++++++++++--------- 4 files changed, 3541 insertions(+), 3646 deletions(-) diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index c6634307be..542091d4bd 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -1894,7 +1894,10 @@ function WRAP( // @ts-ignore: decorator @inline -function SET( +function SET< + TArray extends ArrayBufferView, T extends number, + UArray extends ArrayBufferView, U extends number +>( target: TArray, source: UArray, offset: i32 = 0 @@ -1906,29 +1909,41 @@ function SET target.length) throw new RangeError(E_INDEXOUTOFRANGE); + + let slen = source.length; + let tlen = target.length; + + if (slen + offset > tlen) throw new RangeError(E_INDEXOUTOFRANGE); + + let targetDataStart = target.dataStart + (offset << alignof()); + let sourceDataStart = source.dataStart; // if the types align and match, use memory.copy() instead of manual loop - if (isInteger() == isInteger() && alignof() == alignof() && - !(target instanceof Uint8ClampedArray && isSigned())) { - memory.copy( - target.dataStart + (offset << alignof()), - source.dataStart, - source.byteLength - ); + if ( + isInteger() == isInteger() && + alignof() == alignof() && + !(target instanceof Uint8ClampedArray && isSigned()) + ) { + memory.copy(targetDataStart, sourceDataStart, source.byteLength); } else { - let targetDataStart = target.dataStart + (offset << alignof()); - let sourceDataStart = source.dataStart; - let count = source.length; - for (let i = 0; i < count; i++) { + for (let i = 0; i < slen; i++) { // if TArray is Uint8ClampedArray, then values must be clamped if (target instanceof Uint8ClampedArray) { if (isFloat()) { let value = load(sourceDataStart + (i << alignof())); - store( - targetDataStart + (i << alignof()), - isFinite(value) ? max(0, min(255, value)) : 0 - ); + if (!ASC_FEATURE_NONTRAPPING_F2I) { + store( + targetDataStart + (i << alignof()), + // @ts-ignore: cast + isFinite(value) ? max(0, min(255, value)) : 0 + ); + } else { + store( + targetDataStart + (i << alignof()), + // @ts-ignore: cast + max(0, min(255, value)) + ); + } } else { let value = load(sourceDataStart + (i << alignof())); if (!isSigned()) { @@ -1954,12 +1969,25 @@ function SET() && !isFloat()) { let value = load(sourceDataStart + (i << alignof())); - // @ts-ignore: cast to T is valid for numeric types here - store(targetDataStart + (i << alignof()), isFinite(value) ? value : 0); + + if (!ASC_FEATURE_NONTRAPPING_F2I) { + store( + targetDataStart + (i << alignof()), + // @ts-ignore: cast + isFinite(value) ? value : 0 + ); + } else { + store( + targetDataStart + (i << alignof()), + // @ts-ignore: cast + value + ); + } } else if (isFloat() && !isFloat()) { // @ts-ignore: In this case the conversion is required store(targetDataStart + (i << alignof()), load(sourceDataStart + (i << alignof()))); } else { + // @ts-ignore: cast store(targetDataStart + (i << alignof()), load(sourceDataStart + (i << alignof()))); } } diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index d7b04c938e..d8fbc2ec7a 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -478,7 +478,7 @@ (data (i32.const 11080) "=\00\00\00\10\00\00\000+\00\000+\00\00\0c\00\00\00\03") (data (i32.const 11116) ",") (data (i32.const 11132) "\18") - (data (i32.const 11142) "\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff") + (data (i32.const 11142) "\f8\7f\00\00\00\00\00\00\f8\7f") (data (i32.const 11164) ",") (data (i32.const 11176) ">\00\00\00\10\00\00\00\80+\00\00\80+\00\00\18\00\00\00\03") (data (i32.const 11212) "\1c") @@ -622,7 +622,7 @@ (data (i32.const 15164) "P") (data (i32.const 15174) "Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0") (data (i32.const 15260) "\1c") - (data (i32.const 15276) "\n\00\00\00\00\ff\00\00\00d\n\ff\ff") + (data (i32.const 15276) "\n\00\00\00\00\ff\00\ff\00d\n\ff\ff") (data (i32.const 15292) "\1c") (data (i32.const 15308) "\n\00\00\00\01\ffd\ff\00\00d\n\ff") (data (i32.const 15324) "\1c") @@ -27615,33 +27615,31 @@ (local $3 i32) i32.const 11020 i32.load + local.tee $2 local.get $0 i32.load offset=8 i32.gt_s if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 - local.set $2 + local.set $0 i32.const 11012 i32.load local.set $3 - i32.const 11020 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if + local.get $0 local.get $1 - local.get $2 i32.add local.get $1 i32.const 2 @@ -27667,14 +27665,15 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $3 i32.const 6 i32.add i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27685,16 +27684,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $0 local.get $2 @@ -27702,7 +27696,7 @@ local.get $2 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add i64.load i64.store8 @@ -27723,8 +27717,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27745,14 +27739,15 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $3 i32.const 4 i32.add i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27763,16 +27758,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $0 local.get $2 @@ -27780,7 +27770,7 @@ local.get $2 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s i32.store8 @@ -27803,8 +27793,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27820,15 +27810,15 @@ ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) local.get $2 i32.const 0 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable @@ -27840,13 +27830,14 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 i32.add i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27854,40 +27845,35 @@ local.get $0 i32.load offset=4 i32.add - local.set $2 + local.set $0 local.get $1 i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 + local.get $0 local.get $3 i32.add local.get $3 i32.const 3 i32.shl - local.get $5 + local.get $1 i32.add i64.load - local.tee $4 + local.tee $5 i32.wrap_i64 - local.tee $0 + local.tee $2 i32.const 31 i32.shr_s i32.const -1 i32.xor i64.extend_i32_s - local.get $4 + local.get $5 i32.const 255 - local.get $0 + local.get $2 i32.sub i32.const 31 i32.shr_s @@ -27912,7 +27898,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable @@ -27924,13 +27910,14 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 i32.add i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -27938,37 +27925,32 @@ local.get $0 i32.load offset=4 i32.add - local.set $2 + local.set $0 local.get $1 i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 + local.get $0 local.get $3 i32.add local.get $3 i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add i32.load16_s - local.tee $0 + local.tee $2 i32.const 255 - local.get $0 + local.get $2 i32.sub i32.const 31 i32.shr_s i32.or - local.get $0 + local.get $2 i32.const 31 i32.shr_s i32.const -1 @@ -27989,6 +27971,7 @@ (local $3 i32) i32.const 11020 i32.load + local.tee $2 local.get $0 i32.load offset=8 i32.const 1 @@ -27997,29 +27980,26 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 - local.set $2 + local.set $0 i32.const 11012 i32.load local.set $3 - i32.const 11020 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 i32.const 2 @@ -28043,6 +28023,7 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $3 i32.const 6 i32.add local.get $0 @@ -28053,8 +28034,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28065,16 +28046,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 1 @@ -28084,7 +28060,7 @@ local.get $2 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add i64.load i64.store16 @@ -28101,6 +28077,7 @@ (local $3 i32) local.get $1 i32.load offset=8 + local.tee $3 local.get $0 i32.load offset=8 i32.const 1 @@ -28109,8 +28086,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28119,22 +28096,19 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 1 i32.shl local.get $0 i32.add + local.get $1 local.get $2 - local.get $3 i32.add i32.load8_u i32.store16 @@ -28161,8 +28135,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28182,6 +28156,7 @@ (local $3 i32) i32.const 11276 i32.load + local.tee $2 i32.const 7 i32.add local.get $0 @@ -28192,8 +28167,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28201,22 +28176,19 @@ i32.load offset=4 i32.const 14 i32.add - local.set $2 + local.set $0 i32.const 11268 i32.load local.set $3 - i32.const 11276 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 local.get $3 @@ -28238,7 +28210,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable @@ -28255,8 +28227,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28279,6 +28251,7 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $3 i32.const 6 i32.add local.get $0 @@ -28289,8 +28262,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28301,16 +28274,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 2 @@ -28320,7 +28288,7 @@ local.get $2 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add i64.load i64.store32 @@ -28337,6 +28305,7 @@ (local $3 i32) local.get $1 i32.load offset=8 + local.tee $3 local.get $0 i32.load offset=8 i32.const 2 @@ -28345,8 +28314,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28355,22 +28324,19 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.get $1 local.get $2 - local.get $3 i32.add i32.load8_u i32.store @@ -28389,6 +28355,7 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $3 i32.const 4 i32.add local.get $0 @@ -28399,8 +28366,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28411,16 +28378,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 2 @@ -28430,7 +28392,7 @@ local.get $2 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s i32.store @@ -28448,6 +28410,7 @@ (local $3 i32) i32.const 11276 i32.load + local.tee $2 i32.const 7 i32.add local.get $0 @@ -28458,8 +28421,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28467,22 +28430,19 @@ i32.load offset=4 i32.const 28 i32.add - local.set $2 + local.set $0 i32.const 11268 i32.load local.set $3 - i32.const 11276 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 local.get $3 @@ -28503,6 +28463,7 @@ (local $3 i32) i32.const 11020 i32.load + local.tee $2 local.get $0 i32.load offset=8 i32.const 3 @@ -28511,29 +28472,26 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 - local.set $2 + local.set $0 i32.const 11012 i32.load local.set $3 - i32.const 11020 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 i32.const 2 @@ -28565,8 +28523,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28585,6 +28543,7 @@ (local $3 i32) local.get $1 i32.load offset=8 + local.tee $3 local.get $0 i32.load offset=8 i32.const 3 @@ -28593,8 +28552,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28603,22 +28562,19 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 3 i32.shl local.get $0 i32.add + local.get $1 local.get $2 - local.get $3 i32.add i64.load8_u i64.store @@ -28637,6 +28593,7 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $3 i32.const 4 i32.add local.get $0 @@ -28647,8 +28604,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28659,16 +28616,11 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $1 loop $for-loop|0 - local.get $1 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 3 @@ -28678,7 +28630,7 @@ local.get $2 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i64.load16_s i64.store @@ -28696,6 +28648,7 @@ (local $3 i32) i32.const 11276 i32.load + local.tee $2 i32.const 7 i32.add local.get $0 @@ -28706,8 +28659,8 @@ if i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -28715,22 +28668,19 @@ i32.load offset=4 i32.const 56 i32.add - local.set $2 + local.set $0 i32.const 11268 i32.load local.set $3 - i32.const 11276 - i32.load - local.set $0 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 local.get $3 @@ -40401,14 +40351,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40437,38 +40385,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -40492,71 +40440,61 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11312 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 block $folding-inner1 - local.get $4 + local.get $2 i32.load offset=8 i32.const 11100 i32.load + local.tee $6 i32.const 3 i32.add i32.lt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 3 i32.add - local.set $8 + local.set $3 i32.const 11092 i32.load - local.set $5 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $6 i32.lt_s if local.get $0 - local.get $8 + local.get $3 i32.add local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $7 i32.add f32.load - local.tee $2 i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store8 local.get $0 i32.const 1 @@ -40574,11 +40512,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 @@ -40589,40 +40527,38 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $4 + local.get $2 i32.load offset=8 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 2 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load local.set $6 - i32.const 11196 - i32.load - local.set $8 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 @@ -40630,21 +40566,13 @@ local.get $6 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store8 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -40656,19 +40584,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -40679,7 +40607,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer @@ -40690,8 +40618,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -40787,14 +40715,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40823,38 +40749,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -40878,71 +40804,61 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11520 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 block $folding-inner1 - local.get $4 + local.get $2 i32.load offset=8 i32.const 11100 i32.load + local.tee $6 i32.const 3 i32.add i32.lt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 3 i32.add - local.set $8 + local.set $3 i32.const 11092 i32.load - local.set $5 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $6 i32.lt_s if local.get $0 - local.get $8 + local.get $3 i32.add local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $7 i32.add f32.load - local.tee $2 i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store8 local.get $0 i32.const 1 @@ -40960,11 +40876,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 @@ -40975,40 +40891,38 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $4 + local.get $2 i32.load offset=8 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 2 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load local.set $6 - i32.const 11196 - i32.load - local.set $8 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 @@ -41016,21 +40930,13 @@ local.get $6 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store8 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -41042,19 +40948,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -41065,7 +40971,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer @@ -41076,8 +40982,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -41172,16 +41078,14 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) - (local $1 f32) - (local $2 f64) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41198,116 +41102,114 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i64.const 0 i64.store offset=8 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $3 i32.store offset=4 - local.get $5 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $4 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 + local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 block $folding-inner1 - local.get $7 - i32.load offset=8 i32.const 11020 i32.load - i32.lt_s + local.tee $6 + local.get $5 + i32.load offset=8 + i32.gt_s br_if $folding-inner1 - local.get $7 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 i32.const 11012 i32.load - local.set $9 - i32.const 11020 - i32.load - local.set $10 + local.set $8 loop $for-loop|0 local.get $0 - local.get $10 + local.get $6 i32.lt_s if local.get $0 - local.get $8 + local.get $7 i32.add i32.const 255 local.get $0 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add i32.load - local.tee $3 + local.tee $1 i32.sub i32.const 31 i32.shr_s - local.get $3 + local.get $1 i32.or - local.get $3 + local.get $1 i32.const 31 i32.shr_s i32.const -1 @@ -41330,66 +41232,56 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $7 + local.get $5 i32.load offset=8 i32.const 11100 i32.load + local.tee $1 i32.const 3 i32.add i32.lt_s br_if $folding-inner1 - local.get $7 + local.get $5 i32.load offset=4 i32.const 3 i32.add - local.set $3 + local.set $6 i32.const 11092 i32.load - local.set $8 - i32.const 11100 - i32.load - local.set $9 + local.set $7 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $9 + local.get $1 i32.lt_s if local.get $0 - local.get $3 + local.get $6 i32.add f32.const 0 f32.const 255 local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add f32.load - local.tee $1 f32.min f32.max i32.trunc_sat_f32_u - i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select i32.store8 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -41401,11 +41293,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 - local.get $4 + local.get $5 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 @@ -41417,66 +41309,56 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $7 + local.get $5 i32.load offset=8 i32.const 11196 i32.load + local.tee $1 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 - local.get $7 + local.get $5 i32.load offset=4 i32.const 2 i32.add - local.set $3 + local.set $2 i32.const 11188 i32.load - local.set $4 - i32.const 11196 - i32.load - local.set $8 + local.set $6 i32.const 0 local.set $0 - loop $for-loop|011 + loop $for-loop|08 local.get $0 - local.get $8 + local.get $1 i32.lt_s if local.get $0 - local.get $3 + local.get $2 i32.add f64.const 0 f64.const 255 local.get $0 i32.const 3 i32.shl - local.get $4 + local.get $6 i32.add f64.load - local.tee $2 f64.min f64.max i32.trunc_sat_f64_u - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select i32.store8 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|011 + br $for-loop|08 end end i32.const 10 @@ -41488,60 +41370,58 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 local.get $5 + local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $7 - local.get $6 + local.get $5 + local.get $4 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $7 + local.get $5 i32.load offset=8 i32.const 11276 i32.load + local.tee $1 i32.const 7 i32.add i32.lt_s br_if $folding-inner1 - local.get $7 + local.get $5 i32.load offset=4 i32.const 7 i32.add - local.set $3 + local.set $2 i32.const 11268 i32.load - local.set $4 - i32.const 11276 - i32.load - local.set $5 + local.set $3 i32.const 0 local.set $0 - loop $for-loop|017 + loop $for-loop|013 local.get $0 - local.get $5 + local.get $1 i32.lt_s if local.get $0 - local.get $3 + local.get $2 i32.add i32.const 255 local.get $0 - local.get $4 + local.get $3 i32.add i32.load8_s - local.tee $6 + local.tee $4 i32.sub i32.const 31 i32.shr_s - local.get $6 + local.get $4 i32.or - local.get $6 + local.get $4 i32.const 31 i32.shr_s i32.const -1 @@ -41552,7 +41432,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|017 + br $for-loop|013 end end i32.const 10 @@ -41564,7 +41444,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -41575,8 +41455,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -41677,14 +41557,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41713,38 +41591,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -41768,24 +41646,24 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 i32.const 64 i32.const 11952 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -41793,50 +41671,40 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $6 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 6 i32.add - local.set $8 + local.set $3 i32.const 11092 i32.load - local.set $5 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $6 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $8 + local.get $3 i32.add local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $7 i32.add f32.load - local.tee $2 i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store16 local.get $0 i32.const 1 @@ -41854,11 +41722,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 @@ -41869,7 +41737,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -41877,36 +41745,34 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 4 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load local.set $6 - i32.const 11196 - i32.load - local.set $8 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 @@ -41914,21 +41780,13 @@ local.get $6 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store16 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -41940,19 +41798,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -41963,7 +41821,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -41974,8 +41832,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -42076,14 +41934,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42112,38 +41968,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42167,24 +42023,24 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12240 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42192,50 +42048,40 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $6 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 6 i32.add - local.set $8 + local.set $3 i32.const 11092 i32.load - local.set $5 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $6 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $8 + local.get $3 i32.add local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $7 i32.add f32.load - local.tee $2 i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store16 local.get $0 i32.const 1 @@ -42253,11 +42099,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 @@ -42268,7 +42114,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -42276,36 +42122,34 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 4 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load local.set $6 - i32.const 11196 - i32.load - local.set $8 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 @@ -42313,21 +42157,13 @@ local.get $6 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store16 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -42339,19 +42175,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -42362,7 +42198,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -42373,8 +42209,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -42475,15 +42311,13 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42512,38 +42346,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42567,12 +42401,12 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -42581,12 +42415,12 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42594,50 +42428,39 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $3 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 12 i32.add - local.set $5 + local.set $7 i32.const 11092 i32.load - local.set $9 - i32.const 11100 - i32.load - local.set $10 + local.set $8 loop $for-loop|0 local.get $0 - local.get $10 + local.get $3 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.tee $6 - local.get $9 + local.tee $4 + local.get $7 i32.add - f32.load - local.set $2 - local.get $5 - local.get $6 + local.get $4 + local.get $8 i32.add - local.get $2 + f32.load i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store local.get $0 i32.const 1 @@ -42655,11 +42478,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 @@ -42670,7 +42493,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer @@ -42678,58 +42501,48 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 8 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load - local.set $6 - i32.const 11196 - i32.load - local.set $7 + local.set $5 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -42741,19 +42554,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $8 + local.get $2 + local.get $6 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 i32.const 2 @@ -42764,7 +42577,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer @@ -42775,8 +42588,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -42877,15 +42690,13 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42914,38 +42725,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42969,12 +42780,12 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -42983,12 +42794,12 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=16 - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42996,50 +42807,39 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $3 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 12 i32.add - local.set $5 + local.set $7 i32.const 11092 i32.load - local.set $9 - i32.const 11100 - i32.load - local.set $10 + local.set $8 loop $for-loop|0 local.get $0 - local.get $10 + local.get $3 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.tee $6 - local.get $9 + local.tee $4 + local.get $7 i32.add - f32.load - local.set $2 - local.get $5 - local.get $6 + local.get $4 + local.get $8 i32.add - local.get $2 + f32.load i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select i32.store local.get $0 i32.const 1 @@ -43057,11 +42857,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 @@ -43072,7 +42872,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer @@ -43080,58 +42880,48 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 8 i32.add - local.set $5 + local.set $4 i32.const 11188 i32.load - local.set $6 - i32.const 11196 - i32.load - local.set $7 + local.set $5 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $3 i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select i32.store local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -43143,19 +42933,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - local.get $8 + local.get $2 + local.get $6 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 i32.const 2 @@ -43166,7 +42956,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer @@ -43177,8 +42967,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -43280,14 +43070,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (local $0 i32) (local $1 i32) - (local $2 f64) - (local $3 f32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43316,38 +43104,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43371,24 +43159,24 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13264 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43396,50 +43184,40 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $5 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 24 i32.add - local.set $7 + local.set $6 i32.const 11092 i32.load - local.set $8 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $5 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $7 + local.get $6 i32.add local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add f32.load - local.tee $3 i64.trunc_sat_f32_s - i64.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select i64.store local.get $0 i32.const 1 @@ -43457,11 +43235,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 @@ -43472,7 +43250,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer @@ -43480,58 +43258,47 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 16 i32.add local.set $5 i32.const 11188 i32.load - local.set $7 - i32.const 11196 - i32.load - local.set $8 + local.set $6 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.tee $9 + local.tee $7 + local.get $5 + i32.add + local.get $6 local.get $7 i32.add f64.load - local.set $2 - local.get $5 - local.get $9 - i32.add - local.get $2 i64.trunc_sat_f64_s - i64.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select i64.store local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -43543,19 +43310,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 @@ -43566,7 +43333,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer @@ -43577,8 +43344,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -43680,14 +43447,12 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (local $0 i32) (local $1 i32) - (local $2 f64) - (local $3 f32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43716,38 +43481,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43771,24 +43536,24 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 68 i32.const 13872 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $4 - local.get $7 + local.get $2 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43796,50 +43561,40 @@ block $folding-inner1 i32.const 11100 i32.load + local.tee $5 i32.const 3 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 24 i32.add - local.set $7 + local.set $6 i32.const 11092 i32.load - local.set $8 - i32.const 11100 - i32.load - local.set $9 + local.set $7 loop $for-loop|0 local.get $0 - local.get $9 + local.get $5 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $7 + local.get $6 i32.add local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add f32.load - local.tee $3 i64.trunc_sat_f32_u - i64.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select i64.store local.get $0 i32.const 1 @@ -43857,11 +43612,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 @@ -43872,7 +43627,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer @@ -43880,58 +43635,47 @@ i32.store offset=16 i32.const 11196 i32.load + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner1 - local.get $4 + local.get $2 i32.load offset=4 i32.const 16 i32.add local.set $5 i32.const 11188 i32.load - local.set $7 - i32.const 11196 - i32.load - local.set $8 + local.set $6 i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|03 local.get $0 - local.get $8 + local.get $3 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.tee $9 + local.tee $7 + local.get $5 + i32.add + local.get $6 local.get $7 i32.add f64.load - local.set $2 - local.get $5 - local.get $9 - i32.add - local.get $2 i64.trunc_sat_f64_u - i64.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select i64.store local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|03 end end i32.const 10 @@ -43943,19 +43687,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $2 local.get $4 - local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 + local.get $2 local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 @@ -43966,7 +43710,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer @@ -43977,8 +43721,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -44180,6 +43924,7 @@ block $folding-inner1 i32.const 11020 i32.load + local.tee $6 local.get $8 i32.load offset=8 i32.const 2 @@ -44188,26 +43933,23 @@ br_if $folding-inner1 local.get $8 i32.load offset=4 - local.set $6 - i32.const 11012 - i32.load local.set $9 - i32.const 11020 + i32.const 11012 i32.load local.set $10 loop $for-loop|0 local.get $2 - local.get $10 + local.get $6 i32.lt_s if local.get $2 i32.const 2 i32.shl local.tee $7 - local.get $6 + local.get $9 i32.add local.get $7 - local.get $9 + local.get $10 i32.add i32.load f32.convert_i32_s @@ -44254,6 +43996,7 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $2 i32.const 6 i32.add local.get $8 @@ -44266,29 +44009,24 @@ i32.load offset=4 i32.const 24 i32.add - local.set $2 - local.get $3 - i32.load offset=4 local.set $6 local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u + i32.load offset=4 local.set $3 loop $for-loop|02 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add i64.load f32.convert_i64_s @@ -44314,6 +44052,7 @@ call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $4 i32.load offset=8 + local.tee $0 local.get $8 i32.load offset=8 i32.const 2 @@ -44322,25 +44061,22 @@ br_if $folding-inner1 local.get $8 i32.load offset=4 - local.set $0 - local.get $4 - i32.load offset=4 local.set $2 local.get $4 - i32.load offset=8 + i32.load offset=4 local.set $3 loop $for-loop|06 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load8_u f32.convert_i32_u @@ -44356,6 +44092,7 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $0 i32.const 4 i32.add local.get $8 @@ -44368,31 +44105,26 @@ i32.load offset=4 i32.const 16 i32.add - local.set $0 - local.get $5 - i32.load offset=4 local.set $2 local.get $5 - i32.load offset=8 - i32.const 1 - i32.shr_u + i32.load offset=4 local.set $3 i32.const 0 local.set $1 loop $for-loop|010 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_s f32.convert_i32_s @@ -44409,6 +44141,7 @@ i32.store offset=16 i32.const 11276 i32.load + local.tee $0 i32.const 7 i32.add local.get $8 @@ -44421,27 +44154,24 @@ i32.load offset=4 i32.const 28 i32.add - local.set $0 - i32.const 11268 - i32.load local.set $2 - i32.const 11276 + i32.const 11268 i32.load local.set $3 i32.const 0 local.set $1 - loop $for-loop|016 + loop $for-loop|015 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load8_s f32.convert_i32_s @@ -44450,7 +44180,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|016 + br $for-loop|015 end end i32.const 10 @@ -44473,8 +44203,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -44672,6 +44402,7 @@ block $folding-inner1 i32.const 11020 i32.load + local.tee $6 local.get $5 i32.load offset=8 i32.const 3 @@ -44680,35 +44411,32 @@ br_if $folding-inner1 local.get $5 i32.load offset=4 - local.set $6 - i32.const 11012 - i32.load local.set $7 - i32.const 11020 + i32.const 11012 i32.load local.set $8 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $0 + local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $8 i32.add i32.load f64.convert_i32_s f64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -44717,18 +44445,19 @@ i32.const 62 i32.const 14784 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 local.get $5 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 i32.const 11100 i32.load + local.tee $6 i32.const 3 i32.add local.get $5 @@ -44741,38 +44470,35 @@ i32.load offset=4 i32.const 24 i32.add - local.set $6 - i32.const 11092 - i32.load local.set $7 - i32.const 11100 + i32.const 11092 i32.load local.set $8 i32.const 0 - local.set $1 - loop $for-loop|05 - local.get $1 - local.get $8 + local.set $0 + loop $for-loop|03 + local.get $0 + local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $8 i32.add f32.load f64.promote_f32 f64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|05 + local.set $0 + br $for-loop|03 end end i32.const 10 @@ -44780,17 +44506,18 @@ i32.const 62 i32.const 14944 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 local.get $5 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $0 i32.const 6 i32.add local.get $5 @@ -44806,27 +44533,20 @@ local.set $6 local.get $2 i32.load offset=4 - local.set $7 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $2 - i32.const 0 - local.set $1 - loop $for-loop|09 + loop $for-loop|07 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if local.get $1 i32.const 3 i32.shl - local.tee $8 + local.tee $7 local.get $6 i32.add + local.get $2 local.get $7 - local.get $8 i32.add i64.load f64.convert_i64_s @@ -44835,7 +44555,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|09 + br $for-loop|07 end end i32.const 10 @@ -44843,15 +44563,16 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 local.get $5 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $3 i32.load offset=8 + local.tee $1 local.get $5 i32.load offset=8 i32.const 3 @@ -44860,25 +44581,24 @@ br_if $folding-inner1 local.get $5 i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=4 local.set $2 local.get $3 - i32.load offset=8 + i32.load offset=4 local.set $3 - loop $for-loop|013 + i32.const 0 + local.set $0 + loop $for-loop|011 local.get $0 - local.get $3 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_u f64.convert_i32_u @@ -44887,13 +44607,14 @@ i32.const 1 i32.add local.set $0 - br $for-loop|013 + br $for-loop|011 end end local.get $4 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $1 i32.const 4 i32.add local.get $5 @@ -44906,31 +44627,26 @@ i32.load offset=4 i32.const 32 i32.add - local.set $1 - local.get $4 - i32.load offset=4 local.set $2 local.get $4 - i32.load offset=8 - i32.const 1 - i32.shr_u + i32.load offset=4 local.set $3 i32.const 0 local.set $0 - loop $for-loop|017 + loop $for-loop|015 local.get $0 - local.get $3 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_s f64.convert_i32_s @@ -44939,7 +44655,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|017 + br $for-loop|015 end end global.get $~lib/memory/__stack_pointer @@ -44947,6 +44663,7 @@ i32.store offset=16 i32.const 11276 i32.load + local.tee $1 i32.const 7 i32.add local.get $5 @@ -44959,27 +44676,24 @@ i32.load offset=4 i32.const 56 i32.add - local.set $1 - i32.const 11268 - i32.load local.set $2 - i32.const 11276 + i32.const 11268 i32.load local.set $3 i32.const 0 local.set $0 - loop $for-loop|023 + loop $for-loop|020 local.get $0 - local.get $3 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_s f64.convert_i32_s @@ -44988,7 +44702,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|023 + br $for-loop|020 end end i32.const 10 @@ -45011,8 +44725,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable ) @@ -45022,8 +44736,8 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 i32) + (local $5 i32) + (local $6 f32) (local $7 f64) (local $8 i32) (local $9 i32) @@ -47147,11 +46861,11 @@ local.set $1 loop $for-loop|010 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s local.set $0 @@ -47159,16 +46873,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|010 end end @@ -47220,17 +46934,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0511 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -47238,16 +46952,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0511 end end @@ -47299,17 +47013,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|013 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -47317,16 +47031,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|013 end end @@ -47378,7 +47092,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -47386,10 +47100,10 @@ local.set $1 loop $for-loop|017 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -47400,16 +47114,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|017 end end @@ -47461,7 +47175,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -47469,10 +47183,10 @@ local.set $1 loop $for-loop|022 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -47483,16 +47197,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|022 end end @@ -47544,7 +47258,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -47552,10 +47266,10 @@ local.set $1 loop $for-loop|027 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -47566,16 +47280,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|027 end end @@ -47625,7 +47339,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -47633,10 +47347,10 @@ local.set $1 loop $for-loop|032 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -47647,16 +47361,16 @@ global.set $~argumentsLength local.get $8 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $8 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|032 end end @@ -47704,7 +47418,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -47712,10 +47426,10 @@ local.set $0 loop $for-loop|037 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -47726,16 +47440,16 @@ global.set $~argumentsLength local.get $14 local.get $10 - local.get $6 + local.get $5 local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $14 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|037 end end @@ -47785,7 +47499,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -47793,10 +47507,10 @@ local.set $0 loop $for-loop|042 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -47807,16 +47521,16 @@ global.set $~argumentsLength local.get $14 local.get $10 - local.get $6 + local.get $5 local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $14 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|042 end end @@ -47864,7 +47578,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 2 @@ -47872,30 +47586,30 @@ local.set $0 loop $for-loop|047 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $5 local.get $6 + local.get $5 local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $15 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|047 end end @@ -47943,7 +47657,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -47951,10 +47665,10 @@ local.set $0 loop $for-loop|052 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -47965,16 +47679,16 @@ global.set $~argumentsLength local.get $16 local.get $7 - local.get $6 + local.get $5 local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $16 - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|052 end end @@ -48580,7 +48294,7 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -48601,14 +48315,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -48616,7 +48330,7 @@ br $for-loop|059 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48659,7 +48373,7 @@ i32.const 3280 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -48680,14 +48394,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -48695,7 +48409,7 @@ br $for-loop|064 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48738,7 +48452,7 @@ i32.const 3312 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -48759,14 +48473,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -48774,7 +48488,7 @@ br $for-loop|071 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48817,7 +48531,7 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -48842,14 +48556,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -48857,7 +48571,7 @@ br $for-loop|076 end end - local.get $6 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -48900,7 +48614,7 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -48925,14 +48639,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -48940,7 +48654,7 @@ br $for-loop|081 end end - local.get $6 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -48983,7 +48697,7 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -49008,14 +48722,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -49023,7 +48737,7 @@ br $for-loop|086 end end - local.get $6 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -49064,7 +48778,7 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -49089,14 +48803,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $0 local.get $12 local.get $2 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 + local.set $5 local.get $12 i32.const 1 i32.sub @@ -49104,7 +48818,7 @@ br $for-loop|091 end end - local.get $6 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -49329,11 +49043,11 @@ local.get $0 i32.add f32.load - local.set $5 + local.set $6 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $5 + local.get $6 local.get $12 local.get $1 i32.const 3536 @@ -49921,7 +49635,7 @@ local.set $8 local.get $11 i32.load offset=4 - local.set $6 + local.set $5 local.get $0 i32.const 12 i32.const 6 @@ -49946,7 +49660,7 @@ i32.const 1 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load16_s local.set $0 @@ -50072,7 +49786,7 @@ local.set $8 local.get $11 i32.load offset=4 - local.set $6 + local.set $5 local.get $0 i32.const 12 i32.const 7 @@ -50097,7 +49811,7 @@ i32.const 1 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load16_u local.set $0 @@ -50223,7 +49937,7 @@ local.set $8 local.get $11 i32.load offset=4 - local.set $6 + local.set $5 local.get $0 i32.const 12 i32.const 8 @@ -50248,7 +49962,7 @@ i32.const 2 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load local.set $0 @@ -50374,7 +50088,7 @@ local.set $8 local.get $11 i32.load offset=4 - local.set $6 + local.set $5 local.get $0 i32.const 12 i32.const 9 @@ -50399,7 +50113,7 @@ i32.const 2 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load local.set $0 @@ -50522,7 +50236,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 + local.set $5 local.get $9 i32.load offset=4 local.set $4 @@ -50533,7 +50247,7 @@ local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl local.tee $2 @@ -50542,7 +50256,7 @@ local.tee $1 i32.store offset=4 loop $for-loop|024 - local.get $6 + local.get $5 local.get $11 i32.gt_s if @@ -50673,7 +50387,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 + local.set $5 local.get $9 i32.load offset=4 local.set $4 @@ -50684,7 +50398,7 @@ local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl local.tee $2 @@ -50693,7 +50407,7 @@ local.tee $1 i32.store offset=4 loop $for-loop|028 - local.get $6 + local.get $5 local.get $11 i32.gt_s if @@ -50824,7 +50538,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 + local.set $5 local.get $9 i32.load offset=4 local.set $4 @@ -50835,7 +50549,7 @@ local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl local.tee $2 @@ -50844,7 +50558,7 @@ local.tee $1 i32.store offset=4 loop $for-loop|031 - local.get $6 + local.get $5 local.get $11 i32.gt_s if @@ -50855,13 +50569,13 @@ local.get $4 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $0 local.get $1 i32.add - local.get $5 + local.get $6 local.get $11 local.get $9 i32.const 3888 @@ -50975,7 +50689,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 + local.set $5 local.get $9 i32.load offset=4 local.set $4 @@ -50986,7 +50700,7 @@ local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl local.tee $2 @@ -50995,7 +50709,7 @@ local.tee $1 i32.store offset=4 loop $for-loop|034 - local.get $6 + local.get $5 local.get $11 i32.gt_s if @@ -51083,7 +50797,7 @@ call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51125,11 +50839,11 @@ local.set $1 loop $for-loop|012 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s local.set $0 @@ -51137,17 +50851,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|012 end end @@ -51163,17 +50877,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0436 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s local.set $0 @@ -51181,17 +50895,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0436 end end @@ -51203,7 +50917,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51245,11 +50959,11 @@ local.set $1 loop $for-loop|01437 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -51257,17 +50971,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|01437 end end @@ -51283,17 +50997,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0415 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -51301,17 +51015,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0415 end end @@ -51323,7 +51037,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51365,11 +51079,11 @@ local.set $1 loop $for-loop|01838 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -51377,17 +51091,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|01838 end end @@ -51403,17 +51117,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0420 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -51421,17 +51135,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0420 end end @@ -51443,7 +51157,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51487,10 +51201,10 @@ local.set $1 loop $for-loop|02139 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -51501,17 +51215,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|02139 end end @@ -51527,7 +51241,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -51535,10 +51249,10 @@ local.set $1 loop $for-loop|0422 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -51549,17 +51263,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0422 end end @@ -51571,7 +51285,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51615,10 +51329,10 @@ local.set $1 loop $for-loop|023 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -51629,17 +51343,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|023 end end @@ -51655,7 +51369,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -51663,10 +51377,10 @@ local.set $1 loop $for-loop|0424 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -51677,17 +51391,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0424 end end @@ -51699,7 +51413,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51743,10 +51457,10 @@ local.set $1 loop $for-loop|025 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -51757,17 +51471,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|025 end end @@ -51783,7 +51497,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -51791,10 +51505,10 @@ local.set $1 loop $for-loop|0426 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -51805,17 +51519,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0426 end end @@ -51827,7 +51541,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51871,10 +51585,10 @@ local.set $1 loop $for-loop|02840 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -51885,17 +51599,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|02840 end end @@ -51911,7 +51625,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -51919,10 +51633,10 @@ local.set $1 loop $for-loop|0429 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -51933,17 +51647,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0429 end end @@ -52264,11 +51978,11 @@ local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 + local.get $6 local.get $8 local.get $2 i32.const 4880 @@ -52312,11 +52026,11 @@ local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 + local.get $6 local.get $8 local.get $2 i32.const 4912 @@ -53675,11 +53389,11 @@ local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 local.get $0 local.get $3 i32.const 5584 @@ -53724,11 +53438,11 @@ local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 local.get $0 local.get $3 i32.const 5616 @@ -55092,11 +54806,11 @@ local.get $0 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $6 local.get $1 local.get $2 i32.const 6288 @@ -55141,11 +54855,11 @@ local.get $0 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $6 local.get $1 local.get $2 i32.const 6320 @@ -55301,7 +55015,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55343,11 +55057,11 @@ local.set $1 loop $for-loop|094 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s local.set $0 @@ -55355,7 +55069,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6416 i32.load @@ -55363,10 +55077,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|094 end end @@ -55382,17 +55096,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0495 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s local.set $0 @@ -55400,7 +55114,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6448 i32.load @@ -55408,10 +55122,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0495 end end @@ -55423,7 +55137,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55465,11 +55179,11 @@ local.set $1 loop $for-loop|097 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -55477,7 +55191,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6480 i32.load @@ -55485,10 +55199,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|097 end end @@ -55504,17 +55218,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0498 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -55522,7 +55236,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6512 i32.load @@ -55530,10 +55244,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0498 end end @@ -55545,7 +55259,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55587,11 +55301,11 @@ local.set $1 loop $for-loop|0100 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -55599,7 +55313,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6544 i32.load @@ -55607,10 +55321,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0100 end end @@ -55626,17 +55340,17 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|04102 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u local.set $0 @@ -55644,7 +55358,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6576 i32.load @@ -55652,10 +55366,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|04102 end end @@ -55667,7 +55381,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55711,10 +55425,10 @@ local.set $1 loop $for-loop|0103 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -55725,7 +55439,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6608 i32.load @@ -55733,10 +55447,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0103 end end @@ -55752,7 +55466,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -55760,10 +55474,10 @@ local.set $1 loop $for-loop|04104 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -55774,7 +55488,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6640 i32.load @@ -55782,10 +55496,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|04104 end end @@ -55797,7 +55511,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55841,10 +55555,10 @@ local.set $1 loop $for-loop|0105 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -55855,7 +55569,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6672 i32.load @@ -55863,10 +55577,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0105 end end @@ -55882,7 +55596,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -55890,10 +55604,10 @@ local.set $1 loop $for-loop|04106 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -55904,7 +55618,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6704 i32.load @@ -55912,10 +55626,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|04106 end end @@ -55927,7 +55641,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55971,10 +55685,10 @@ local.set $1 loop $for-loop|0107 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -55985,7 +55699,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6736 i32.load @@ -55993,10 +55707,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0107 end end @@ -56012,7 +55726,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -56020,10 +55734,10 @@ local.set $1 loop $for-loop|04108 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -56034,7 +55748,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6768 i32.load @@ -56042,10 +55756,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|04108 end end @@ -56057,7 +55771,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56101,10 +55815,10 @@ local.set $1 loop $for-loop|0109 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -56115,7 +55829,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6800 i32.load @@ -56123,10 +55837,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0109 end end @@ -56142,7 +55856,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -56150,10 +55864,10 @@ local.set $1 loop $for-loop|04110 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -56164,7 +55878,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $6 + local.get $5 local.get $3 i32.const 6832 i32.load @@ -56172,10 +55886,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|04110 end end @@ -56500,11 +56214,11 @@ local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 + local.get $6 local.get $8 local.get $2 i32.const 6992 @@ -56549,11 +56263,11 @@ local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 + local.get $6 local.get $8 local.get $2 i32.const 7024 @@ -56767,30 +56481,30 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0116120 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0116120 end end @@ -56866,30 +56580,30 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0121 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0121 end end @@ -56965,30 +56679,30 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 local.set $1 loop $for-loop|0128 local.get $1 - local.get $6 + local.get $5 i32.gt_s if local.get $2 - local.get $6 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0128 end end @@ -57061,7 +56775,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -57069,10 +56783,10 @@ local.set $1 loop $for-loop|0133 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -57080,15 +56794,15 @@ i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0133 end end @@ -57164,7 +56878,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 1 @@ -57172,10 +56886,10 @@ local.set $1 loop $for-loop|0138 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $2 @@ -57183,15 +56897,15 @@ i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0138 end end @@ -57261,7 +56975,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -57269,10 +56983,10 @@ local.set $1 loop $for-loop|0143 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -57280,15 +56994,15 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0143 end end @@ -57358,7 +57072,7 @@ i32.load offset=4 local.set $2 i32.const 0 - local.set $6 + local.set $5 local.get $3 i32.load offset=8 i32.const 2 @@ -57366,10 +57080,10 @@ local.set $1 loop $for-loop|0148 local.get $1 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $2 @@ -57377,15 +57091,15 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $3 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0148 end end @@ -57458,7 +57172,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -57466,10 +57180,10 @@ local.set $0 loop $for-loop|0153 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -57477,15 +57191,15 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $2 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0153 end end @@ -57558,7 +57272,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -57566,10 +57280,10 @@ local.set $0 loop $for-loop|0158 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -57577,15 +57291,15 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $2 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0158 end end @@ -57658,7 +57372,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 2 @@ -57666,10 +57380,10 @@ local.set $0 loop $for-loop|0163 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $1 @@ -57677,15 +57391,15 @@ f32.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $2 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0163 end end @@ -57758,7 +57472,7 @@ i32.load offset=4 local.set $1 i32.const 0 - local.set $6 + local.set $5 local.get $2 i32.load offset=8 i32.const 3 @@ -57766,10 +57480,10 @@ local.set $0 loop $for-loop|0168 local.get $0 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 i32.const 3 i32.shl local.get $1 @@ -57777,15 +57491,15 @@ f64.load i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $2 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0168 end end @@ -58508,7 +58222,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 i32.const 0 local.set $12 @@ -58523,7 +58237,7 @@ local.get $12 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 local.get $12 i32.const 7616 local.get $12 @@ -58619,20 +58333,20 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=12 i32.const 0 local.set $12 - local.get $6 + local.get $5 i32.load offset=4 local.set $4 - local.get $6 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -58683,27 +58397,27 @@ end end end - local.get $6 + local.get $5 i32.store offset=16 - local.get $6 + local.get $5 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $6 + local.get $5 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $6 + local.get $5 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $6 + local.get $5 i32.const 3 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -58744,7 +58458,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 i32.const 0 local.set $12 @@ -58759,7 +58473,7 @@ local.get $12 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $5 local.get $12 i32.const 7616 local.get $12 @@ -58855,19 +58569,19 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 8 call $~lib/typedarray/Uint32Array#subarray - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=12 i32.const 0 local.set $12 - local.get $6 + local.get $5 i32.load offset=4 local.set $4 - local.get $6 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -58918,27 +58632,27 @@ end end end - local.get $6 + local.get $5 i32.store offset=16 - local.get $6 + local.get $5 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $6 + local.get $5 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $6 + local.get $5 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $6 + local.get $5 i32.const 3 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -59174,11 +58888,11 @@ local.get $0 i32.add f32.load - local.tee $5 + local.tee $6 f32.const nan:0x400000 f32.eq - local.get $5 - local.get $5 + local.get $6 + local.get $6 f32.ne i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 @@ -60269,14 +59983,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|035142 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60365,7 +60079,7 @@ i32.const 0 local.set $12 loop $for-loop|139 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60517,14 +60231,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|054 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60614,7 +60328,7 @@ i32.const 0 local.set $12 loop $for-loop|159 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60661,14 +60375,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|064200 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60759,7 +60473,7 @@ i32.const 0 local.set $12 loop $for-loop|169 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60806,14 +60520,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|074 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60905,7 +60619,7 @@ i32.const 0 local.set $12 loop $for-loop|179 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -60952,14 +60666,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|084146 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61049,7 +60763,7 @@ i32.const 0 local.set $12 loop $for-loop|189 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61096,14 +60810,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint32Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|094148 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61193,7 +60907,7 @@ i32.const 0 local.set $12 loop $for-loop|199 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61240,14 +60954,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|0104 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61338,7 +61052,7 @@ i32.const 0 local.set $12 loop $for-loop|1109 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61385,14 +61099,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|0114151 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61483,7 +61197,7 @@ i32.const 0 local.set $12 loop $for-loop|1119 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61530,14 +61244,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|0124 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61628,7 +61342,7 @@ i32.const 0 local.set $12 loop $for-loop|1129 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61675,14 +61389,14 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store offset=4 i32.const 0 local.set $12 loop $for-loop|0134 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61773,7 +61487,7 @@ i32.const 0 local.set $12 loop $for-loop|1139 - local.get $6 + local.get $5 local.get $12 i32.gt_s if @@ -61810,7 +61524,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $5 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -61863,37 +61577,33 @@ i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.load offset=8 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $2 i32.const 1 i32.add i32.lt_s br_if $folding-inner22 - local.get $6 + local.get $5 i32.load offset=4 i32.const 1 i32.add - local.set $2 - local.get $0 - i32.load offset=4 local.set $1 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u + i32.load offset=4 local.set $0 i32.const 0 local.set $13 - loop $for-loop|0145 - local.get $0 + loop $for-loop|0144 + local.get $2 local.get $13 i32.gt_s if - local.get $2 + local.get $1 local.get $13 i32.add f32.const 0 @@ -61901,70 +61611,58 @@ local.get $13 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add f32.load - local.tee $5 f32.min f32.max i32.trunc_sat_f32_u - i32.const 0 - local.get $5 - local.get $5 - f32.sub - f32.const 0 - f32.eq - select i32.store8 local.get $13 i32.const 1 i32.add local.set $13 - br $for-loop|0145 + br $for-loop|0144 end end - local.get $6 + local.get $5 local.get $3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $6 + local.get $5 i32.load offset=8 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $3 i32.const 8 i32.add i32.lt_s br_if $folding-inner22 - local.get $6 + local.get $5 i32.load offset=4 i32.const 8 i32.add - local.set $3 - local.get $4 - i32.load offset=4 local.set $2 local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u + i32.load offset=4 local.set $1 i32.const 0 local.set $13 - loop $for-loop|0151 - local.get $1 + loop $for-loop|0149 + local.get $3 local.get $13 i32.gt_s if - local.get $3 + local.get $2 local.get $13 i32.add i32.const 255 local.get $13 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load local.tee $0 @@ -61984,7 +61682,7 @@ i32.const 1 i32.add local.set $13 - br $for-loop|0151 + br $for-loop|0149 end end i32.const 10 @@ -61996,7 +61694,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -62041,40 +61739,36 @@ i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - local.get $6 - i32.load offset=8 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.lt_s + local.tee $3 + local.get $5 + i32.load offset=8 + i32.gt_s br_if $folding-inner22 - local.get $6 - i32.load offset=4 - local.set $3 - local.get $0 + local.get $5 i32.load offset=4 local.set $2 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u + i32.load offset=4 local.set $1 i32.const 0 local.set $13 - loop $for-loop|0157 - local.get $1 + loop $for-loop|0154 + local.get $3 local.get $13 i32.gt_s if - local.get $3 + local.get $2 local.get $13 i32.add i32.const 255 local.get $13 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load local.tee $0 @@ -62087,10 +61781,10 @@ i32.const 1 i32.add local.set $13 - br $for-loop|0157 + br $for-loop|0154 end end - local.get $6 + local.get $5 local.get $4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> @@ -62103,7 +61797,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 @@ -63490,12 +63184,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0161 + loop $while-continue|0158 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0161 + br $while-continue|0158 end end end @@ -63611,8 +63305,8 @@ end i32.const 1360 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end @@ -63737,42 +63431,42 @@ end i32.const 0 i32.const 1568 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.ts b/tests/compiler/std/typedarray.ts index ba08ab3b20..a1b4cc9ebf 100644 --- a/tests/compiler/std/typedarray.ts +++ b/tests/compiler/std/typedarray.ts @@ -768,7 +768,7 @@ function valuesEqual(target: T, compare: valueof[] let setSource1: i32[] = [1, 2, 3]; let setSource2: f32[] = [4, 5, 6]; -let setSource3: f64[] = [Infinity, NaN, -Infinity]; +let setSource3: f64[] = [NaN, NaN, -0]; let setSource7: i8[] = [-110, -111, -112]; function testTypedArraySet(): void { @@ -812,9 +812,19 @@ function testTypedArraySet(): void { valuesEqual(a, [100, 101, 102, 103, 255, 255, 255, 0, 0, 0]); } else { // explicitly case the input values to valueof - valuesEqual(a, [100, 101, 102, 103, >1000, >1001, >1002, >-110, >-111, >-112]); + valuesEqual(a, [ + 100, + 101, + 102, + 103, + >1000, + >1001, + >1002, + >-110, + >-111, + >-112 + ]); } - } testTypedArraySet(); @@ -849,7 +859,7 @@ testTypedArraySet(); targetClampedArray.set(a, 1); targetClampedArray.set(b, 4); targetClampedArray.set(c, 8); - valuesEqual(targetClampedArray, [0, 255, 0, 0, 0, 100, 10, 255, 255, 0]); + valuesEqual(targetClampedArray, [0, 255, 0, 255, 0, 100, 10, 255, 255, 0]); let d = new Uint32Array(4); d[0] = 1; diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index ef4ea7d7c3..13962f7a0e 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -99,6 +99,7 @@ (global $std/typedarray/setSource2 (mut i32) (i32.const 10064)) (global $std/typedarray/setSource3 (mut i32) (i32.const 10160)) (global $std/typedarray/setSource7 (mut i32) (i32.const 10240)) + (global $~lib/ASC_FEATURE_NONTRAPPING_F2I i32 (i32.const 1)) (global $~lib/rt/__rtti_base i32 (i32.const 14976)) (global $~lib/memory/__data_end i32 (i32.const 15604)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 31988)) @@ -317,7 +318,7 @@ (data (i32.const 9964) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\e0&\00\00\e0&\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 10012) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\80@\00\00\a0@\00\00\c0@") (data (i32.const 10044) ",\00\00\00\00\00\00\00\00\00\00\00=\00\00\00\10\00\00\000\'\00\000\'\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10092) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00") + (data (i32.const 10092) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 10140) ",\00\00\00\00\00\00\00\00\00\00\00>\00\00\00\10\00\00\00\80\'\00\00\80\'\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 10188) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\92\91\90\00\00\00\00\00\00\00\00\00") (data (i32.const 10220) ",\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\10\00\00\00\e0\'\00\00\e0\'\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -385,7 +386,7 @@ (data (i32.const 13900) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14012) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14124) "l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00\00\00\00\00\00Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff\00\00\00") + (data (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\00\ff\00\ff\00d\n\ff\ff\00\00\00") (data (i32.const 14268) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff\00\00\00") (data (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00E\00\00\00\08\00\00\00\91\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00E\00\00\00\08\00\00\00\92\00\00\00\00\00\00\00\00\00\00\00") @@ -24520,6 +24521,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -24534,51 +24536,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -24586,22 +24589,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -24635,7 +24638,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -24650,85 +24654,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_s i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -24742,6 +24741,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -24756,51 +24756,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -24808,22 +24809,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -24841,7 +24842,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -24856,85 +24858,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_s i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -24943,6 +24940,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -24957,37 +24958,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -25001,6 +25010,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -25015,51 +25025,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -25067,22 +25078,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25091,6 +25102,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -25105,37 +25120,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -25149,6 +25172,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -25163,51 +25187,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -25215,22 +25240,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25264,7 +25289,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -25279,85 +25305,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_u i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25371,6 +25392,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -25385,51 +25407,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -25437,22 +25460,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25466,7 +25489,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -25481,85 +25505,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_u i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25568,6 +25587,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -25582,37 +25605,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -25626,6 +25657,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -25640,51 +25672,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -25692,22 +25725,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25716,6 +25749,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -25730,37 +25767,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -25775,6 +25820,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) local.get $0 local.set $5 local.get $1 @@ -25789,63 +25835,64 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 i32.const 1 i32.eqz drop @@ -25853,29 +25900,29 @@ i32.const 4 i32.le_u drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 + local.get $12 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.const 255 - local.get $11 + local.get $12 i32.sub i32.const 31 i32.shr_s - local.get $11 + local.get $12 i32.or i32.and i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -25896,7 +25943,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -25911,88 +25959,83 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 1 drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end + f32.const 255 + local.get $12 + f32.min + f32.max + i32.trunc_sat_f32_u i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26006,7 +26049,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i64) + (local $11 i32) + (local $12 i64) local.get $0 local.set $5 local.get $1 @@ -26021,63 +26065,64 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $11 + local.set $12 i32.const 1 i32.eqz drop @@ -26085,12 +26130,12 @@ i32.const 4 i32.le_u drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 + local.get $12 i32.wrap_i64 i32.const 31 i32.shr_s @@ -26098,20 +26143,20 @@ i32.xor i64.extend_i32_s i32.const 255 - local.get $11 + local.get $12 i32.wrap_i64 i32.sub i32.const 31 i32.shr_s i64.extend_i32_s - local.get $11 + local.get $12 i64.or i64.and i64.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26125,7 +26170,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -26140,88 +26186,83 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 + loop $for-loop|0 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 1 drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $11 - f64.min - f64.max - i32.trunc_sat_f64_u - else - i32.const 0 - end + f64.const 255 + local.get $12 + f64.min + f64.max + i32.trunc_sat_f64_u i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26230,6 +26271,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -26244,37 +26289,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -26289,6 +26342,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) local.get $0 local.set $5 local.get $1 @@ -26303,63 +26357,64 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s - local.set $11 + local.set $12 i32.const 1 i32.eqz drop @@ -26367,29 +26422,29 @@ i32.const 4 i32.le_u drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 + local.get $12 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.const 255 - local.get $11 + local.get $12 i32.sub i32.const 31 i32.shr_s - local.get $11 + local.get $12 i32.or i32.and i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26404,6 +26459,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) local.get $0 local.set $5 local.get $1 @@ -26418,62 +26474,63 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.eqz + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s - local.set $11 + local.set $12 i32.const 1 i32.eqz drop @@ -26481,29 +26538,29 @@ i32.const 4 i32.le_u drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 + local.get $12 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.const 255 - local.get $11 + local.get $12 i32.sub i32.const 31 i32.shr_s - local.get $11 + local.get $12 i32.or i32.and i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26517,6 +26574,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -26531,51 +26589,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -26583,22 +26642,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26634,7 +26693,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -26649,85 +26709,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_s i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26741,6 +26796,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -26755,51 +26811,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -26807,22 +26864,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26836,7 +26893,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -26851,85 +26909,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_s i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -26943,6 +26996,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -26957,51 +27011,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27009,22 +27064,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27033,6 +27088,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -27047,37 +27106,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -27091,6 +27158,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -27105,51 +27173,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27157,22 +27226,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27186,6 +27255,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -27200,51 +27270,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27252,22 +27323,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27303,7 +27374,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -27318,85 +27390,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_u i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27410,6 +27477,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -27424,51 +27492,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27476,22 +27545,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27505,7 +27574,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -27520,85 +27590,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_u i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27612,6 +27677,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -27626,51 +27692,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27678,22 +27745,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27702,6 +27769,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -27716,37 +27787,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -27760,6 +27839,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -27774,51 +27854,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 1 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -27826,22 +27907,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 1 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s i32.store16 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -27850,6 +27931,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -27864,37 +27949,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -27926,7 +28019,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -27941,85 +28035,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28033,6 +28122,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28047,51 +28137,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28099,22 +28190,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store32 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28128,7 +28219,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -28143,85 +28235,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_s - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28235,6 +28322,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28249,51 +28337,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28301,22 +28390,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28330,6 +28419,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28344,51 +28434,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28396,22 +28487,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28425,6 +28516,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28439,51 +28531,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28491,22 +28584,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28515,6 +28608,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -28529,37 +28626,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -28595,7 +28700,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -28610,85 +28716,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_sat_f32_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f32_u i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28702,6 +28803,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28716,51 +28818,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 3 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28768,22 +28871,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load i64.store32 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28797,7 +28900,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -28812,85 +28916,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_sat_f64_u - else - i32.const 0 - end + local.get $12 + i32.trunc_sat_f64_u i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28904,6 +29003,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -28918,51 +29018,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -28970,22 +29071,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -28999,6 +29100,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29013,51 +29115,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29065,22 +29168,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29094,6 +29197,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29108,51 +29212,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29160,22 +29265,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s i32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29189,6 +29294,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29203,74 +29309,75 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 - if - i32.const 0 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 + if + i32.const 0 drop i32.const 0 drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i64.load32_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29306,7 +29413,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -29321,85 +29429,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_sat_f32_s - else - i64.const 0 - end + local.get $12 + i64.trunc_sat_f32_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29408,6 +29511,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -29422,37 +29529,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -29466,7 +29581,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -29481,85 +29597,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_sat_f64_s - else - i64.const 0 - end + local.get $12 + i64.trunc_sat_f64_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29573,6 +29684,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29587,51 +29699,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29639,22 +29752,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i64.load8_u i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29668,6 +29781,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29682,51 +29796,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29734,22 +29849,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i64.load16_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29763,6 +29878,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29777,51 +29893,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29829,22 +29946,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i64.load8_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29858,6 +29975,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -29872,51 +29990,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -29924,22 +30043,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i64.load32_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -29975,7 +30094,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 f32) local.get $0 local.set $5 local.get $1 @@ -29990,85 +30110,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_sat_f32_u - else - i64.const 0 - end + local.get $12 + i64.trunc_sat_f32_u i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30077,6 +30192,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -30091,37 +30210,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -30135,7 +30262,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) + (local $11 i32) + (local $12 f64) local.get $0 local.set $5 local.get $1 @@ -30150,85 +30278,80 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop i32.const 0 i32.eqz drop - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $11 - local.get $6 - local.get $9 + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_sat_f64_u - else - i64.const 0 - end + local.get $12 + i64.trunc_sat_f64_u i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30242,6 +30365,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30256,51 +30380,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30308,22 +30433,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i64.load8_u i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30337,6 +30462,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30351,51 +30477,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30403,22 +30530,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i64.load16_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30432,6 +30559,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30446,51 +30574,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30498,22 +30627,22 @@ drop i32.const 0 drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i64.load8_s i64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30527,6 +30656,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30541,51 +30671,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30594,23 +30725,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load f32.convert_i32_s f32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30637,6 +30768,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 local.set $5 local.get $1 @@ -30651,37 +30786,45 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.eqz - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add + local.set $8 local.get $4 i32.load offset=4 + local.set $9 + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $9 local.get $4 i32.load offset=8 call $~lib/memory/memory.copy @@ -30695,6 +30838,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30709,51 +30853,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30762,23 +30907,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load f32.convert_i64_s f32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30792,6 +30937,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30806,51 +30952,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30859,23 +31006,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30889,6 +31036,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -30903,51 +31051,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -30956,23 +31105,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -30986,6 +31135,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31000,51 +31150,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31053,23 +31204,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 2 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31083,6 +31234,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31097,51 +31249,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31150,23 +31303,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load f64.convert_i32_s f64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31198,6 +31351,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31212,51 +31366,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/array/Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31266,23 +31421,23 @@ i32.const 1 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add f32.load f64.promote_f32 f64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31296,6 +31451,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31310,51 +31466,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31363,23 +31520,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 3 i32.shl i32.add i64.load f64.convert_i64_s f64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31393,6 +31550,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31407,51 +31565,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31460,23 +31619,23 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 + local.get $10 i32.const 0 i32.shl i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31490,6 +31649,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 local.set $5 local.get $1 @@ -31504,148 +31664,52 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 3 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1908 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1909 - i32.const 47 - call $~lib/builtins/abort - unreachable - end i32.const 0 i32.const 1 i32.eq drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 0 drop @@ -31654,138 +31718,28 @@ i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 3 i32.shl i32.add - local.get $7 local.get $9 - i32.const 0 + local.get $10 + i32.const 1 i32.shl i32.add - i32.load8_s + i32.load16_s f64.convert_i32_s f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1908 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1909 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 0 - i32.eq - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Float32Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 1 - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -31809,63 +31763,270 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 - call $~lib/typedarray/Int32Array#get:length + call $~lib/array/Array#get:length + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $6 local.get $3 i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $8 + local.get $4 + i32.load offset=4 + local.set $9 i32.const 0 - i32.const 2 + i32.const 1 i32.eq drop + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 + if + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $8 + local.get $10 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $10 + i32.const 0 + i32.shl + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1911 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1916 + i32.const 29 + call $~lib/builtins/abort + unreachable + end local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 + local.set $9 + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $12 + i32.const 1 + i32.eqz + drop + local.get $8 + local.get $10 + i32.const 0 + i32.shl + i32.add + f32.const 0 + f32.const 255 + local.get $12 + f32.min + f32.max + i32.trunc_sat_f32_u + i32.store8 + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1911 + i32.const 19 + call $~lib/builtins/abort + unreachable + end local.get $4 call $~lib/typedarray/Int32Array#get:length - local.set $8 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1916 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=4 + local.get $3 i32.const 0 + i32.shl + i32.add + local.set $8 + local.get $4 + i32.load offset=4 local.set $9 + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 i32.const 1 i32.eqz drop @@ -31873,29 +32034,29 @@ i32.const 4 i32.le_u drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add - local.get $11 + local.get $12 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.const 255 - local.get $11 + local.get $12 i32.sub i32.const 31 i32.shr_s - local.get $11 + local.get $12 i32.or i32.and i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -31912,6 +32073,7 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) local.get $0 local.set $5 local.get $1 @@ -31926,84 +32088,85 @@ if i32.const 336 i32.const 608 - i32.const 1908 + i32.const 1911 i32.const 19 call $~lib/builtins/abort unreachable end local.get $4 call $~lib/typedarray/Uint32Array#get:length - local.get $3 - i32.add + local.set $6 local.get $5 call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $6 + local.get $3 + i32.add + local.get $7 i32.gt_s if i32.const 336 i32.const 608 - i32.const 1909 - i32.const 47 + i32.const 1916 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - i32.eq - drop local.get $5 i32.load offset=4 local.get $3 i32.const 0 i32.shl i32.add - local.set $6 + local.set $8 local.get $4 i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint32Array#get:length - local.set $8 - i32.const 0 local.set $9 + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $10 loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 local.get $10 + local.get $6 + i32.lt_s + local.set $11 + local.get $11 if i32.const 1 drop i32.const 0 drop - local.get $7 local.get $9 + local.get $10 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 i32.const 0 i32.eqz drop - local.get $6 - local.get $9 + local.get $8 + local.get $10 i32.const 0 i32.shl i32.add i32.const 255 - local.tee $12 - local.get $11 local.tee $13 local.get $12 + local.tee $14 local.get $13 + local.get $14 i32.lt_u select i32.store8 - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|0 end end @@ -58745,7 +58908,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -58759,7 +58922,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -58773,7 +58936,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -58796,7 +58959,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -58810,7 +58973,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -58824,7 +58987,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -58884,7 +59047,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -58898,7 +59061,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -58912,7 +59075,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -58935,7 +59098,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -58949,7 +59112,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -58963,7 +59126,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59023,7 +59186,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59037,7 +59200,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59051,7 +59214,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59074,7 +59237,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59088,7 +59251,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59102,7 +59265,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59162,7 +59325,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59176,7 +59339,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59190,7 +59353,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59213,7 +59376,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59227,7 +59390,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59241,7 +59404,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59301,7 +59464,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59315,7 +59478,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59329,7 +59492,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59352,7 +59515,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59366,7 +59529,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59380,7 +59543,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59440,7 +59603,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59454,7 +59617,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59468,7 +59631,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59491,7 +59654,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59505,7 +59668,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59519,7 +59682,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59579,7 +59742,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59593,7 +59756,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59607,7 +59770,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59630,7 +59793,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59644,7 +59807,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59658,7 +59821,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59718,7 +59881,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59732,7 +59895,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59746,7 +59909,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59769,7 +59932,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59783,7 +59946,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59797,7 +59960,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59857,7 +60020,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -59871,7 +60034,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -59885,7 +60048,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -59908,7 +60071,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -59922,7 +60085,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -59936,7 +60099,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -59996,7 +60159,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -60010,7 +60173,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -60024,7 +60187,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -60047,7 +60210,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -60061,7 +60224,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -60075,7 +60238,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable @@ -60135,7 +60298,7 @@ if i32.const 0 i32.const 544 - i32.const 878 + i32.const 888 i32.const 3 call $~lib/builtins/abort unreachable @@ -60149,7 +60312,7 @@ if i32.const 0 i32.const 544 - i32.const 879 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -60163,7 +60326,7 @@ if i32.const 0 i32.const 544 - i32.const 880 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable @@ -60186,7 +60349,7 @@ if i32.const 0 i32.const 544 - i32.const 882 + i32.const 892 i32.const 3 call $~lib/builtins/abort unreachable @@ -60200,7 +60363,7 @@ if i32.const 0 i32.const 544 - i32.const 883 + i32.const 893 i32.const 3 call $~lib/builtins/abort unreachable @@ -60214,7 +60377,7 @@ if i32.const 0 i32.const 544 - i32.const 884 + i32.const 894 i32.const 3 call $~lib/builtins/abort unreachable