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", diff --git a/src/compiler.ts b/src/compiler.ts index 033372fcb6..620c70c7cc 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -244,7 +244,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. */ @@ -428,7 +428,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; @@ -10271,38 +10271,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 (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, + 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 (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, + 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.V128: { return module.unary(UnaryOp.AnyTrueV128, expr); diff --git a/src/module.ts b/src/module.ts index bd979cd974..8faa50c40f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -71,7 +71,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/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/asc-constants.untouched.wat b/tests/compiler/asc-constants.untouched.wat index be45b662f8..66e06b94c9 100644 --- a/tests/compiler/asc-constants.untouched.wat +++ b/tests/compiler/asc-constants.untouched.wat @@ -8,7 +8,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)) @@ -43,7 +43,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 4ba77b7887..b55e70fc2c 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -2654,7 +2654,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/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)) +) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 19b979c51a..9e7bce5584 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -5186,7 +5186,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 740e8907c9..ef6d5910f9 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -6188,7 +6188,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 637e4e4fb5..875fa3e272 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -3619,7 +3619,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $7 local.get $0 local.get $7 diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 1255683dc2..062126a3ae 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -4937,7 +4937,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 6cb50eb234..d986434b1e 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -5176,7 +5176,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 1c02a283e3..ae25570c78 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -10603,7 +10603,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $9 local.get $1 local.get $9 @@ -25620,7 +25620,7 @@ call $~lib/math/NativeMath.random f64.const 32 f64.mul - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -25666,7 +25666,7 @@ f64.convert_i32_s f64.mul f64.floor - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29471,7 +29471,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 $1 i32.const 1 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 2202591239..ca9b728426 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -17526,7 +17526,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 @@ -25477,7 +25477,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 @@ -25535,7 +25535,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 @@ -38453,7 +38453,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 ada92b44c6..951a9167ac 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -19068,7 +19068,7 @@ local.get $4 local.get $5 local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set @@ -19153,7 +19153,7 @@ local.get $5 call $~lib/map/Map#get local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -19272,7 +19272,7 @@ local.get $5 call $~lib/map/Map#get local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -19287,7 +19287,7 @@ local.get $4 local.get $5 local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add call $~lib/map/Map#set @@ -19372,7 +19372,7 @@ local.get $5 call $~lib/map/Map#get local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -20285,7 +20285,7 @@ local.get $5 call $~lib/map/Map#get local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -20481,7 +20481,7 @@ local.get $4 local.get $5 local.get $5 - i32.trunc_f32_s + i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set @@ -21303,7 +21303,7 @@ local.get $11 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 @@ -21323,7 +21323,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 @@ -21377,7 +21377,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 @@ -21392,7 +21392,7 @@ local.get $11 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 @@ -21412,7 +21412,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 @@ -22155,7 +22155,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 @@ -22221,7 +22221,7 @@ local.get $11 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 d74fda104e..4db97c17c9 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -14768,7 +14768,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 @@ -14789,7 +14789,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 @@ -14847,7 +14847,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 @@ -14863,7 +14863,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 @@ -14884,7 +14884,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 @@ -15054,7 +15054,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 @@ -15129,7 +15129,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 @@ -16068,7 +16068,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 @@ -16089,7 +16089,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 @@ -16147,7 +16147,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 @@ -16163,7 +16163,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 @@ -16184,7 +16184,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 @@ -16354,7 +16354,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 @@ -16429,7 +16429,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 3df3630ede..934e0ab21c 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -3668,7 +3668,7 @@ f64.const 3.834951969714103e-04 f64.mul f64.add - i64.trunc_f64_u + i64.trunc_sat_f64_u local.tee $2 i64.lt_u i64.extend_i32_u @@ -4003,7 +4003,7 @@ f64.sub 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 i32.const 0 @@ -4384,7 +4384,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.0 end local.get $5 @@ -4641,7 +4641,7 @@ local.get $0 f64.copysign f64.add - i32.trunc_f64_s + i32.trunc_sat_f64_s local.get $3 i32.const 1072734898 i32.lt_u @@ -5198,7 +5198,7 @@ local.get $0 f32.copysign f32.add - i32.trunc_f32_s + i32.trunc_sat_f32_s local.get $3 i32.const 1065686418 i32.lt_u @@ -9427,7 +9427,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $7 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.1 end i32.const 0 @@ -9821,7 +9821,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.1 end local.get $6 @@ -10597,7 +10597,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $4 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.set $2 br $~lib/math/rempio2|inlined.2 end @@ -10793,7 +10793,7 @@ f64.sub global.set $~lib/math/rempio2f_y local.get $3 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.2 end local.get $6 @@ -11494,7 +11494,7 @@ f64.sub global.set $~lib/math/rempio2_y1 local.get $7 - i32.trunc_f64_s + i32.trunc_sat_f64_s br $~lib/math/rempio2|inlined.3 end i32.const 0 @@ -11686,7 +11686,7 @@ i64.le_u if (result i32) local.get $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s else local.get $5 i64.const 1106 @@ -11729,7 +11729,7 @@ i64.le_u if (result i32) local.get $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s else local.get $5 i64.const 1106 diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 176beb6f5c..29c8009f15 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -4563,7 +4563,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 @@ -4956,7 +4956,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 @@ -5556,7 +5556,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 @@ -5850,7 +5850,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 @@ -6558,7 +6558,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 @@ -12518,7 +12518,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 @@ -13110,7 +13110,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 @@ -14081,7 +14081,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 @@ -14592,7 +14592,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 @@ -15457,7 +15457,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 @@ -15708,7 +15708,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 2656b9f5fd..eb50425f28 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -5589,7 +5589,7 @@ f64.const 0.00004294967296 f64.mul f64.nearest - i64.trunc_f64_u + i64.trunc_sat_f64_u local.get $6 local.get $12 i64.shl @@ -5630,7 +5630,7 @@ local.get $13 f64.convert_i64_u f64.div - i64.trunc_f64_u + i64.trunc_sat_f64_u local.get $14 local.get $12 i64.shl @@ -7139,7 +7139,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $7 local.get $0 local.get $7 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 0f8eecf07f..2fbdc5ac46 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -6830,7 +6830,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 @@ -6876,7 +6876,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 @@ -8953,7 +8953,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 e37533c4cc..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") @@ -26912,7 +26912,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $9 local.get $1 local.get $9 @@ -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,73 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_s - else - i32.const 0 - end + i32.trunc_sat_f32_s i32.store8 local.get $0 i32.const 1 @@ -40576,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 @@ -40591,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 @@ -40632,23 +40566,13 @@ local.get $6 i32.add f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_s - else - i32.const 0 - end + i32.trunc_sat_f64_s 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 @@ -40660,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 @@ -40683,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 @@ -40694,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 ) @@ -40791,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 @@ -40827,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 @@ -40882,73 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_u - else - i32.const 0 - end + i32.trunc_sat_f32_u i32.store8 local.get $0 i32.const 1 @@ -40966,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 @@ -40981,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 @@ -41022,23 +40930,13 @@ local.get $6 i32.add f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_u - else - i32.const 0 - end + i32.trunc_sat_f64_u 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 @@ -41050,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 @@ -41073,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 @@ -41084,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 ) @@ -41180,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 @@ -41206,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 @@ -41338,68 +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 - local.get $1 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $1 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end + f32.min + f32.max + i32.trunc_sat_f32_u 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 @@ -41411,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 @@ -41427,68 +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 - local.get $2 - f64.sub - f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $2 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end + f64.min + f64.max + i32.trunc_sat_f64_u 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 @@ -41500,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 @@ -41564,7 +41432,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|017 + br $for-loop|013 end end i32.const 10 @@ -41576,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 @@ -41587,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 ) @@ -41689,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 @@ -41725,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 @@ -41780,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 @@ -41805,52 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_s - else - i32.const 0 - end + i32.trunc_sat_f32_s i32.store16 local.get $0 i32.const 1 @@ -41868,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 @@ -41883,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 @@ -41891,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 @@ -41928,23 +41780,13 @@ local.get $6 i32.add f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_s - else - i32.const 0 - end + i32.trunc_sat_f64_s 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 @@ -41956,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 @@ -41979,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 @@ -41990,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 ) @@ -42092,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 @@ -42128,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 @@ -42183,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 @@ -42208,52 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_u - else - i32.const 0 - end + i32.trunc_sat_f32_u i32.store16 local.get $0 i32.const 1 @@ -42271,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 @@ -42286,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 @@ -42294,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 @@ -42331,23 +42157,13 @@ local.get $6 i32.add f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_u - else - i32.const 0 - end + i32.trunc_sat_f64_u 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 @@ -42359,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 @@ -42382,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 @@ -42393,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 ) @@ -42495,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 @@ -42532,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 @@ -42587,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> @@ -42601,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 @@ -42614,52 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_s - else - i32.const 0 - end + f32.load + i32.trunc_sat_f32_s i32.store local.get $0 i32.const 1 @@ -42677,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 @@ -42692,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 @@ -42700,60 +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 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_s - else - i32.const 0 - end + i32.trunc_sat_f64_s 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 @@ -42765,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 @@ -42788,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 @@ -42799,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 ) @@ -42901,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 @@ -42938,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 @@ -42993,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> @@ -43007,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 @@ -43020,52 +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 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - i32.trunc_f32_u - else - i32.const 0 - end + f32.load + i32.trunc_sat_f32_u i32.store local.get $0 i32.const 1 @@ -43083,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 @@ -43098,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 @@ -43106,60 +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 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_u - else - i32.const 0 - end + i32.trunc_sat_f64_u 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 @@ -43171,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 @@ -43194,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 @@ -43205,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 ) @@ -43308,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 @@ -43344,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 @@ -43399,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 @@ -43424,52 +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 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $3 - i64.trunc_f32_s - else - i64.const 0 - end + i64.trunc_sat_f32_s i64.store local.get $0 i32.const 1 @@ -43487,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 @@ -43502,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 @@ -43510,60 +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 - local.get $2 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $2 - i64.trunc_f64_s - else - i64.const 0 - end + i64.trunc_sat_f64_s 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 @@ -43575,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 @@ -43598,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 @@ -43609,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 ) @@ -43712,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 @@ -43748,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 @@ -43803,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 @@ -43828,52 +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 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $3 - i64.trunc_f32_u - else - i64.const 0 - end + i64.trunc_sat_f32_u i64.store local.get $0 i32.const 1 @@ -43891,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 @@ -43906,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 @@ -43914,60 +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 - local.get $2 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $2 - i64.trunc_f64_u - else - i64.const 0 - end + i64.trunc_sat_f64_u 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 @@ -43979,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 @@ -44002,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 @@ -44013,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 ) @@ -44216,6 +43924,7 @@ block $folding-inner1 i32.const 11020 i32.load + local.tee $6 local.get $8 i32.load offset=8 i32.const 2 @@ -44224,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 @@ -44290,6 +43996,7 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.tee $2 i32.const 6 i32.add local.get $8 @@ -44302,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 @@ -44350,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 @@ -44358,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 @@ -44392,6 +44092,7 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.tee $0 i32.const 4 i32.add local.get $8 @@ -44404,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 @@ -44445,6 +44141,7 @@ i32.store offset=16 i32.const 11276 i32.load + local.tee $0 i32.const 7 i32.add local.get $8 @@ -44457,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 @@ -44486,7 +44180,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|016 + br $for-loop|015 end end i32.const 10 @@ -44509,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 ) @@ -44708,6 +44402,7 @@ block $folding-inner1 i32.const 11020 i32.load + local.tee $6 local.get $5 i32.load offset=8 i32.const 3 @@ -44716,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 @@ -44753,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 @@ -44777,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 @@ -44816,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 @@ -44842,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 @@ -44871,7 +44555,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|09 + br $for-loop|07 end end i32.const 10 @@ -44879,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 @@ -44896,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 @@ -44923,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 @@ -44942,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 @@ -44975,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 @@ -44983,6 +44663,7 @@ i32.store offset=16 i32.const 11276 i32.load + local.tee $1 i32.const 7 i32.add local.get $5 @@ -44995,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 @@ -45024,7 +44702,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|023 + br $for-loop|020 end end i32.const 10 @@ -45047,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 ) @@ -45058,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) @@ -47183,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 @@ -47195,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 @@ -47256,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 @@ -47274,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 @@ -47335,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 @@ -47353,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 @@ -47414,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 @@ -47422,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 @@ -47436,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 @@ -47497,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 @@ -47505,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 @@ -47519,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 @@ -47580,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 @@ -47588,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 @@ -47602,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 @@ -47661,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 @@ -47669,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 @@ -47683,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 @@ -47740,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 @@ -47748,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 @@ -47762,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 @@ -47821,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 @@ -47829,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 @@ -47843,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 @@ -47900,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 @@ -47908,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 @@ -47979,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 @@ -47987,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 @@ -48001,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 @@ -48616,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 @@ -48637,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 @@ -48652,7 +48330,7 @@ br $for-loop|059 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48695,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 @@ -48716,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 @@ -48731,7 +48409,7 @@ br $for-loop|064 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48774,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 @@ -48795,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 @@ -48810,7 +48488,7 @@ br $for-loop|071 end end - local.get $6 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -48853,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 @@ -48878,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 @@ -48893,7 +48571,7 @@ br $for-loop|076 end end - local.get $6 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -48936,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 @@ -48961,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 @@ -48976,7 +48654,7 @@ br $for-loop|081 end end - local.get $6 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -49019,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 @@ -49044,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 @@ -49059,7 +48737,7 @@ br $for-loop|086 end end - local.get $6 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -49100,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 @@ -49125,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 @@ -49140,7 +48818,7 @@ br $for-loop|091 end end - local.get $6 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -49365,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 @@ -49957,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 @@ -49982,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 @@ -50108,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 @@ -50133,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 @@ -50259,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 @@ -50284,7 +49962,7 @@ i32.const 2 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load local.set $0 @@ -50410,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 @@ -50435,7 +50113,7 @@ i32.const 2 i32.shl local.tee $1 - local.get $6 + local.get $5 i32.add i32.load local.set $0 @@ -50558,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 @@ -50569,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 @@ -50578,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 @@ -50709,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 @@ -50720,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 @@ -50729,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 @@ -50860,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 @@ -50871,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 @@ -50880,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 @@ -50891,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 @@ -51011,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 @@ -51022,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 @@ -51031,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 @@ -51119,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 @@ -51161,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 @@ -51173,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 @@ -51199,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 @@ -51217,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 @@ -51239,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 @@ -51281,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 @@ -51293,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 @@ -51319,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 @@ -51337,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 @@ -51359,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 @@ -51401,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 @@ -51413,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 @@ -51439,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 @@ -51457,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 @@ -51479,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 @@ -51523,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 @@ -51537,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 @@ -51563,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 @@ -51571,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 @@ -51585,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 @@ -51607,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 @@ -51651,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 @@ -51665,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 @@ -51691,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 @@ -51699,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 @@ -51713,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 @@ -51735,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 @@ -51779,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 @@ -51793,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 @@ -51819,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 @@ -51827,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 @@ -51841,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 @@ -51863,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 @@ -51907,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 @@ -51921,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 @@ -51947,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 @@ -51955,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 @@ -51969,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 @@ -52300,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 @@ -52348,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 @@ -53711,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 @@ -53760,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 @@ -55128,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 @@ -55177,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 @@ -55337,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 @@ -55379,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 @@ -55391,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 @@ -55399,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 @@ -55418,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 @@ -55436,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 @@ -55444,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 @@ -55459,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 @@ -55501,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 @@ -55513,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 @@ -55521,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 @@ -55540,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 @@ -55558,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 @@ -55566,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 @@ -55581,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 @@ -55623,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 @@ -55635,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 @@ -55643,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 @@ -55662,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 @@ -55680,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 @@ -55688,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 @@ -55703,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 @@ -55747,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 @@ -55761,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 @@ -55769,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 @@ -55788,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 @@ -55796,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 @@ -55810,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 @@ -55818,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 @@ -55833,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 @@ -55877,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 @@ -55891,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 @@ -55899,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 @@ -55918,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 @@ -55926,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 @@ -55940,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 @@ -55948,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 @@ -55963,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 @@ -56007,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 @@ -56021,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 @@ -56029,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 @@ -56048,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 @@ -56056,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 @@ -56070,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 @@ -56078,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 @@ -56093,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 @@ -56137,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 @@ -56151,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 @@ -56159,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 @@ -56178,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 @@ -56186,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 @@ -56200,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 @@ -56208,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 @@ -56536,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 @@ -56585,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 @@ -56803,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 @@ -56902,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 @@ -57001,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 @@ -57097,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 @@ -57105,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 @@ -57116,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 @@ -57200,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 @@ -57208,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 @@ -57219,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 @@ -57297,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 @@ -57305,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 @@ -57316,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 @@ -57394,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 @@ -57402,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 @@ -57413,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 @@ -57494,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 @@ -57502,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 @@ -57513,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 @@ -57594,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 @@ -57602,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 @@ -57613,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 @@ -57694,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 @@ -57702,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 @@ -57713,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 @@ -57794,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 @@ -57802,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 @@ -57813,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 @@ -58544,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 @@ -58559,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 @@ -58655,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 @@ -58719,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 @@ -58780,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 @@ -58795,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 @@ -58891,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 @@ -58954,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 @@ -59210,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 @@ -60305,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 @@ -60401,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 @@ -60553,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 @@ -60650,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 @@ -60697,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 @@ -60795,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 @@ -60842,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 @@ -60941,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 @@ -60988,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 @@ -61085,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 @@ -61132,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 @@ -61229,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 @@ -61276,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 @@ -61374,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 @@ -61421,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 @@ -61519,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 @@ -61566,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 @@ -61664,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 @@ -61711,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 @@ -61809,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 @@ -61846,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 @@ -61899,110 +61577,92 @@ 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 + f32.const 255 local.get $13 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add f32.load - local.tee $5 - local.get $5 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $5 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end + f32.min + f32.max + i32.trunc_sat_f32_u 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 @@ -62022,7 +61682,7 @@ i32.const 1 i32.add local.set $13 - br $for-loop|0151 + br $for-loop|0149 end end i32.const 10 @@ -62034,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 @@ -62079,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 @@ -62125,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> @@ -62141,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 @@ -63528,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 @@ -63649,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 @@ -63775,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 151728470b..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") @@ -23880,7 +23881,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 @@ -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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 9ba2ab6fb4..1f6a66e1d0 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -4069,7 +4069,7 @@ f64.const 347 f64.add local.tee $0 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $7 local.get $0 local.get $7 diff --git a/tests/compiler/templateliteral.untouched.wat b/tests/compiler/templateliteral.untouched.wat index 23a8ef1f66..3c3107603a 100644 --- a/tests/compiler/templateliteral.untouched.wat +++ b/tests/compiler/templateliteral.untouched.wat @@ -5312,7 +5312,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 ca32daa0b6..dab38e2846 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -2994,7 +2994,7 @@ f64.const 347 f64.add local.tee $1 - i32.trunc_f64_s + i32.trunc_sat_f64_s local.tee $9 local.get $1 local.get $9 diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index bf82ac0d78..cfbfaff416 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -4365,7 +4365,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": [