diff --git a/package-lock.json b/package-lock.json index ce365483ac..7670196064 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,9 +25,9 @@ } }, "@types/node": { - "version": "13.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz", - "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==", + "version": "13.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz", + "integrity": "sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==", "dev": true }, "@webassemblyjs/ast": { @@ -224,9 +224,9 @@ "dev": true }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -566,9 +566,9 @@ "dev": true }, "binaryen": { - "version": "91.0.0-nightly.20200414", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-91.0.0-nightly.20200414.tgz", - "integrity": "sha512-ISiX15PTxlEuM57XXt0Dt6Yts4BRIawWUnrx1RhVlReGd9kI4+MZyANTV+blkMBETRz1VnCHaUtQ7Syb/GHYKQ==" + "version": "92.0.0-nightly.20200426", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-92.0.0-nightly.20200426.tgz", + "integrity": "sha512-e9aKrfV8MBFjLBITaY89/ulGhZ0AQ9RDb0B4ZGg7Qe3fM445JNiQh6Dc2k0+wTAU95oUAY0uGnNEIGUtEnirag==" }, "bindings": { "version": "1.5.0", @@ -2932,18 +2932,11 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "move-concurrently": { @@ -2967,9 +2960,9 @@ "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "dev": true, "optional": true }, @@ -3914,9 +3907,9 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4063,9 +4056,9 @@ "dev": true }, "terser": { - "version": "4.6.11", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz", - "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==", + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", + "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4415,16 +4408,16 @@ } }, "webpack": { - "version": "4.42.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", - "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/wasm-edit": "1.9.0", "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.2.1", + "acorn": "^6.4.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", @@ -4441,7 +4434,7 @@ "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", + "watchpack": "^1.6.1", "webpack-sources": "^1.4.1" }, "dependencies": { diff --git a/package.json b/package.json index c4d41e8239..7ca4ff1230 100644 --- a/package.json +++ b/package.json @@ -21,23 +21,23 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "91.0.0-nightly.20200414", + "binaryen": "92.0.0-nightly.20200426", "long": "^4.0.0", - "source-map-support": "^0.5.16", + "source-map-support": "^0.5.19", "ts-node": "^6.2.0" }, "devDependencies": { - "@types/node": "^13.11.1", + "@types/node": "^13.13.2", "browser-process-hrtime": "^1.0.0", "diff": "^4.0.2", "glob": "^7.1.6", "physical-cpu-count": "^2.0.0", - "source-map-support": "^0.5.16", + "source-map-support": "^0.5.19", "ts-loader": "^6.2.2", "ts-node": "^6.2.0", "tslint": "^5.20.1", "typescript": "^3.8.3", - "webpack": "^4.42.1", + "webpack": "^4.43.0", "webpack-cli": "^3.3.11" }, "main": "index.js", diff --git a/scripts/update-constants.js b/scripts/update-constants.js index 8480ee6c1c..41058903bc 100644 --- a/scripts/update-constants.js +++ b/scripts/update-constants.js @@ -10,7 +10,7 @@ var src = fs.readFileSync(srcfile, "utf8"); binaryen.ready.then(() => { src = src.replace(/(?:enum|namespace) (\w+) \{([^}]*)\}/g, function($0) { return $0.replace(/(\w+)[ ]+=[ ]+([^,;\n]+)/g, function($0, key, val) { - var match = val.match(/\b(_Binaryen\w+)\b/); + var match = val.match(/\b(_(?:Binaryen|Relooper|ExpressionRunner)\w+)\b/); if (match) { let fn = match[1]; if (typeof binaryen[fn] !== "function") throw Error("API mismatch: Is Binaryen up to date?"); diff --git a/src/builtins.ts b/src/builtins.ts index afc8fb3f73..b5e9856635 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -73,8 +73,8 @@ import { RelooperBlockRef, SIMDLoadOp, getLocalGetIndex, - hasSideEffects, - createType + createType, + ExpressionRunnerFlags } from "./module"; import { @@ -1809,12 +1809,7 @@ function builtin_isNaN(ctx: BuiltinContext): ExpressionRef { case TypeKind.U32: case TypeKind.U64: case TypeKind.USIZE: { - return hasSideEffects(arg0) - ? module.block(null, [ - module.drop(arg0), - module.i32(0) - ], NativeType.I32) - : module.i32(0); + return module.maybeDropCondition(arg0, module.i32(0)); } // (t = arg0) != t case TypeKind.F32: { @@ -1890,12 +1885,7 @@ function builtin_isFinite(ctx: BuiltinContext): ExpressionRef { case TypeKind.U32: case TypeKind.U64: case TypeKind.USIZE: { - return hasSideEffects(arg0) - ? module.block(null, [ - module.drop(arg0), - module.i32(1) - ], NativeType.I32) - : module.i32(1); + return module.maybeDropCondition(arg0, module.i32(1)); } // (t = arg0) - t == 0 case TypeKind.F32: { @@ -2570,17 +2560,16 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { for (let i = 0; i < numElements; ++i) { let expression = expressions[i]; if (expression) { - let expr = module.precomputeExpression( - compiler.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) + let expr = compiler.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN ); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); - exprs[i] = expr; + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + expr = precomp; } else { isStatic = false; } + exprs[i] = expr; } else { exprs[i] = compiler.makeZero(elementType); } @@ -2605,8 +2594,9 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { assert(compiler.writeStaticBuffer(buf, 0, elementType, exprs) == buf.byteLength); offset = compiler.addMemorySegment(buf, align).offset; } else { // data(size[, align]) - let arg0 = compiler.precomputeExpression(operands[0], Type.i32, Constraints.CONV_IMPLICIT); - if (getExpressionId(arg0) != ExpressionId.Const) { + let arg0 = compiler.compileExpression(operands[0], Type.i32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(arg0, ExpressionRunnerFlags.PreserveSideeffects); + if (!precomp) { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, operands[0].range @@ -2614,7 +2604,7 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { compiler.currentType = usizeType; return module.unreachable(); } - let size = getConstValueI32(arg0); + let size = getConstValueI32(precomp); if (size < 1) { compiler.error( DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, @@ -2694,45 +2684,35 @@ function builtin_assert(ctx: BuiltinContext): ExpressionRef { var type = compiler.currentType; compiler.currentType = type.nonNullableType; - // if the assertion can be proven statically, omit it - if (getExpressionId(arg0 = module.precomputeExpression(arg0)) == ExpressionId.Const) { - switch (getExpressionType(arg0)) { + // omit if assertions are disabled + if (compiler.options.noAssert) { + return arg0; + } + + // omit if the assertion can be proven statically + var evaled = module.runExpression(arg0, ExpressionRunnerFlags.Default); + if (evaled) { + switch (getExpressionType(evaled)) { case NativeType.I32: { - if (getConstValueI32(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueI32(evaled)) { return arg0; } break; } case NativeType.I64: { - if (getConstValueI64Low(arg0) != 0 || getConstValueI64High(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueI64Low(evaled) | getConstValueI64High(evaled)) { return arg0; } break; } case NativeType.F32: { - if (getConstValueF32(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueF32(evaled)) { return arg0; } break; } case NativeType.F64: { - if (getConstValueF64(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueF64(evaled)) { return arg0; } break; @@ -2740,15 +2720,6 @@ function builtin_assert(ctx: BuiltinContext): ExpressionRef { } } - // return ifTrueish if assertions are disabled - if (compiler.options.noAssert) { - if (contextualType == Type.void) { // simplify if dropped anyway - compiler.currentType = Type.void; - return module.nop(); - } - return arg0; - } - // otherwise call abort if the assertion is false-ish var abort = compiler.makeAbort(operands.length == 2 ? operands[1] : null, ctx.reportNode); compiler.currentType = type.nonNullableType; @@ -3062,19 +3033,15 @@ function builtin_i8x16(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 16; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i8, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI8(getConstValueI32(expr), bytes, i); + let expr = compiler.compileExpression(operands[i], Type.i8, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI8(getConstValueI32(precomp), bytes, i); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3097,19 +3064,15 @@ function builtin_i16x8(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 8; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i16, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI16(getConstValueI32(expr), bytes, i << 1); + let expr = compiler.compileExpression(operands[i], Type.i16, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI16(getConstValueI32(precomp), bytes, i << 1); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3132,19 +3095,15 @@ function builtin_i32x4(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 4; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i32, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI32(getConstValueI32(expr), bytes, i << 2); + let expr = compiler.compileExpression(operands[i], Type.i32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI32(getConstValueI32(precomp), bytes, i << 2); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3167,21 +3126,17 @@ function builtin_i64x2(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 2; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i64, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I64); + let expr = compiler.compileExpression(operands[i], Type.i64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { let off = i << 3; - writeI32(getConstValueI64Low(expr), bytes, off); - writeI32(getConstValueI64High(expr), bytes, off + 4); + writeI32(getConstValueI64Low(precomp), bytes, off); + writeI32(getConstValueI64High(precomp), bytes, off + 4); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3204,19 +3159,15 @@ function builtin_f32x4(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 4; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.f32, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.F32); - writeF32(getConstValueF32(expr), bytes, i << 2); + let expr = compiler.compileExpression(operands[i], Type.f32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeF32(getConstValueF32(precomp), bytes, i << 2); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3239,19 +3190,15 @@ function builtin_f64x2(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 2; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.f64, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.F64); - writeF64(getConstValueF64(expr), bytes, i << 3); + let expr = compiler.compileExpression(operands[i], Type.f64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeF64(getConstValueF64(precomp), bytes, i << 3); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3320,12 +3267,12 @@ function builtin_v128_extract_lane(ctx: BuiltinContext): ExpressionRef { var typeArguments = ctx.typeArguments!; var type = typeArguments[0]; var arg0 = compiler.compileExpression(operands[0], Type.v128, Constraints.CONV_IMPLICIT); - var arg1 = compiler.precomputeExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); + var arg1 = compiler.compileExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); compiler.currentType = type; var idx = 0; - if (getExpressionId(arg1) == ExpressionId.Const) { - assert(getExpressionType(arg1) == NativeType.I32); - idx = getConstValueI32(arg1); + var precomp = module.runExpression(arg1, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + idx = getConstValueI32(precomp); } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, @@ -3387,13 +3334,13 @@ function builtin_v128_replace_lane(ctx: BuiltinContext): ExpressionRef { var typeArguments = ctx.typeArguments!; var type = typeArguments[0]; var arg0 = compiler.compileExpression(operands[0], Type.v128, Constraints.CONV_IMPLICIT); - var arg1 = compiler.precomputeExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); + var arg1 = compiler.compileExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); var arg2 = compiler.compileExpression(operands[2], type, Constraints.CONV_IMPLICIT); compiler.currentType = Type.v128; var idx = 0; - if (getExpressionId(arg1) == ExpressionId.Const) { - assert(getExpressionType(arg1) == NativeType.I32); - idx = getConstValueI32(arg1); + var precomp = module.runExpression(arg1, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + idx = getConstValueI32(precomp); } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, @@ -3482,24 +3429,23 @@ function builtin_v128_shuffle(ctx: BuiltinContext): ExpressionRef { let maxIdx = (laneCount << 1) - 1; for (let i = 0; i < laneCount; ++i) { let operand = operands[2 + i]; - let argN = compiler.precomputeExpression(operand, Type.u8, Constraints.CONV_IMPLICIT); - if (getExpressionId(argN) != ExpressionId.Const) { + let argN = compiler.compileExpression(operand, Type.u8, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(argN, ExpressionRunnerFlags.PreserveSideeffects); + let idx = 0; + if (precomp) { + idx = getConstValueI32(precomp); + if (idx < 0 || idx > maxIdx) { + compiler.error( + DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, + operand.range, "Lane index", "0", maxIdx.toString() + ); + idx = 0; + } + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, operand.range ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(argN) == NativeType.I32); - let idx = getConstValueI32(argN); - if (idx < 0 || idx > maxIdx) { - compiler.error( - DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, - operand.range, "Lane index", "0", maxIdx.toString() - ); - compiler.currentType = Type.v128; - return module.unreachable(); } switch (laneWidth) { case 1: { @@ -8224,16 +8170,15 @@ function evaluateConstantType(ctx: BuiltinContext): Type | null { /** Evaluates a compile-time constant immediate offset argument.*/ function evaluateImmediateOffset(expression: Expression, compiler: Compiler): i32 { - var expr: ExpressionRef; + var module = compiler.module; var value: i32; if (compiler.options.isWasm64) { - expr = compiler.precomputeExpression(expression, Type.usize64, Constraints.CONV_IMPLICIT); - if ( - getExpressionId(expr) != ExpressionId.Const || - getExpressionType(expr) != NativeType.I64 || - getConstValueI64High(expr) != 0 || - (value = getConstValueI64Low(expr)) < 0 - ) { + let expr = compiler.compileExpression(expression, Type.usize64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getConstValueI64High(precomp) == 0); // TODO + value = getConstValueI64Low(precomp); + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, expression.range @@ -8241,12 +8186,11 @@ function evaluateImmediateOffset(expression: Expression, compiler: Compiler): i3 value = -1; } } else { - expr = compiler.precomputeExpression(expression, Type.usize32, Constraints.CONV_IMPLICIT); - if ( - getExpressionId(expr) != ExpressionId.Const || - getExpressionType(expr) != NativeType.I32 || - (value = getConstValueI32(expr)) < 0 - ) { + let expr = compiler.compileExpression(expression, Type.usize32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + value = getConstValueI32(precomp); + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, expression.range diff --git a/src/compiler.ts b/src/compiler.ts index 231e250aac..c764c8d967 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -48,7 +48,7 @@ import { getGlobalGetName, isGlobalMutable, createType, - hasSideEffects + ExpressionRunnerFlags } from "./module"; import { @@ -1056,10 +1056,15 @@ export class Compiler extends DiagnosticEmitter { // If not a constant, attempt to precompute if (getExpressionId(initExpr) != ExpressionId.Const) { if (isDeclaredConstant) { - let origInitExpr = initExpr; - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) initializeInStart = true; - if (this.skippedAutoreleases.has(origInitExpr)) this.skippedAutoreleases.add(initExpr); + if (getExpressionId(initExpr) != ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + initExpr = precomp; + } else { + initializeInStart = true; + } + } + if (this.skippedAutoreleases.has(initExpr)) this.skippedAutoreleases.add(initExpr); } else { initializeInStart = true; } @@ -1183,8 +1188,10 @@ export class Compiler extends DiagnosticEmitter { Constraints.CONV_IMPLICIT // autorelease is not applicable in i32 context ); if (getExpressionId(initExpr) != ExpressionId.Const) { - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + initExpr = precomp; + } else { if (element.is(CommonFlags.CONST)) { this.error( DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, @@ -1212,16 +1219,18 @@ export class Compiler extends DiagnosticEmitter { module.global_get(previousValue.internalName, NativeType.I32), module.i32(1) ); - } - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) { - if (element.is(CommonFlags.CONST)) { - this.error( - DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, - member.declaration.range - ); + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + initExpr = precomp; + } else { + if (element.is(CommonFlags.CONST)) { + this.error( + DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, + member.declaration.range + ); + } + initInStart = true; } - initInStart = true; } } this.currentFlow = previousFlow; @@ -2219,31 +2228,25 @@ export class Compiler extends DiagnosticEmitter { let condFlow = flow.fork(); this.currentFlow = condFlow; - let condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.i32), - this.currentType - ) + let condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.i32), + this.currentType ); - let condKind = evaluateConditionKind(condExpr); + let condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false if (condKind == ConditionKind.FALSE) { - if (hasSideEffects(condExpr)) { - bodyStmts.push( - module.drop(condExpr) - ); - } + bodyStmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, bodyStmts); flow.inherit(bodyFlow); // Terminate if condition is always true and body never breaks } else if (condKind == ConditionKind.TRUE && !bodyFlow.isAny(FlowFlags.BREAKS | FlowFlags.CONDITIONALLY_BREAKS)) { - if (hasSideEffects(condExpr)) { - bodyStmts.push( - module.drop(condExpr) - ); - } + bodyStmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, bodyStmts); bodyStmts.push( module.br(continueLabel) @@ -2369,21 +2372,17 @@ export class Compiler extends DiagnosticEmitter { var condKind: ConditionKind; var condition = statement.condition; if (condition) { - condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(condition, Type.bool), - this.currentType - ) + condExpr = this.makeIsTrueish( + this.compileExpression(condition, Type.bool), + this.currentType ); - condKind = evaluateConditionKind(condExpr); + condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false (body never runs) if (condKind == ConditionKind.FALSE) { - if (hasSideEffects(condExpr)) { - stmts.push( - module.drop(condExpr) - ); - } + stmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, stmts); condFlow.freeScopedLocals(); flow.inherit(condFlow); @@ -2532,37 +2531,27 @@ export class Compiler extends DiagnosticEmitter { // [autorelease] incl. condition // Precompute the condition (always executes) - var condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.bool), + this.currentType ); - var condKind = evaluateConditionKind(condExpr); + var condKind = this.evaluateCondition(condExpr); // Shortcut if the condition is constant switch (condKind) { case ConditionKind.TRUE: { - if (hasSideEffects(condExpr)) { - return module.block(null, [ - module.drop(condExpr), - this.compileStatement(ifTrue) - ]); - } - return this.compileStatement(ifTrue); + return module.block(null, [ + module.drop(condExpr), + this.compileStatement(ifTrue) + ]); } case ConditionKind.FALSE: { - if (hasSideEffects(condExpr)) { - return ifFalse - ? module.block(null, [ - module.drop(condExpr), - this.compileStatement(ifFalse) - ]) - : module.drop(condExpr); - } return ifFalse - ? this.compileStatement(ifFalse) - : module.nop(); + ? module.block(null, [ + module.drop(condExpr), + this.compileStatement(ifFalse) + ]) + : module.drop(condExpr); } } @@ -2918,8 +2907,9 @@ export class Compiler extends DiagnosticEmitter { let isStatic = false; if (isConst) { if (initExpr) { - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) == ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + initExpr = precomp; let local = new Local(name, -1, type, flow.parentFunction); switch (getExpressionType(initExpr)) { case NativeType.I32: { @@ -3117,16 +3107,17 @@ export class Compiler extends DiagnosticEmitter { // Precompute the condition var condFlow = flow.fork(); this.currentFlow = condFlow; - var condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.bool), + this.currentType ); - var condKind = evaluateConditionKind(condExpr); + var condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false (body never runs) if (condKind == ConditionKind.FALSE) { + stmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, stmts); assert(!flow.hasScopedLocals); outerFlow.popBreakLabel(); @@ -3410,17 +3401,6 @@ export class Compiler extends DiagnosticEmitter { return expr; } - /** Compiles and precomputes an expression, possibly yielding a costant value. */ - precomputeExpression( - expression: Expression, - contextualType: Type, - constraints: Constraints = Constraints.NONE - ): ExpressionRef { - return this.module.precomputeExpression( - this.compileExpression(expression, contextualType, constraints) - ); - } - /** Compiles an expression that is about to be returned, taking special care of retaining and setting flow states. */ private compileReturnedExpression( /** Expression to compile. */ @@ -8056,18 +8036,12 @@ export class Compiler extends DiagnosticEmitter { // instanceof - must be exact if (!expectedType.is(TypeFlags.REFERENCE)) { - return module.block(null, [ - module.drop(expr), - module.i32(actualType == expectedType ? 1 : 0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(actualType == expectedType ? 1 : 0)); } // instanceof - always false if (!actualType.is(TypeFlags.REFERENCE)) { - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } // both LHS and RHS are references now @@ -8128,10 +8102,7 @@ export class Compiler extends DiagnosticEmitter { // downcast - check statically if (actualType.isAssignableTo(expectedType)) { - return module.block(null, [ - this.convertExpression(expr, actualType, Type.void, false, false, expression.expression), - module.i32(1) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(1)); // upcast - check dynamically } else if (expectedType.isAssignableTo(actualType)) { @@ -8168,10 +8139,7 @@ export class Compiler extends DiagnosticEmitter { } // false - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } private makeInstanceofClass(expression: InstanceOfExpression, prototype: ClassPrototype): ExpressionRef { @@ -8201,10 +8169,7 @@ export class Compiler extends DiagnosticEmitter { // is just `true` } else { - return module.block(null, [ - module.drop(expr), - module.i32(1) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(1)); } // dynamic check against all possible concrete ids @@ -8215,10 +8180,7 @@ export class Compiler extends DiagnosticEmitter { } // false - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } private compileLiteralExpression( @@ -8338,19 +8300,20 @@ export class Compiler extends DiagnosticEmitter { var nativeElementType = elementType.toNativeType(); for (let i = 0; i < length; ++i) { let expression = expressions[i]; - let expr = expression - ? module.precomputeExpression( - this.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) - ) - : this.makeZero(elementType); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); + if (expression) { + let expr = this.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN + ); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + expr = precomp; + } else { + isStatic = false; + } + values[i] = expr; } else { - isStatic = false; + values[i] = this.makeZero(elementType); } - values[i] = expr; } // if the array is static, make a static arraybuffer segment @@ -8506,22 +8469,20 @@ export class Compiler extends DiagnosticEmitter { var isStatic = true; for (let i = 0; i < length; ++i) { let expression = expressions[i]; - let expr: ExpressionRef; if (expression) { - expr = module.precomputeExpression( - this.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) + let expr = this.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN ); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + expr = precomp; } else { isStatic = false; } + values[i] = expr; } else { - expr = this.makeZero(elementType); + values[i] = this.makeZero(elementType); } - values[i] = expr; } var isWasm64 = this.options.isWasm64; @@ -9111,21 +9072,23 @@ export class Compiler extends DiagnosticEmitter { ctxType: Type, constraints: Constraints ): ExpressionRef { + var module = this.module; var ifThen = expression.ifThen; var ifElse = expression.ifElse; - var condExpr = this.module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(expression.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(expression.condition, Type.bool), + this.currentType ); - // Try to eliminate unnecesssary branches if the condition is constant // FIXME: skips common denominator, inconsistently picking branch type - var condKind = evaluateConditionKind(condExpr); - if (condKind == ConditionKind.TRUE) return this.compileExpression(ifThen, ctxType); - if (condKind == ConditionKind.FALSE) return this.compileExpression(ifElse, ctxType); + var condKind = this.evaluateCondition(condExpr); + if (condKind == ConditionKind.TRUE) { + return module.maybeDropCondition(condExpr, this.compileExpression(ifThen, ctxType)); + } + if (condKind == ConditionKind.FALSE) { + return module.maybeDropCondition(condExpr, this.compileExpression(ifElse, ctxType)); + } var inheritedConstraints = constraints & Constraints.WILL_RETAIN; @@ -9151,7 +9114,7 @@ export class Compiler extends DiagnosticEmitter { ifElse.range, ifElseType.toString(), ifThenType.toString() ); this.currentType = ctxType; - return this.module.unreachable(); + return module.unreachable(); } ifThenExpr = this.convertExpression( ifThenExpr, @@ -9198,7 +9161,7 @@ export class Compiler extends DiagnosticEmitter { this.currentFlow = outerFlow; outerFlow.inheritMutual(ifThenFlow, ifElseFlow); - var expr = this.module.if(condExpr, ifThenExpr, ifElseExpr); + var expr = module.if(condExpr, ifThenExpr, ifElseExpr); assert(ifThenAutoreleaseSkipped == ifElseAutoreleaseSkipped); if (ifThenAutoreleaseSkipped) this.skippedAutoreleases.add(expr); return expr; @@ -9839,21 +9802,23 @@ export class Compiler extends DiagnosticEmitter { let element = this.resolver.lookupExpression(operand, this.currentFlow, Type.auto, ReportMode.SWALLOW); if (!element) { switch (operand.kind) { + case NodeKind.IDENTIFIER: break; // ignore error: typeof doesntExist -> undefined case NodeKind.PROPERTYACCESS: case NodeKind.ELEMENTACCESS: { operand = operand.kind == NodeKind.PROPERTYACCESS ? (operand).expression : (operand).expression; let targetType = this.resolver.resolveExpression(operand, this.currentFlow, Type.auto, ReportMode.REPORT); - if (!targetType) { + if (!targetType) { // access on non-object this.currentType = stringInstance.type; return this.module.unreachable(); } - expr = this.compileExpression(operand, Type.auto); // might have side-effects - break; + // fall-through + } + default: { + expr = this.compileExpression(operand, Type.auto); // may trigger an error + expr = this.convertExpression(expr, this.currentType, Type.void, true, false, operand); } - case NodeKind.IDENTIFIER: break; // ignore error - default: expr = this.compileExpression(operand, Type.auto); // trigger error } typeString = "undefined"; } else { @@ -10036,6 +10001,18 @@ export class Compiler extends DiagnosticEmitter { return supported; } + /** Evaluates a boolean condition, determining whether it is TRUE, FALSE or UNKNOWN. */ + evaluateCondition(expr: ExpressionRef): ConditionKind { + var module = this.module; + var evaled = module.runExpression(expr, ExpressionRunnerFlags.Default); + if (evaled) { + return getConstValueI32(evaled) + ? ConditionKind.TRUE + : ConditionKind.FALSE; + } + return ConditionKind.UNKNOWN; + } + // === Specialized code generation ============================================================== /** Makes a constant zero of the specified type. */ @@ -10419,14 +10396,3 @@ function mangleImportName( var mangleImportName_moduleName: string; var mangleImportName_elementName: string; - -/** Evaluates the kind of a boolean condition from its expression. */ -function evaluateConditionKind(expr: ExpressionRef): ConditionKind { - assert(getExpressionType(expr) == NativeType.I32 || getExpressionType(expr) == NativeType.Unreachable); - if (getExpressionId(expr) == ExpressionId.Const) { - return getConstValueI32(expr) - ? ConditionKind.TRUE - : ConditionKind.FALSE; - } - return ConditionKind.UNKNOWN; -} diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 132f0e6b60..87724a49b1 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -809,6 +809,17 @@ export declare function _RelooperAddBlockWithSwitch(relooper: BinaryenRelooperRe export declare function _RelooperAddBranchForSwitch(from: BinaryenRelooperBlockRef, to: BinaryenRelooperBlockRef, indexes: usize, numIndexes: BinaryenIndex, code: BinaryenExpressionRef): void; export declare function _RelooperRenderAndDispose(relooper: BinaryenRelooperRef, entry: BinaryenRelooperBlockRef, labelHelper: BinaryenIndex): BinaryenExpressionRef; +type BinaryenExpressionRunnerRef = usize; +type BinaryenExpressionRunnerFlags = u32; + +export declare function _ExpressionRunnerFlagsDefault(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerFlagsPreserveSideeffects(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerFlagsTraverseCalls(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerCreate(module: BinaryenModuleRef, flags: BinaryenExpressionRunnerFlags, maxDepth: BinaryenIndex, maxLoopIterations: BinaryenIndex): BinaryenExpressionRunnerRef; +export declare function _ExpressionRunnerSetLocalValue(runner: BinaryenExpressionRunnerRef, index: BinaryenIndex, value: BinaryenExpressionRef): bool; +export declare function _ExpressionRunnerSetGlobalValue(runner: BinaryenExpressionRunnerRef, name: usize, value: BinaryenExpressionRef): bool; +export declare function _ExpressionRunnerRunAndDispose(runner: BinaryenExpressionRunnerRef, expr: BinaryenExpressionRef): BinaryenExpressionRef; + export declare function _BinaryenGetOptimizeLevel(): i32; export declare function _BinaryenSetOptimizeLevel(level: i32): void; export declare function _BinaryenGetShrinkLevel(): i32; diff --git a/src/module.ts b/src/module.ts index f0337460c1..aa63cb31e6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -475,6 +475,12 @@ export enum SIMDLoadOp { LoadU32ToU64x2 = 9 /* _BinaryenLoadExtUVec32x2ToVecI64x2 */ } +export enum ExpressionRunnerFlags { + Default = 0 /* _ExpressionRunnerFlagsDefault */, + PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */, + TraverseCalls = 2 /* _ExpressionRunnerFlagsTraverseCalls */ +} + export class MemorySegment { buffer: Uint8Array; @@ -754,6 +760,20 @@ export class Module { return binaryen._BinaryenDrop(this.ref, expression); } + maybeDropCondition(condition: ExpressionRef, result: ExpressionRef): ExpressionRef { + // FIXME: This is necessary because Binaryen's ExpressionRunner bails early + // when encountering a local with an unknown value. This helper only drops + // the pre-evaluated condition if it has relevant side effects. + // see WebAssembly/binaryen#1237 + if ((getSideEffects(condition) & ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal)) != 0) { + return this.block(null, [ + this.drop(condition), + result + ], getExpressionType(result)); + } + return result; + } + loop( label: string | null, body: ExpressionRef @@ -1601,41 +1621,6 @@ export class Module { } } - private cachedPrecomputeNames: usize = 0; - - precomputeExpression(expr: ExpressionRef): ExpressionRef { - // remember the previous optimize levels and set to max instead, to be sure - var previousOptimizeLevel = binaryen._BinaryenGetOptimizeLevel(); - var previousShrinkLevel = binaryen._BinaryenGetShrinkLevel(); - var previousDebugInfo = binaryen._BinaryenGetDebugInfo(); - binaryen._BinaryenSetOptimizeLevel(4); - binaryen._BinaryenSetShrinkLevel(0); - binaryen._BinaryenSetDebugInfo(false); - - // wrap the expression in a temp. function and run the precompute pass on it - var type = binaryen._BinaryenExpressionGetType(expr); - var func = this.addTemporaryFunction(type, null, expr); - var names = this.cachedPrecomputeNames; - if (!names) { - this.cachedPrecomputeNames = names = allocPtrArray([ - this.allocStringCached("vacuum"), - this.allocStringCached("precompute") - ]); - } - binaryen._BinaryenFunctionRunPasses(func, this.ref, names, 2); - expr = binaryen._BinaryenFunctionGetBody(func); - if (binaryen._BinaryenExpressionGetId(expr) == ExpressionId.Return) { - expr = binaryen._BinaryenReturnGetValue(expr); - } - this.removeTemporaryFunction(); - - // reset optimize levels to previous - binaryen._BinaryenSetOptimizeLevel(previousOptimizeLevel); - binaryen._BinaryenSetShrinkLevel(previousShrinkLevel); - binaryen._BinaryenSetDebugInfo(previousDebugInfo); - return expr; - } - validate(): bool { return binaryen._BinaryenModuleValidate(this.ref) == 1; } @@ -1691,8 +1676,6 @@ export class Module { } this.cachedStrings = new Map(); binaryen._free(this.lit); - binaryen._free(this.cachedPrecomputeNames); - this.cachedPrecomputeNames = 0; binaryen._BinaryenModuleDispose(this.ref); this.ref = 0; } @@ -1795,6 +1778,16 @@ export class Module { return 0; } + runExpression(expr: ExpressionRef, flags: ExpressionRunnerFlags, maxDepth: i32 = 50, maxLoopIterations: i32 = 1): ExpressionRef { + var runner = binaryen._ExpressionRunnerCreate(this.ref, flags, maxDepth, maxLoopIterations); + var precomp = binaryen._ExpressionRunnerRunAndDispose(runner, expr); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + assert(getExpressionType(precomp) == getExpressionType(expr)); + } + return precomp; + } + // source map generation addDebugInfoFile(name: string): Index { @@ -2159,7 +2152,7 @@ export enum SideEffects { ImplicitTrap = 256 /* _BinaryenSideEffectImplicitTrap */, IsAtomic = 512 /* _BinaryenSideEffectIsAtomic */, Throws = 1024 /* _BinaryenSideEffectThrows */, - Any = 2047 /* _BinaryenSideEffectAny */, + Any = 2047 /* _BinaryenSideEffectAny */ } export function getSideEffects(expr: ExpressionRef, features: FeatureFlags = FeatureFlags.All): SideEffects { diff --git a/tests/compiler/ReturnType.untouched.wat b/tests/compiler/ReturnType.untouched.wat index bffe105a3d..d37e1f0a8a 100644 --- a/tests/compiler/ReturnType.untouched.wat +++ b/tests/compiler/ReturnType.untouched.wat @@ -1,5 +1,32 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:ReturnType + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 1 + drop + i32.const 16 + i32.const 16 + i32.eq + drop + ) + (func $~start + call $start:ReturnType + ) ) diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index 2eb1b383cc..783df6b6c0 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -131,6 +131,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -197,6 +202,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $assert-nonnull/testElem (param $0 i32) (result i32) diff --git a/tests/compiler/assert.untouched.wat b/tests/compiler/assert.untouched.wat index bffe105a3d..e58de52514 100644 --- a/tests/compiler/assert.untouched.wat +++ b/tests/compiler/assert.untouched.wat @@ -1,5 +1,35 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:assert + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 0 + i32.gt_u + drop + f64.const 0.5 + drop + f64.const 0.5 + f64.const 0.4 + f64.gt + drop + i64.const 4294967296 + drop + i64.const 4294967296 + i64.const 1 + i64.gt_s + drop + i32.const 1 + i32.eqz + drop + ) + (func $~start + call $start:assert + ) ) diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index 04c9b998d0..75abfb6ac0 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -114,6 +114,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -138,7 +142,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -148,7 +154,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -159,7 +167,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -235,7 +245,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -264,14 +276,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -345,7 +361,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -416,7 +434,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -1302,6 +1322,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -1320,7 +1344,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -1329,7 +1355,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -1357,7 +1387,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -1365,7 +1397,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -1377,7 +1411,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -1386,7 +1422,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -1409,7 +1447,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -1437,14 +1479,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -1510,7 +1556,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index 6198203d17..08f3bf7d0a 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -135,6 +135,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -322,6 +326,98 @@ (local $7 i32) (local $8 i32) i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 i32.clz drop i32.const 1 @@ -595,30 +691,14 @@ f32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 104 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.tee $4 local.get $4 f32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 105 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 1.25 local.tee $4 local.get $4 @@ -627,15 +707,7 @@ f32.eq i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 106 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const inf local.tee $4 local.get $4 @@ -644,16 +716,9 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -inf + drop + f32.const inf + f32.neg local.tee $4 local.get $4 f32.sub @@ -661,15 +726,7 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 108 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.tee $4 local.get $4 @@ -678,15 +735,7 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 109 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 global.set $builtins/f f32.const inf @@ -777,30 +826,14 @@ f64.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 f64.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 141 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 1.25 local.tee $5 local.get $5 @@ -809,15 +842,7 @@ f64.eq i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 142 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.tee $5 local.get $5 @@ -826,16 +851,9 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -inf + drop + f64.const inf + f64.neg local.tee $5 local.get $5 f64.sub @@ -843,15 +861,7 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 144 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 @@ -860,15 +870,7 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 145 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 global.set $builtins/F f64.const inf @@ -1167,68 +1169,128 @@ if unreachable end + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq drop i32.const 4 drop - f32.const nan:0x400000 - local.tee $4 - local.get $4 - f32.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 296 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - local.tee $5 - local.get $5 - f64.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 297 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const nan:0x400000 - local.tee $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 298 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const inf + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 4 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.ne + drop + f32.const nan:0x400000 + local.tee $4 + local.get $4 + f32.ne + drop + f64.const nan:0x8000000000000 + local.tee $5 + local.get $5 + f64.ne + drop + f32.const nan:0x400000 local.tee $4 local.get $4 f32.sub f32.const 0 f32.eq i32.eqz + drop + f32.const inf + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 299 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 @@ -1236,15 +1298,7 @@ f64.const 0 f64.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 300 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.tee $5 local.get $5 @@ -1252,45 +1306,157 @@ f64.const 0 f64.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 301 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 0 local.tee $4 local.get $4 f32.sub f32.const 0 f32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 302 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 0 local.tee $5 local.get $5 f64.sub f64.const 0 f64.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 303 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop + global.get $~lib/builtins/i8.MIN_VALUE + i32.const 128 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + drop + global.get $~lib/builtins/i8.MAX_VALUE + i32.const 127 + i32.eq + drop + global.get $~lib/builtins/i16.MIN_VALUE + i32.const 32768 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + drop + global.get $~lib/builtins/i16.MAX_VALUE + i32.const 32767 + i32.eq + drop + global.get $~lib/builtins/i32.MIN_VALUE + i32.const -2147483648 + i32.eq + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32.const 2147483647 + i32.eq + drop + global.get $~lib/builtins/i64.MIN_VALUE + i64.const -9223372036854775808 + i64.eq + drop + global.get $~lib/builtins/i64.MAX_VALUE + i64.const 9223372036854775807 + i64.eq + drop + global.get $~lib/builtins/u8.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u8.MAX_VALUE + i32.const 255 + i32.eq + drop + global.get $~lib/builtins/u16.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u16.MAX_VALUE + i32.const 65535 + i32.eq + drop + global.get $~lib/builtins/u32.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u32.MAX_VALUE + i32.const -1 + i32.eq + drop + global.get $~lib/builtins/u64.MIN_VALUE + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/u64.MAX_VALUE + i64.const -1 + i64.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/f32.MIN_NORMAL_VALUE + f32.const 1.1754943508222875e-38 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_VALUE + f32.const 1.401298464324817e-45 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.const 3402823466385288598117041e14 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const -16777215 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 16777215 + f32.eq + drop + global.get $~lib/builtins/f32.EPSILON + f32.const 1.1920928955078125e-07 + f32.eq + drop + global.get $~lib/builtins/f64.MIN_NORMAL_VALUE + f64.const 2.2250738585072014e-308 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_VALUE + f64.const 5e-324 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.const 1797693134862315708145274e284 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const -9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.EPSILON + f64.const 2.220446049250313e-16 + f64.eq + drop f32.const 1 f32.abs drop @@ -1868,6 +2034,72 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop ) (func $builtins/test nop diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index d328c74c1b..47aaa05b28 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 7629cefc33..32445315c1 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -38,6 +38,10 @@ f32.add ) (func $start:class + i32.const 4 + i32.const 4 + i32.eq + drop global.get $class/Animal.ONE drop i32.const 1 @@ -220,6 +224,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -247,6 +253,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -447,7 +457,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index 6165efdd0c..71ba7e00db 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -117,6 +117,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 6ac3f96e18..418a287303 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -263,6 +263,8 @@ local.get $0 return end + i32.const 1 + drop br $do-continue|0 end unreachable @@ -276,6 +278,8 @@ i32.const 1 i32.add local.set $0 + i32.const 0 + drop end local.get $0 i32.const 1 @@ -450,6 +454,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -468,6 +474,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -520,6 +528,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -659,6 +669,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -672,6 +684,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -765,6 +779,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -821,6 +837,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -840,6 +858,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -894,6 +914,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1004,6 +1026,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1041,6 +1065,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1072,6 +1098,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1092,7 +1120,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1286,6 +1318,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1387,6 +1421,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1459,6 +1495,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1517,6 +1555,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1601,6 +1641,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1623,7 +1665,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1692,6 +1736,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1715,9 +1761,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1734,6 +1784,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1753,6 +1805,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1765,9 +1819,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1796,6 +1854,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1814,12 +1874,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1836,8 +1900,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2206,6 +2274,8 @@ call $start:do ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2221,6 +2291,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2234,8 +2306,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2259,6 +2335,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2276,6 +2356,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2288,6 +2370,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2308,6 +2392,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index c8c364dc88..413f87254b 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -163,6 +163,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index c49acc99ab..fd84213021 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -51,6 +51,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -69,6 +71,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -121,6 +125,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -260,6 +266,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -273,6 +281,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -366,6 +376,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -422,6 +434,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -441,6 +455,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -495,6 +511,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -605,6 +623,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -642,6 +662,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -673,6 +695,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -693,7 +717,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -887,6 +915,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -988,6 +1018,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1060,6 +1092,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1118,6 +1152,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1202,6 +1238,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1224,7 +1262,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1293,6 +1333,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1316,9 +1358,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1335,6 +1381,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1354,6 +1402,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1366,9 +1416,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1397,6 +1451,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1413,12 +1469,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1435,6 +1495,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1527,7 +1591,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -2587,6 +2653,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2612,6 +2682,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2707,6 +2781,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2801,6 +2879,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2817,7 +2897,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -2912,6 +2994,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 0 + drop local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock @@ -2943,6 +3027,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -3227,6 +3315,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3387,6 +3477,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + i32.const 0 + drop global.get $~lib/rt/pure/ROOTS local.set $0 local.get $0 @@ -3581,12 +3673,16 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 + i32.const 0 + drop local.get $5 local.get $0 local.get $1 call $~lib/memory/memory.copy local.get $0 if + i32.const 0 + drop local.get $0 call $~lib/rt/tlsf/__free end @@ -3631,6 +3727,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3654,6 +3754,8 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 0 + drop local.get $1 i32.const -2147483648 i32.and @@ -3672,6 +3774,8 @@ i32.store offset=4 end else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3684,6 +3788,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + drop local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo @@ -3732,6 +3838,8 @@ if return end + i32.const 0 + drop local.get $0 i32.const 16 i32.sub @@ -3771,6 +3879,8 @@ call $~lib/rt/pure/decrement br $break|0 end + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 268435455 @@ -3804,12 +3914,16 @@ i32.load offset=4 local.set $3 local.get $3 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $3 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -3841,6 +3955,8 @@ call $~lib/rt/pure/collectWhite br $break|0 end + i32.const 1 + drop i32.const 0 i32.eqz if @@ -3858,6 +3974,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -3901,6 +4019,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat index d339b0a852..06d2040bd3 100644 --- a/tests/compiler/extends-recursive.untouched.wat +++ b/tests/compiler/extends-recursive.untouched.wat @@ -111,6 +111,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/features/simd.untouched.wat b/tests/compiler/features/simd.untouched.wat index 3da8c034f5..acc103cd20 100644 --- a/tests/compiler/features/simd.untouched.wat +++ b/tests/compiler/features/simd.untouched.wat @@ -115,6 +115,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -152,6 +154,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -178,6 +182,65 @@ ) (func $features/simd/test_v128 (local $0 i32) + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030202 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.ne + i8x16.any_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.and + v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.or + v128.const i32x4 0x05030301 0x09070705 0x0d0b0b09 0x110f0f0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.xor + v128.const i32x4 0x05020300 0x09060704 0x0d0a0b08 0x110e0f0c + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.not + v128.const i32x4 0xfbfcfdfe 0xf7f8f9fa 0xf3f4f5f6 0xeff0f1f2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x0d0e0f10 0x090a0b0c 0x05060708 0x01020304 + v128.const i32x4 0xff00ff00 0xff00ff00 0xff00ff00 0xff00ff00 + v128.bitselect + v128.const i32x4 0x040e0210 0x080a060c 0x0c060a08 0x10020e04 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop i32.const 64 i32.const 0 call $~lib/rt/stub/__alloc @@ -285,6 +348,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_s + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_u + v128.const i32x4 0x007f0000 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_s + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_u + v128.const i32x4 0x00807f80 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04040201 0x08070605 0x0c0b0a09 0xff800e0d + v128.const i32x4 0x04020401 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.avgr_u + v128.const i32x4 0x04030301 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i8x16.neg v128.const i32x4 0xfcfdfeff 0xf8f9fafb 0xf4f5f6f7 0x81f1f2f3 @@ -384,6 +492,98 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7f7f7f7e 0x7f7f7f7f 0x7f7f7f7f 0x7f7f7f7f + i32.const 2 + i8x16.splat + i8x16.add_saturate_s + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i8x16.splat + i8x16.add_saturate_u + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80808081 0x80808080 0x80808080 0x80808080 + i32.const 2 + i8x16.splat + i8x16.sub_saturate_s + i32.const -128 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i8x16.splat + i8x16.sub_saturate_u + i32.const 0 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i8x16.splat + i32.const 1 + i8x16.shl + i32.const 2 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i8x16.splat + i32.const 1 + i8x16.shr_s + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 1 + i8x16.shr_u + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i8x16.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i8x16.splat + i8x16.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i8x16.splat i32.const 1 @@ -569,6 +769,30 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_s + global.get $~lib/builtins/i8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_u + global.get $~lib/builtins/u8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_i16x8 (local $0 v128) @@ -666,6 +890,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_s + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_u + v128.const i32x4 0x00000000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_s + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_u + v128.const i32x4 0x7fff8000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040004 0x00060005 0xffff8000 + v128.const i32x4 0x00040001 0x00040002 0x00060005 0xffff8000 + i16x8.avgr_u + v128.const i32x4 0x00030001 0x00040003 0x00060005 0xffff8000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i16x8.neg v128.const i32x4 0xfffeffff 0xfffcfffd 0xfffafffb 0x8001fff9 @@ -765,6 +1034,98 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7fff7ffe 0x7fff7fff 0x7fff7fff 0x7fff7fff + i32.const 2 + i16x8.splat + i16x8.add_saturate_s + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i16x8.splat + i16x8.add_saturate_u + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80008001 0x80008000 0x80008000 0x80008000 + i32.const 2 + i16x8.splat + i16x8.sub_saturate_s + i32.const -32768 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i16x8.splat + i16x8.sub_saturate_u + i32.const 0 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i16x8.splat + i32.const 1 + i16x8.shl + i32.const 2 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i16x8.splat + i32.const 1 + i16x8.shr_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 1 + i16x8.shr_u + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i16x8.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i16x8.splat + i16x8.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i16x8.splat i32.const 1 @@ -950,6 +1311,78 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_s + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_u + global.get $~lib/builtins/u16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.widen_low_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.widen_low_i8x16_u + i32.const 255 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.widen_high_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.widen_high_i8x16_u + i32.const 255 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_i32x4 (local $0 v128) @@ -1047,6 +1480,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_s + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_u + v128.const i32x4 0x00000000 0x00000000 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_s + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_u + v128.const i32x4 0x80000000 0x7fffffff 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040003 0x0003ffff 0x00000000 + v128.const i32x4 0x00060005 0x00080007 0xffff0002 0x00000000 + i32x4.dot_i16x8_s + v128.const i32x4 0x00000011 0x00000035 0xfffffffb 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i32x4.neg v128.const i32x4 0xffffffff 0xfffffffe 0xfffffffd 0x80000001 @@ -1123,6 +1601,54 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32x4.splat + i32.const 1 + i32x4.shl + i32.const 2 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i32x4.splat + i32.const 1 + i32x4.shr_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + i32.const 1 + i32x4.shr_u + i32.const 2147483647 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32x4.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i32x4.splat + i32x4.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i32x4.splat i32.const 1 @@ -1308,6 +1834,74 @@ call $~lib/builtins/abort unreachable end + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_u + i32.const 0 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.widen_low_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.widen_low_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.widen_high_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.widen_high_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_i64x2 (local $0 v128) @@ -1460,6 +2054,74 @@ call $~lib/builtins/abort unreachable end + i64.const 1 + i64x2.splat + i32.const 1 + i64x2.shl + i64.const 2 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -2 + i64x2.splat + i32.const 1 + i64x2.shr_s + i64.const -1 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + i32.const 1 + i64x2.shr_u + i64.const 9223372036854775807 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i64x2.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i64.const 1 + i64x2.splat + i64x2.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const -1.5 + f64x2.splat + i64x2.trunc_sat_f64x2_s + i64.const -1 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + f64.const -1.5 + f64x2.splat + i64x2.trunc_sat_f64x2_u + i64.const 0 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_f32x4 (local $0 v128) @@ -1838,6 +2500,34 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x40800000 0x41100000 0x41800000 0x41c80000 + f32x4.sqrt + v128.const i32x4 0x40000000 0x40400000 0x40800000 0x40a00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_s + f32.const -1 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_u + f32.const 4294967296 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_f64x2 (local $0 v128) @@ -2216,6 +2906,34 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x00000000 0x40100000 0x00000000 0x40220000 + f64x2.sqrt + v128.const i32x4 0x00000000 0x40000000 0x00000000 0x40080000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + f64x2.convert_i64x2_s + f64.const -1 + f64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + f64x2.convert_i64x2_u + f64.const 18446744073709551615 + f64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_v8x16 (local $0 v128) @@ -2282,6 +3000,8 @@ global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset + i32.const 1 + drop call $features/simd/test_v128 call $features/simd/test_i8x16 call $features/simd/test_i16x8 diff --git a/tests/compiler/features/threads.untouched.wat b/tests/compiler/features/threads.untouched.wat index 26e079d034..90f6187e5a 100644 --- a/tests/compiler/features/threads.untouched.wat +++ b/tests/compiler/features/threads.untouched.wat @@ -535,6 +535,8 @@ drop ) (func $start:features/threads + i32.const 1 + drop call $features/threads/testAtomic call $features/threads/testAtomicAsm ) diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index c98250b8b0..78c447d516 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -250,6 +250,8 @@ global.set $for/ran ) (func $for/testAlwaysFalse + i32.const 0 + drop i32.const 1 global.set $for/ran ) @@ -465,6 +467,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -483,6 +487,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -535,6 +541,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -674,6 +682,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -687,6 +697,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -780,6 +792,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -836,6 +850,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -855,6 +871,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -909,6 +927,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1019,6 +1039,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1056,6 +1078,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1087,6 +1111,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1107,7 +1133,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1301,6 +1331,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1402,6 +1434,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1474,6 +1508,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1532,6 +1568,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1616,6 +1654,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1638,7 +1678,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1707,6 +1749,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1730,9 +1774,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1749,6 +1797,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1768,6 +1818,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1780,9 +1832,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1811,6 +1867,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1829,12 +1887,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1851,8 +1913,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2253,6 +2319,8 @@ call $start:for ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2268,6 +2336,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2281,8 +2351,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2306,6 +2380,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2323,6 +2401,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2335,6 +2415,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2355,6 +2437,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index 7757d0fdc9..db459a3102 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -111,6 +111,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index 3c51790f0d..0bf24f8ead 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -55,6 +55,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -73,6 +75,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -125,6 +129,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -264,6 +270,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -277,6 +285,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -370,6 +380,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -426,6 +438,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -445,6 +459,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -499,6 +515,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -609,6 +627,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -646,6 +666,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -677,6 +699,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -697,7 +721,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -891,6 +919,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -992,6 +1022,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1064,6 +1096,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1122,6 +1156,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1206,6 +1242,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1228,7 +1266,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1297,6 +1337,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1320,9 +1362,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1339,6 +1385,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1358,6 +1406,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1370,9 +1420,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1401,6 +1455,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1419,12 +1475,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1441,8 +1501,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1550,6 +1614,8 @@ i32.store ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1565,6 +1631,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1578,8 +1646,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1603,6 +1675,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1620,6 +1696,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1632,6 +1710,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1652,6 +1732,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/indexof-valueof.untouched.wat b/tests/compiler/indexof-valueof.untouched.wat index bffe105a3d..ec0868b667 100644 --- a/tests/compiler/indexof-valueof.untouched.wat +++ b/tests/compiler/indexof-valueof.untouched.wat @@ -1,5 +1,98 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:indexof-valueof + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + ) + (func $~start + call $start:indexof-valueof + ) ) diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index 2952d539b4..3858de811f 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -131,6 +131,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1185,6 +1187,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1210,6 +1216,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1305,6 +1315,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1463,6 +1477,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/stub/__release (param $0 i32) @@ -1495,6 +1511,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1524,6 +1542,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f32) @@ -1553,6 +1573,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $infer-array/Ref#constructor (param $0 i32) (result i32) @@ -1595,6 +1617,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1625,6 +1652,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1654,6 +1686,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1684,6 +1718,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -1721,6 +1760,10 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 1 + drop local.get $1 call $~lib/rt/stub/__release i32.const 3 @@ -1730,6 +1773,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release i32.const 2 @@ -1739,6 +1784,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $1 i32.const 1 call $~lib/array/Array#__get @@ -1762,6 +1812,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release i32.const 3 @@ -1771,6 +1823,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop local.get $1 i32.const 1 call $~lib/array/Array#__get @@ -1803,6 +1857,8 @@ i32.store offset=4 local.get $3 local.set $4 + i32.const 1 + drop local.get $1 call $~lib/rt/stub/__release local.get $0 @@ -1837,6 +1893,8 @@ i32.store offset=4 local.get $0 local.set $1 + i32.const 1 + drop local.get $3 call $~lib/rt/stub/__release local.get $4 @@ -1868,6 +1926,8 @@ i32.store offset=4 local.get $1 local.set $4 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release local.get $4 @@ -1881,6 +1941,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop local.get $4 call $~lib/rt/stub/__release local.get $1 @@ -1892,6 +1954,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 2 i32.const 2 i32.const 10 @@ -1899,6 +1966,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $0 @@ -1910,6 +1982,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 2 i32.const 2 i32.const 3 @@ -1917,6 +1994,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $1 @@ -1949,6 +2031,11 @@ i32.store offset=4 local.get $1 local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $1 diff --git a/tests/compiler/infer-type.untouched.wat b/tests/compiler/infer-type.untouched.wat index 15d6796415..b9097d3c32 100644 --- a/tests/compiler/infer-type.untouched.wat +++ b/tests/compiler/infer-type.untouched.wat @@ -94,6 +94,11 @@ br $for-loop|0 end end + i32.const 0 + i32.eqz + drop + i32.const 1 + drop ) (func $~start call $start:infer-type diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 1d3f358673..be17ca72c0 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -71,15 +71,7 @@ end i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop block $inlining/func_ii|inlined.1 (result i32) i32.const 41 local.set $2 @@ -101,15 +93,7 @@ end i32.const 2 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop block $inlining/func_ii|inlined.2 (result i32) i32.const 43 local.set $2 @@ -131,47 +115,25 @@ end i32.const 3 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 0 local.set $2 local.get $2 i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 1 local.set $2 local.get $2 i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 2 local.set $2 local.get $2 local.set $3 + i32.const 1 + drop local.get $3 local.set $5 local.get $5 @@ -183,19 +145,13 @@ local.get $4 i32.const 3 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 3 local.set $5 local.get $5 local.set $4 + i32.const 1 + drop local.get $4 local.set $2 local.get $2 @@ -207,15 +163,7 @@ local.get $3 i32.const 4 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 0 local.set $2 i32.const 1 @@ -243,15 +191,7 @@ i32.add i32.const 44 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 123 call $~lib/rt/stub/__retain local.set $7 @@ -376,6 +316,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index d053a6b88f..67f434a05b 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -113,6 +113,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -195,9 +197,18 @@ i32.const 0 call $instanceof-class/Child#constructor global.set $instanceof-class/a + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 0 call $instanceof-class/Child#constructor global.set $instanceof-class/b + i32.const 1 + drop global.get $instanceof-class/b call $instanceof-class/Child~instanceof i32.eqz @@ -209,6 +220,9 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.eqz + drop ) (func $~start call $start:instanceof-class diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index 35a785e0fa..50638d990a 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -18,18 +18,26 @@ (export "memory" (memory $0)) (start $~start) (func $instanceof/isI32 (param $0 i32) (result i32) + i32.const 1 + drop i32.const 1 return ) (func $instanceof/isI32 (param $0 f64) (result i32) + i32.const 0 + drop i32.const 0 return ) (func $instanceof/isI32 (param $0 i32) (result i32) + i32.const 0 + drop i32.const 0 return ) (func $instanceof/isI32 (param $0 i32) (result i32) + i32.const 0 + drop i32.const 0 return ) @@ -42,6 +50,104 @@ (func $start:instanceof (local $0 i32) (local $1 i32) + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop i32.const 0 call $instanceof/isI32 i32.eqz @@ -103,6 +209,8 @@ unreachable end i32.const 1 + drop + i32.const 1 local.tee $0 global.get $instanceof/an local.tee $1 @@ -128,6 +236,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop ) (func $~start call $start:instanceof diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index e6dc651dce..ababb570f7 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -41,6 +41,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -59,6 +61,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -111,6 +115,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -250,6 +256,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -263,6 +271,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -356,6 +366,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -412,6 +424,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -431,6 +445,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -485,6 +501,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -595,6 +613,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -632,6 +652,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -663,6 +685,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -683,7 +707,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -877,6 +905,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -978,6 +1008,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1050,6 +1082,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1108,6 +1142,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1192,6 +1228,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1214,7 +1252,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1283,6 +1323,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1306,9 +1348,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1325,6 +1371,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1344,6 +1392,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1356,9 +1406,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1387,6 +1441,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1405,12 +1461,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1427,8 +1487,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1534,6 +1598,8 @@ call $start:issues/1095 ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1549,6 +1615,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1562,8 +1630,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1587,6 +1659,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1604,6 +1680,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1616,6 +1694,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1636,6 +1716,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index eba2e0cb29..1c3c6de678 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -43,6 +43,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -61,6 +63,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -113,6 +117,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -252,6 +258,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -265,6 +273,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -358,6 +368,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -414,6 +426,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -433,6 +447,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -487,6 +503,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -597,6 +615,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -634,6 +654,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -665,6 +687,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -685,7 +709,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -879,6 +907,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -980,6 +1010,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1052,6 +1084,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1110,6 +1144,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1194,6 +1230,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1216,7 +1254,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1285,6 +1325,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1308,9 +1350,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1327,6 +1373,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1346,6 +1394,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1358,9 +1408,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1389,6 +1443,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1407,12 +1463,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1429,8 +1489,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1798,6 +1862,8 @@ call $start:managed-cast ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1813,6 +1879,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1826,8 +1894,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1851,6 +1923,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1868,6 +1944,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1880,6 +1958,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1900,6 +1980,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/mandelbrot.untouched.wat b/tests/compiler/mandelbrot.untouched.wat index 66d510daf2..6a01c07979 100644 --- a/tests/compiler/mandelbrot.untouched.wat +++ b/tests/compiler/mandelbrot.untouched.wat @@ -30,6 +30,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -39,7 +43,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -149,7 +155,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -166,7 +174,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -254,14 +263,18 @@ local.set $9 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 @@ -353,6 +366,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -362,7 +379,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -466,7 +485,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index 4021295786..73835e9b4b 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -1069,7 +1069,9 @@ call $memcpy/memcpy global.set $memcpy/dest global.get $memcpy/dest - i32.const 9 + global.get $memcpy/base + i32.const 1 + i32.add i32.eq i32.eqz if @@ -1080,7 +1082,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memcpy/base i64.load i64.const 1229783084848853777 i64.eq @@ -1099,7 +1101,7 @@ call $memcpy/memcpy global.set $memcpy/dest global.get $memcpy/dest - i32.const 8 + global.get $memcpy/base i32.eq i32.eqz if @@ -1110,7 +1112,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memcpy/base i64.load i64.const 1229783084848853777 i64.eq @@ -1123,7 +1125,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memcpy/base + i32.const 8 + i32.add i64.load i64.const 2459565876494606882 i64.eq @@ -1136,7 +1140,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memcpy/base + i32.const 16 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -1149,7 +1155,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memcpy/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq @@ -1171,7 +1179,7 @@ i32.const 3 call $memcpy/memcpy global.set $memcpy/dest - i32.const 8 + global.get $memcpy/base i64.load i64.const 4919131679688438545 i64.eq @@ -1193,7 +1201,7 @@ i32.const 15 call $memcpy/memcpy global.set $memcpy/dest - i32.const 8 + global.get $memcpy/base i64.load i64.const 4919131679688438545 i64.eq @@ -1206,7 +1214,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memcpy/base + i32.const 8 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -1219,7 +1229,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memcpy/base + i32.const 16 + i32.add i64.load i64.const 3694152654344438852 i64.eq @@ -1232,7 +1244,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memcpy/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index fc894c6dbc..80fd6c4623 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -234,7 +234,9 @@ call $memmove/memmove global.set $memmove/dest global.get $memmove/dest - i32.const 9 + global.get $memmove/base + i32.const 1 + i32.add i32.eq i32.eqz if @@ -245,7 +247,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memmove/base i64.load i64.const 1229783084848853777 i64.eq @@ -264,7 +266,7 @@ call $memmove/memmove global.set $memmove/dest global.get $memmove/dest - i32.const 8 + global.get $memmove/base i32.eq i32.eqz if @@ -275,7 +277,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memmove/base i64.load i64.const 1229783084848853777 i64.eq @@ -288,7 +290,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memmove/base + i32.const 8 + i32.add i64.load i64.const 2459565876494606882 i64.eq @@ -301,7 +305,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memmove/base + i32.const 16 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -314,7 +320,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memmove/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq @@ -336,7 +344,7 @@ i32.const 3 call $memmove/memmove global.set $memmove/dest - i32.const 8 + global.get $memmove/base i64.load i64.const 4919131679688438545 i64.eq @@ -358,7 +366,7 @@ i32.const 15 call $memmove/memmove global.set $memmove/dest - i32.const 8 + global.get $memmove/base i64.load i64.const 4919131679688438545 i64.eq @@ -371,7 +379,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memmove/base + i32.const 8 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -384,7 +394,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memmove/base + i32.const 16 + i32.add i64.load i64.const 3694152654344438852 i64.eq @@ -397,7 +409,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memmove/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq diff --git a/tests/compiler/memorybase.untouched.wat b/tests/compiler/memorybase.untouched.wat index 2651d111ca..041735216e 100644 --- a/tests/compiler/memorybase.untouched.wat +++ b/tests/compiler/memorybase.untouched.wat @@ -1,8 +1,25 @@ (module + (type $none_=>_none (func)) (memory $0 1) (data (i32.const 1024) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00") (table $0 1 funcref) (global $memorybase/staticString i32 (i32.const 1040)) (global $~lib/ASC_MEMORY_BASE i32 (i32.const 1024)) (export "memory" (memory $0)) + (start $~start) + (func $start:memorybase + i32.const 1024 + i32.const 1024 + i32.eq + drop + global.get $memorybase/staticString + i32.const 16 + i32.sub + i32.const 1024 + i32.eq + drop + ) + (func $~start + call $start:memorybase + ) ) diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat index 826409f739..a43342cf59 100644 --- a/tests/compiler/new.untouched.wat +++ b/tests/compiler/new.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 8767a807a9..5f8f7c3b6c 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -207,6 +207,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -402,6 +404,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -416,6 +422,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -460,6 +475,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -2176,6 +2195,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2201,6 +2224,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2296,6 +2323,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2596,6 +2627,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2668,6 +2703,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3253,6 +3292,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -3539,7 +3580,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 0 + i32.eqz call $~lib/number/Bool#toString local.tee $7 i32.const 1824 @@ -3553,7 +3595,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.eqz call $~lib/number/Bool#toString local.tee $8 i32.const 1856 @@ -3605,20 +3648,14 @@ call $~lib/builtins/abort unreachable end - f32.const nan:0x400000 + global.get $~lib/number/F32.NaN local.tee $11 local.get $11 f32.ne - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -16777216 + drop + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const 1 + f32.sub call $~lib/number/F32.isSafeInteger i32.const 0 i32.eq @@ -3631,7 +3668,7 @@ call $~lib/builtins/abort unreachable end - f32.const -16777215 + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER call $~lib/number/F32.isSafeInteger i32.const 1 i32.eq @@ -3696,7 +3733,7 @@ call $~lib/builtins/abort unreachable end - f32.const 16777215 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER call $~lib/number/F32.isSafeInteger i32.const 1 i32.eq @@ -3709,7 +3746,9 @@ call $~lib/builtins/abort unreachable end - f32.const 16777216 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 1 + f32.add call $~lib/number/F32.isSafeInteger i32.const 0 i32.eq @@ -3787,7 +3826,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1920928955078125e-07 + global.get $~lib/builtins/f32.EPSILON call $~lib/number/F32.isInteger i32.const 0 i32.eq @@ -3826,7 +3865,7 @@ call $~lib/builtins/abort unreachable end - f32.const -16777215 + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER call $~lib/number/F32.isInteger i32.const 1 i32.eq @@ -3839,7 +3878,7 @@ call $~lib/builtins/abort unreachable end - f32.const 16777215 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER call $~lib/number/F32.isInteger i32.const 1 i32.eq @@ -3878,20 +3917,14 @@ call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 + global.get $~lib/number/F64.NaN local.tee $12 local.get $12 f64.ne - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 46 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -9007199254740992 + drop + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const 1 + f64.sub call $~lib/number/F64.isSafeInteger i32.const 0 i32.eq @@ -3904,7 +3937,7 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER call $~lib/number/F64.isSafeInteger i32.const 1 i32.eq @@ -3969,7 +4002,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/number/F64.isSafeInteger i32.const 1 i32.eq @@ -3982,7 +4015,9 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740992 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 1 + f64.add call $~lib/number/F64.isSafeInteger i32.const 0 i32.eq @@ -4060,7 +4095,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/number/F64.isInteger i32.const 0 i32.eq @@ -4099,7 +4134,7 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER call $~lib/number/F64.isInteger i32.const 1 i32.eq @@ -4112,7 +4147,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/number/F64.isInteger i32.const 1 i32.eq diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat index 7dc0c13a39..0e4f058695 100644 --- a/tests/compiler/optional-typeparameters.untouched.wat +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -116,6 +116,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/possibly-null.untouched.wat b/tests/compiler/possibly-null.untouched.wat index 6d12205d84..1a3b0079da 100644 --- a/tests/compiler/possibly-null.untouched.wat +++ b/tests/compiler/possibly-null.untouched.wat @@ -35,7 +35,8 @@ local.set $0 local.get $0 if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -51,7 +52,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -67,6 +69,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -78,7 +82,8 @@ i32.const 0 i32.ne if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -95,7 +100,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -112,6 +118,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -124,7 +132,8 @@ i32.eq i32.eqz if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -142,7 +151,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -160,6 +170,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -175,6 +187,8 @@ local.set $1 local.get $1 if + i32.const 0 + drop i32.const 0 local.tee $2 local.get $0 @@ -189,6 +203,9 @@ end local.get $2 local.set $0 + i32.const 1 + i32.eqz + drop br $while-continue|0 end end @@ -210,6 +227,8 @@ local.set $2 local.get $2 if + i32.const 0 + drop local.get $1 local.tee $3 local.get $0 @@ -224,6 +243,9 @@ end local.get $3 local.set $0 + i32.const 1 + i32.eqz + drop br $while-continue|0 end end @@ -247,6 +269,8 @@ local.set $2 local.get $2 if + i32.const 0 + drop local.get $1 if local.get $1 @@ -263,6 +287,8 @@ end local.get $3 local.set $0 + i32.const 0 + drop end br $while-continue|0 end @@ -339,9 +365,17 @@ i32.const 0 end if - nop + i32.const 0 + drop + i32.const 0 + drop else - nop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.eqz + drop end local.get $0 call $~lib/rt/stub/__release @@ -364,9 +398,17 @@ i32.eqz end if - nop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.eqz + drop else - nop + i32.const 0 + drop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -396,6 +438,8 @@ end local.get $2 local.set $0 + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release local.get $1 diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 7ca45c6dda..5e52828faa 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -29,12 +29,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -51,8 +55,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -144,6 +152,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -162,6 +172,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -214,6 +226,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -353,6 +367,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -366,6 +382,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -459,6 +477,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -515,6 +535,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -534,6 +556,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -588,6 +612,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -703,6 +729,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -716,8 +744,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -741,6 +773,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -758,6 +794,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -770,6 +808,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -790,6 +830,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 81945d73da..3f346a5bc7 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -54,6 +54,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -72,6 +74,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -124,6 +128,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -263,6 +269,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -276,6 +284,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -369,6 +379,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -425,6 +437,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -444,6 +458,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -498,6 +514,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -608,6 +626,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -645,6 +665,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -676,6 +698,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -696,7 +720,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -890,6 +918,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -991,6 +1021,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1063,6 +1095,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1121,6 +1155,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1205,6 +1241,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1227,7 +1265,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1296,6 +1336,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1319,9 +1361,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1338,6 +1384,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,6 +1405,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1369,9 +1419,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1400,6 +1454,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1418,12 +1474,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1440,8 +1500,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1513,6 +1577,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1526,8 +1592,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1551,6 +1621,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1568,6 +1642,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1580,6 +1656,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1594,6 +1672,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -1603,6 +1683,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index f85f7d35e9..75a31a6e5d 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -40,6 +40,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -58,6 +60,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -110,6 +114,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -249,6 +255,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -262,6 +270,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -355,6 +365,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -411,6 +423,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -430,6 +444,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -484,6 +500,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -594,6 +612,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -631,6 +651,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -662,6 +684,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -682,7 +706,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -876,6 +904,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -977,6 +1007,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1049,6 +1081,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1107,6 +1141,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1191,6 +1227,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1213,7 +1251,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1282,6 +1322,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1305,9 +1347,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1324,6 +1370,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1343,6 +1391,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1355,9 +1405,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1386,6 +1440,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1404,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1426,8 +1486,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1541,6 +1605,8 @@ call $start:rc/logical-and-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1556,6 +1622,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1569,8 +1637,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1594,6 +1666,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1611,6 +1687,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1623,6 +1701,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1643,6 +1723,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index cf6acbd389..05b2addd50 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -40,6 +40,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -58,6 +60,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -110,6 +114,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -249,6 +255,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -262,6 +270,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -355,6 +365,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -411,6 +423,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -430,6 +444,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -484,6 +500,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -594,6 +612,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -631,6 +651,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -662,6 +684,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -682,7 +706,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -876,6 +904,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -977,6 +1007,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1049,6 +1081,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1107,6 +1141,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1191,6 +1227,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1213,7 +1251,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1282,6 +1322,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1305,9 +1347,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1324,6 +1370,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1343,6 +1391,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1355,9 +1405,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1386,6 +1440,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1404,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1426,8 +1486,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1541,6 +1605,8 @@ call $start:rc/logical-or-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1556,6 +1622,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1569,8 +1637,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1594,6 +1666,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1611,6 +1687,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1623,6 +1701,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1643,6 +1723,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/optimize.untouched.wat b/tests/compiler/rc/optimize.untouched.wat index f4034abe10..2504b02101 100644 --- a/tests/compiler/rc/optimize.untouched.wat +++ b/tests/compiler/rc/optimize.untouched.wat @@ -70,12 +70,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -92,8 +96,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -135,6 +143,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -153,6 +163,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -205,6 +217,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -344,6 +358,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -357,6 +373,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -450,6 +468,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -506,6 +526,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -525,6 +547,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -579,6 +603,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -689,6 +715,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -726,6 +754,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -757,6 +787,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -777,7 +809,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -971,6 +1007,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1072,6 +1110,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1144,6 +1184,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1202,6 +1244,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1286,6 +1330,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1308,7 +1354,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1377,6 +1425,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1400,9 +1450,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1419,6 +1473,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1438,6 +1494,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1450,9 +1508,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1481,6 +1543,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1793,6 +1857,8 @@ call $~lib/rt/pure/__release ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1808,6 +1874,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1821,8 +1889,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1846,6 +1918,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1863,6 +1939,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1875,6 +1953,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1895,6 +1975,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index f5a64e18e3..86eaab64c7 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -42,6 +42,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -60,6 +62,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -112,6 +116,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -251,6 +257,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -264,6 +272,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -357,6 +367,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -413,6 +425,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -432,6 +446,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -486,6 +502,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -596,6 +614,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -633,6 +653,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -664,6 +686,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -684,7 +708,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -878,6 +906,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -979,6 +1009,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1051,6 +1083,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1109,6 +1143,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1193,6 +1229,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1215,7 +1253,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1284,6 +1324,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1307,9 +1349,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1326,6 +1372,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1345,6 +1393,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,9 +1407,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1388,6 +1442,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1404,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1426,6 +1486,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1491,6 +1555,8 @@ call $start:rc/rereturn ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1506,6 +1572,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1517,6 +1585,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1540,6 +1612,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1557,6 +1633,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1569,6 +1647,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1589,6 +1669,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 32cce7b330..f502716e41 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -42,6 +42,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -60,6 +62,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -112,6 +116,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -251,6 +257,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -264,6 +272,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -357,6 +367,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -413,6 +425,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -432,6 +446,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -486,6 +502,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -596,6 +614,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -633,6 +653,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -664,6 +686,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -684,7 +708,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -878,6 +906,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -979,6 +1009,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1051,6 +1083,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1109,6 +1143,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1193,6 +1229,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1215,7 +1253,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1284,6 +1324,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1307,9 +1349,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1326,6 +1372,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1345,6 +1393,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,9 +1407,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1388,6 +1442,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1406,12 +1462,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1428,8 +1488,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1525,6 +1589,8 @@ call $start:rc/ternary-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1540,6 +1606,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1553,8 +1621,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1578,6 +1650,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1595,6 +1671,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1607,6 +1685,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1627,6 +1707,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index dc42914b35..41c5ec2cad 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -125,6 +125,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1179,6 +1181,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1204,6 +1210,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1299,6 +1309,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1457,6 +1471,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) @@ -1853,7 +1869,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -1874,6 +1891,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -1894,6 +1915,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -1903,6 +1928,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -1997,6 +2031,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -2005,6 +2043,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa32 return diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index a38540b331..9e716591e0 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -115,6 +115,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -436,6 +440,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -628,6 +634,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -642,6 +652,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -747,6 +766,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -771,7 +794,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -781,7 +806,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -792,7 +819,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -868,7 +897,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -897,14 +928,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -978,7 +1013,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -1049,7 +1086,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -3156,6 +3195,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3181,6 +3224,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3276,6 +3323,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3576,6 +3627,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -3648,6 +3703,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -4233,6 +4292,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -4563,6 +4624,8 @@ (local $62 i32) (local $63 i32) i32.const 1 + i32.const 2 + i32.lt_u call $~lib/number/Bool#toString local.tee $0 i32.const 32 @@ -4576,7 +4639,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.gt_u call $~lib/number/Bool#toString local.tee $1 i32.const 64 @@ -4591,6 +4656,8 @@ unreachable end i32.const 1 + i32.const 2 + i32.le_u call $~lib/number/Bool#toString local.tee $2 i32.const 32 @@ -4604,7 +4671,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.ge_u call $~lib/number/Bool#toString local.tee $3 i32.const 64 @@ -4618,7 +4687,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.eq call $~lib/number/Bool#toString local.tee $4 i32.const 64 @@ -4633,6 +4704,8 @@ unreachable end i32.const 1 + i32.const 2 + i32.ne call $~lib/number/Bool#toString local.tee $5 i32.const 32 @@ -4646,7 +4719,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 160 + i32.const 160 + i32.eq call $~lib/number/Bool#toString local.tee $6 i32.const 32 @@ -4660,7 +4735,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 160 + i32.const 160 + i32.ne call $~lib/number/Bool#toString local.tee $7 i32.const 64 @@ -4921,7 +4998,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const 1 + i32.const 2 + i32.add call $~lib/number/I32#toString local.tee $21 i32.const 8016 @@ -4935,7 +5014,9 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 1 + i32.const 2 + i32.sub call $~lib/number/I32#toString local.tee $22 i32.const 8048 @@ -4949,7 +5030,9 @@ call $~lib/builtins/abort unreachable end + i32.const 1 i32.const 2 + i32.mul call $~lib/number/I32#toString local.tee $23 i32.const 656 @@ -4963,7 +5046,9 @@ call $~lib/builtins/abort unreachable end + i32.const 4 i32.const 2 + i32.div_u call $~lib/number/I32#toString local.tee $24 i32.const 656 @@ -4977,7 +5062,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 3 + i32.const 2 + i32.rem_u call $~lib/number/I32#toString local.tee $25 i32.const 624 @@ -4991,7 +5078,8 @@ call $~lib/builtins/abort unreachable end - f64.const 2 + i32.const 2 + f64.convert_i32_u f64.const 2 call $~lib/math/NativeMath.pow i32.const 0 @@ -5008,7 +5096,9 @@ call $~lib/builtins/abort unreachable end - i32.const 4 + i32.const 2 + i32.const 1 + i32.shl call $~lib/number/I32#toString local.tee $27 i32.const 7984 @@ -5022,7 +5112,9 @@ call $~lib/builtins/abort unreachable end + i32.const 2 i32.const 1 + i32.shr_u call $~lib/number/I32#toString local.tee $28 i32.const 624 @@ -5036,7 +5128,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const -1 + i32.const 30 + i32.shr_u call $~lib/number/I32#toString local.tee $29 i32.const 8016 @@ -5050,7 +5144,9 @@ call $~lib/builtins/abort unreachable end + i32.const 3 i32.const 1 + i32.and call $~lib/number/I32#toString local.tee $30 i32.const 624 @@ -5064,7 +5160,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const 1 + i32.const 2 + i32.or call $~lib/number/I32#toString local.tee $31 i32.const 8016 @@ -5078,7 +5176,9 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 1 + i32.const 3 + i32.xor call $~lib/number/I32#toString local.tee $32 i32.const 656 @@ -5092,7 +5192,12 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end call $~lib/number/I32#toString local.tee $33 i32.const 656 @@ -5107,6 +5212,11 @@ unreachable end i32.const 0 + if (result i32) + i32.const 2 + else + i32.const 0 + end call $~lib/number/I32#toString local.tee $34 i32.const 192 @@ -5121,6 +5231,11 @@ unreachable end i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 2 + end call $~lib/number/I32#toString local.tee $35 i32.const 624 @@ -5134,7 +5249,12 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 2 + end call $~lib/number/I32#toString local.tee $36 i32.const 656 diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index dae4e92bea..9cde3779ed 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -148,6 +148,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -175,6 +177,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -2110,6 +2116,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2135,6 +2145,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2230,6 +2244,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2670,6 +2688,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2742,6 +2764,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3335,6 +3361,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -3450,6 +3478,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3718,6 +3750,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -3726,6 +3762,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 255 i32.and diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat index d67f642304..a2ed82ad7f 100644 --- a/tests/compiler/resolve-function-expression.untouched.wat +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -192,6 +192,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -387,6 +389,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -401,6 +407,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -445,6 +460,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/resolve-nested.untouched.wat b/tests/compiler/resolve-nested.untouched.wat index bc3072f2cb..c7af958501 100644 --- a/tests/compiler/resolve-nested.untouched.wat +++ b/tests/compiler/resolve-nested.untouched.wat @@ -132,6 +132,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/resolve-new.untouched.wat b/tests/compiler/resolve-new.untouched.wat index 4918e52d89..61f82a9dd5 100644 --- a/tests/compiler/resolve-new.untouched.wat +++ b/tests/compiler/resolve-new.untouched.wat @@ -107,6 +107,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index e6b71e765f..3dcedd8795 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -188,6 +188,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -383,6 +385,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -397,6 +403,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -441,6 +456,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -648,7 +667,7 @@ global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset - i32.const 1 + global.get $resolve-propertyaccess/Namespace.member call $~lib/number/I32#toString local.tee $0 i32.const 464 @@ -662,7 +681,7 @@ call $~lib/builtins/abort unreachable end - i32.const 11 + global.get $resolve-propertyaccess/Namespace.lazyMember call $~lib/number/I32#toString local.tee $1 i32.const 576 @@ -676,7 +695,7 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + global.get $resolve-propertyaccess/MergedNamespace.member call $~lib/number/I32#toString local.tee $2 i32.const 608 @@ -690,7 +709,7 @@ call $~lib/builtins/abort unreachable end - i32.const 22 + global.get $resolve-propertyaccess/MergedNamespace.lazyMember call $~lib/number/I32#toString local.tee $3 i32.const 640 @@ -704,7 +723,7 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + global.get $resolve-propertyaccess/TypedNamespace.member call $~lib/number/I32#toString local.tee $4 i32.const 672 @@ -718,7 +737,7 @@ call $~lib/builtins/abort unreachable end - i32.const 33 + global.get $resolve-propertyaccess/TypedNamespace.lazyMember call $~lib/number/I32#toString local.tee $5 i32.const 704 @@ -732,7 +751,7 @@ call $~lib/builtins/abort unreachable end - i32.const 4 + global.get $resolve-propertyaccess/Enum.VALUE call $~lib/number/I32#toString local.tee $6 i32.const 736 diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 6cd9948fd1..58b3a26172 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -73,6 +73,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -91,6 +93,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -143,6 +147,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -282,6 +288,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -295,6 +303,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -388,6 +398,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -444,6 +456,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -463,6 +477,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -517,6 +533,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -627,6 +645,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -664,6 +684,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -695,6 +717,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -715,7 +739,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -909,6 +937,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1010,6 +1040,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1082,6 +1114,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1140,6 +1174,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1224,6 +1260,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1246,7 +1284,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1315,6 +1355,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1338,9 +1380,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1357,6 +1403,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1376,6 +1424,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1388,9 +1438,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1419,6 +1473,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1435,12 +1491,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1457,6 +1517,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1731,6 +1795,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -1745,6 +1813,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -1786,6 +1863,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3502,6 +3583,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3527,6 +3612,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3622,6 +3711,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3922,6 +4015,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -3994,6 +4091,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -4582,7 +4683,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -4612,6 +4715,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/tlsf/__free (param $0 i32) call $~lib/rt/tlsf/maybeInitialize @@ -4732,7 +4837,8 @@ end global.get $resolve-ternary/b if (result f64) - f64.const 1 + i32.const 1 + f64.convert_i32_u else f64.const 2 end @@ -4755,9 +4861,9 @@ i32.const 1 global.get $resolve-ternary/b if (result i32) - i32.const 1 + global.get $resolve-ternary/f1 else - i32.const 2 + global.get $resolve-ternary/f2 end call_indirect (type $i32_=>_i32) i32.const 2 @@ -4797,7 +4903,7 @@ i32.const 1 global.get $resolve-ternary/b if (result i32) - i32.const 2 + global.get $resolve-ternary/f2 else i32.const 4 end @@ -4822,6 +4928,8 @@ call $start:resolve-ternary ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -4834,6 +4942,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4857,6 +4969,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4874,6 +4990,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4886,6 +5004,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -4906,6 +5026,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat index bad4562d4c..4aa886e204 100644 --- a/tests/compiler/resolve-unary.untouched.wat +++ b/tests/compiler/resolve-unary.untouched.wat @@ -187,6 +187,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -382,6 +384,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -396,6 +402,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -440,6 +455,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/retain-i32.untouched.wat b/tests/compiler/retain-i32.untouched.wat index dfd4723e90..a096fb55d4 100644 --- a/tests/compiler/retain-i32.untouched.wat +++ b/tests/compiler/retain-i32.untouched.wat @@ -335,6 +335,8 @@ i32.const 0 i32.load8_s local.set $0 + i32.const 1 + drop ) (func $start:retain-i32 (local $0 i32) @@ -412,7 +414,7 @@ local.set $0 loop $for-loop|0 local.get $0 - i32.const 255 + global.get $~lib/builtins/u8.MAX_VALUE i32.le_s local.set $1 local.get $1 @@ -795,6 +797,8 @@ i32.const 0 i32.load8_s global.set $retain-i32/ri + i32.const 1 + drop call $retain-i32/testLocalRetain ) (func $~start diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index de1f72aa5e..f26dd06d7d 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -56,6 +56,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -74,6 +76,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -126,6 +130,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -265,6 +271,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -278,6 +286,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -371,6 +381,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -427,6 +439,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -446,6 +460,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -500,6 +516,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -610,6 +628,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -647,6 +667,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -678,6 +700,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -698,7 +722,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -892,6 +920,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -993,6 +1023,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1065,6 +1097,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1123,6 +1157,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1207,6 +1243,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1229,7 +1267,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1298,6 +1338,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1321,9 +1363,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1340,6 +1386,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1359,6 +1407,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1371,9 +1421,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1402,6 +1456,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1430,6 +1486,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1629,12 +1689,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1651,8 +1715,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1698,7 +1766,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -1798,7 +1868,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -2858,6 +2930,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2883,6 +2959,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2978,6 +3058,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3072,6 +3156,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3090,7 +3176,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3185,6 +3273,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3279,6 +3369,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3332,7 +3424,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -3410,7 +3504,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -3499,6 +3595,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3991,6 +4089,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + i32.const 0 + drop global.get $~lib/rt/pure/ROOTS local.set $0 local.get $0 @@ -4185,6 +4285,8 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 + i32.const 1 + drop local.get $5 i32.const 16 i32.sub @@ -4195,6 +4297,8 @@ call $~lib/memory/memory.copy local.get $0 if + i32.const 1 + drop local.get $0 i32.const 16 i32.sub @@ -4243,8 +4347,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4268,6 +4376,8 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 0 + drop local.get $1 i32.const -2147483648 i32.and @@ -4286,6 +4396,8 @@ i32.store offset=4 end else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4298,6 +4410,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + drop local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo @@ -4346,6 +4460,8 @@ if return end + i32.const 0 + drop local.get $0 i32.const 16 i32.sub @@ -4385,6 +4501,8 @@ call $~lib/rt/pure/decrement br $break|0 end + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 268435455 @@ -4418,12 +4536,16 @@ i32.load offset=4 local.set $3 local.get $3 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $3 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -4455,6 +4577,8 @@ call $~lib/rt/pure/collectWhite br $break|0 end + i32.const 1 + drop i32.const 0 i32.eqz if @@ -4468,6 +4592,8 @@ end ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -4478,6 +4604,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -4521,6 +4649,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index c4939f63bc..522180fd90 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -154,6 +154,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/retain-return.untouched.wat b/tests/compiler/retain-return.untouched.wat index bb5af1523e..f5aa0900ed 100644 --- a/tests/compiler/retain-return.untouched.wat +++ b/tests/compiler/retain-return.untouched.wat @@ -46,6 +46,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -64,6 +66,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -116,6 +120,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -255,6 +261,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -268,6 +276,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -361,6 +371,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -417,6 +429,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -436,6 +450,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -490,6 +506,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -600,6 +618,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -637,6 +657,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -668,6 +690,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -688,7 +712,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -882,6 +910,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -983,6 +1013,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1055,6 +1087,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1113,6 +1147,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1197,6 +1233,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1219,7 +1257,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1288,6 +1328,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1311,9 +1353,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1330,6 +1376,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1349,6 +1397,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1361,9 +1411,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1392,6 +1446,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1408,12 +1464,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1430,6 +1490,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1634,6 +1698,8 @@ call $start:retain-return ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1649,6 +1715,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1660,6 +1728,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1683,6 +1755,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1700,6 +1776,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1712,6 +1790,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1732,6 +1812,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rt/ids.untouched.wat b/tests/compiler/rt/ids.untouched.wat index bffe105a3d..f066c481fb 100644 --- a/tests/compiler/rt/ids.untouched.wat +++ b/tests/compiler/rt/ids.untouched.wat @@ -1,5 +1,24 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:rt/ids + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + ) + (func $~start + call $start:rt/ids + ) ) diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index 0ae6369ab6..a1cb7ea6d1 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -121,6 +121,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -238,6 +240,8 @@ i32.const 0 call $rt/instanceof/BlackCat#constructor global.set $rt/instanceof/blackcat + i32.const 1 + drop global.get $rt/instanceof/animal local.tee $0 i32.eqz @@ -278,6 +282,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop global.get $rt/instanceof/cat local.tee $0 i32.eqz @@ -317,6 +323,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop global.get $rt/instanceof/blackcat local.tee $0 i32.eqz diff --git a/tests/compiler/rt/stub-realloc.untouched.wat b/tests/compiler/rt/stub-realloc.untouched.wat index 93d1a82682..17b224bc59 100644 --- a/tests/compiler/rt/stub-realloc.untouched.wat +++ b/tests/compiler/rt/stub-realloc.untouched.wat @@ -124,6 +124,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1191,6 +1193,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1216,6 +1222,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1311,6 +1321,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1426,6 +1440,8 @@ local.get $2 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 1 @@ -1541,6 +1557,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index ee75a36c2c..d7ab098ac5 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -41,6 +41,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -59,6 +61,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -111,6 +115,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -250,6 +256,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -263,6 +271,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -356,6 +366,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -412,6 +424,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -431,6 +445,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -485,6 +501,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -595,6 +613,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -632,6 +652,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -663,6 +685,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -683,7 +707,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -877,6 +905,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -978,6 +1008,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1050,6 +1082,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1108,6 +1142,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1192,6 +1228,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1214,7 +1252,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1283,6 +1323,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1306,9 +1348,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1325,6 +1371,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1344,6 +1392,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1356,9 +1406,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1387,6 +1441,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1403,12 +1459,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1425,6 +1485,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1464,6 +1528,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1479,6 +1545,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1490,6 +1558,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1513,6 +1585,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1530,6 +1606,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1542,6 +1620,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1562,6 +1642,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/runtime-stub.untouched.wat b/tests/compiler/runtime-stub.untouched.wat index 3b1ea5f9fd..6fb4fec6af 100644 --- a/tests/compiler/runtime-stub.untouched.wat +++ b/tests/compiler/runtime-stub.untouched.wat @@ -114,6 +114,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index f6b8db114c..f092f4f04a 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -54,6 +54,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -95,6 +100,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) @@ -144,6 +151,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -209,6 +221,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -429,6 +445,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 268027e950..86d15dc5a3 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -75,6 +75,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) @@ -108,6 +110,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) @@ -124,6 +128,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -142,6 +148,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -194,6 +202,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -333,6 +343,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -346,6 +358,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -439,6 +453,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -495,6 +511,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -514,6 +532,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -568,6 +588,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -678,6 +700,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -715,6 +739,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -746,6 +772,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -766,7 +794,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -960,6 +992,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1061,6 +1095,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1133,6 +1169,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1191,6 +1229,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1275,6 +1315,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1297,7 +1339,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1366,6 +1410,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1389,9 +1435,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1408,6 +1458,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1427,6 +1479,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1439,9 +1493,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1470,6 +1528,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2525,6 +2585,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2550,6 +2614,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2645,6 +2713,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2747,12 +2819,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2769,8 +2845,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2883,7 +2963,7 @@ (func $start:std/array-literal (local $0 i32) (local $1 i32) - i32.const 64 + global.get $std/array-literal/staticArrayI8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -2896,7 +2976,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -2910,7 +2990,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -2924,7 +3004,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -2938,7 +3018,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -2951,7 +3031,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -2965,7 +3045,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -2979,7 +3059,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3284,6 +3364,8 @@ call $start:std/array-literal ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3299,6 +3381,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3312,8 +3396,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3337,6 +3425,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3354,6 +3446,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3366,6 +3460,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3386,6 +3482,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3404,12 +3504,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -3420,6 +3524,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -3463,6 +3569,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 530e63c94b..37d2f8ff27 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8063,10 +8063,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $0 local.get $2 @@ -8250,10 +8250,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $1 local.get $2 @@ -8273,10 +8273,10 @@ i64.const 10 i64.lt_u if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 i64.const 48 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 904333ecd0..ba396f0fb3 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -275,6 +275,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -293,6 +295,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -345,6 +349,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -484,6 +490,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -497,6 +505,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -590,6 +600,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -646,6 +658,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -665,6 +679,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -719,6 +735,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -829,6 +847,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -866,6 +886,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -897,6 +919,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -917,7 +941,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1111,6 +1139,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1212,6 +1242,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1284,6 +1316,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1342,6 +1376,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1426,6 +1462,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1448,7 +1486,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1517,6 +1557,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1540,9 +1582,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1559,6 +1605,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1578,6 +1626,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1590,9 +1640,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1621,6 +1675,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1649,6 +1705,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1848,12 +1908,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1870,8 +1934,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1917,7 +1985,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -3227,6 +3297,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3252,6 +3326,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3347,6 +3425,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3536,6 +3618,12 @@ select end local.set $3 + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 local.get $3 i32.lt_s @@ -3583,6 +3671,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3638,6 +3728,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -3731,6 +3823,12 @@ select end local.set $3 + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop loop $for-loop|0 local.get $2 local.get $3 @@ -3786,6 +3884,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3841,6 +3941,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -3933,7 +4035,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -3963,6 +4067,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3981,7 +4087,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -4076,6 +4184,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -4170,6 +4280,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $2 @@ -4210,6 +4322,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) @@ -4254,6 +4368,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 1 + drop local.get $2 local.get $1 i32.gt_s @@ -4328,7 +4444,9 @@ i32.add local.set $4 local.get $4 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if local.get $1 @@ -4354,6 +4472,8 @@ i32.const 2 i32.shl local.set $7 + i32.const 0 + drop local.get $6 local.get $0 i32.load offset=4 @@ -4486,6 +4606,8 @@ i32.lt_s select local.set $11 + i32.const 0 + drop local.get $4 local.get $8 i32.const 2 @@ -4556,6 +4678,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -4613,6 +4737,8 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy + i32.const 0 + drop local.get $3 local.get $1 i32.store @@ -4933,6 +5059,8 @@ i32.const -1 ) (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop local.get $0 local.get $1 local.get $2 @@ -4946,6 +5074,8 @@ (local $4 i32) (local $5 i32) (local $6 f32) + i32.const 1 + drop local.get $0 i32.load offset=12 local.set $3 @@ -5029,6 +5159,8 @@ (local $4 i32) (local $5 i32) (local $6 f64) + i32.const 1 + drop local.get $0 i32.load offset=12 local.set $3 @@ -5351,6 +5483,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -5505,9 +5642,16 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6212,6 +6356,8 @@ local.get $1 call_indirect (type $i32_i32_i32_=>_f32) local.set $8 + i32.const 0 + drop local.get $4 local.get $5 i32.const 2 @@ -6259,6 +6405,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -6331,6 +6479,8 @@ local.get $1 call_indirect (type $i32_i32_i32_=>_i32) local.set $7 + i32.const 0 + drop local.get $4 local.get $5 i32.const 2 @@ -7477,6 +7627,8 @@ local.set $7 local.get $1 local.set $6 + i32.const 0 + drop local.get $7 i32.const 256 i32.lt_s @@ -7537,6 +7689,14 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop i32.const 44 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -7601,6 +7761,8 @@ local.get $4 if block $for-continue|0 + i32.const 1 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -8090,6 +8252,8 @@ local.set $7 local.get $1 local.set $6 + i32.const 0 + drop local.get $7 i32.const 256 i32.lt_s @@ -8150,6 +8314,14 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop i32.const 45 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -8190,6 +8362,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8247,6 +8421,8 @@ local.get $4 if block $for-continue|0 + i32.const 1 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -8734,6 +8910,8 @@ local.set $5 local.get $1 local.set $4 + i32.const 0 + drop local.get $5 i32.const 256 i32.lt_s @@ -8766,6 +8944,17 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 46 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -9210,6 +9399,8 @@ local.set $5 local.get $1 local.set $4 + i32.const 0 + drop local.get $5 i32.const 256 i32.lt_s @@ -9246,6 +9437,17 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 47 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -9466,6 +9668,17 @@ local.set $0 local.get $0 block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) + i32.const 1 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 48 br $~lib/util/sort/COMPARATOR|inlined.1 end @@ -9500,7 +9713,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -9577,6 +9792,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9871,6 +10088,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -9910,6 +10129,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -10023,7 +10247,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -10115,6 +10341,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -10402,6 +10630,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -10441,6 +10671,11 @@ local.get $1 call $~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -10709,6 +10944,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -10748,6 +10985,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $std/array/isSorted<~lib/string/String | null> (param $0 i32) (param $1 i32) (result i32) @@ -10875,8 +11117,12 @@ i32.shl i32.add local.set $6 - local.get $4 - i32.const 4 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 i32.ge_u if (result i32) local.get $5 @@ -11090,6 +11336,12 @@ unreachable end block $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 55 br $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 end @@ -11246,6 +11498,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array<~lib/string/String | null>#__get @@ -11295,7 +11549,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -11558,6 +11814,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11823,6 +12081,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -11862,6 +12122,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -12086,6 +12351,12 @@ unreachable end block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 56 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 end @@ -12390,6 +12661,8 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -12636,6 +12909,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -12650,6 +12927,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -12668,6 +12954,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 0 i32.lt_s @@ -12682,6 +12970,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 10 i32.lt_u @@ -12702,6 +13000,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -12713,6 +13015,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -12875,6 +13181,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -12912,6 +13222,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -12920,6 +13234,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa32 return @@ -12938,6 +13261,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 10 i32.lt_u @@ -12952,6 +13283,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -12963,6 +13298,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -13125,6 +13464,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -13857,6 +14200,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -13929,6 +14276,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -14676,6 +15027,12 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -14928,6 +15285,18 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15165,6 +15534,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15399,6 +15782,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15415,6 +15812,15 @@ call $~lib/array/Array#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 24 i32.shl @@ -15437,6 +15843,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 24 i32.shl @@ -15455,6 +15863,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 24 i32.shl @@ -15483,6 +15901,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 24 @@ -15502,6 +15924,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -15664,6 +16090,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15680,6 +16110,15 @@ call $~lib/array/Array#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 65535 i32.and @@ -15700,6 +16139,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 65535 i32.and @@ -15718,6 +16165,10 @@ end local.get $3 local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 65535 @@ -15733,6 +16184,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -15895,6 +16350,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16109,7 +16568,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -16130,6 +16590,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -16150,6 +16614,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -16159,6 +16627,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -16179,6 +16656,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i64.const 10 i64.lt_u @@ -16193,8 +16678,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -16211,6 +16701,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -16227,6 +16721,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -16390,6 +16888,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16435,7 +16937,8 @@ local.set $0 end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -16458,6 +16961,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -16480,6 +16987,10 @@ local.set $8 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $8 local.get $5 @@ -16495,6 +17006,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa64 return @@ -16515,6 +17035,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i64.const 0 i64.lt_s @@ -16529,6 +17051,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 i64.const 10 i64.lt_u @@ -16549,8 +17081,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -16567,6 +17104,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -16583,6 +17124,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -16746,6 +17291,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16990,6 +17539,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17006,6 +17569,15 @@ call $~lib/array/Array<~lib/array/Array>#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 255 i32.and @@ -17026,6 +17598,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 255 i32.and @@ -17044,6 +17624,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 255 @@ -17059,6 +17643,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -17221,6 +17809,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17460,6 +18052,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17704,6 +18310,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17943,6 +18563,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17970,6 +18604,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) + i32.const 1 + i32.eqz + drop local.get $0 i32.load offset=12 local.set $1 @@ -18085,6 +18722,8 @@ br $for-loop|1 end end + i32.const 0 + drop local.get $9 call $~lib/rt/pure/__retain ) @@ -18100,6 +18739,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) + i32.const 1 + i32.eqz + drop local.get $0 i32.load offset=12 local.set $1 @@ -18215,6 +18857,8 @@ br $for-loop|1 end end + i32.const 1 + drop i32.const 0 local.set $4 loop $for-loop|2 @@ -18309,6 +18953,18 @@ (local $63 i32) i32.const 0 i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr i32.const 0 @@ -19330,7 +19986,7 @@ local.get $3 i32.const 0 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $2 i32.const 5 @@ -19365,7 +20021,7 @@ local.get $3 i32.const 1 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $4 i32.const 5 @@ -19400,7 +20056,7 @@ local.get $3 i32.const 1 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $5 i32.const 5 @@ -19435,7 +20091,7 @@ local.get $3 i32.const 2 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $6 i32.const 5 @@ -19575,7 +20231,7 @@ local.get $3 i32.const 0 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $14 i32.const 5 @@ -19715,7 +20371,7 @@ local.get $3 i32.const -4 i32.const -3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $22 i32.const 5 @@ -20727,7 +21383,7 @@ local.set $25 local.get $25 i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $20 i32.const 5 @@ -20833,7 +21489,7 @@ local.set $25 local.get $25 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $3 i32.const 3 @@ -20992,7 +21648,7 @@ local.set $25 local.get $25 i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $4 i32.const 1 @@ -21045,7 +21701,7 @@ local.set $25 local.get $25 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $1 i32.const 2 @@ -24379,6 +25035,8 @@ call $start:std/array ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -24391,8 +25049,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -24416,6 +25078,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -24433,6 +25099,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -24445,6 +25113,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -24465,6 +25135,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -24483,18 +25157,24 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24505,6 +25185,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24544,12 +25226,16 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24560,6 +25246,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24603,6 +25291,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24646,6 +25336,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24689,6 +25381,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24732,6 +25426,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24771,30 +25467,40 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24805,6 +25511,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24848,6 +25556,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24891,6 +25601,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24934,6 +25646,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 0798596c5f..c0cca6a6ba 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -48,6 +48,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -66,6 +68,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -118,6 +122,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -257,6 +263,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -270,6 +278,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -363,6 +373,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -419,6 +431,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -438,6 +452,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -492,6 +508,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -602,6 +620,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -639,6 +659,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -670,6 +692,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -690,7 +714,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -884,6 +912,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -985,6 +1015,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1057,6 +1089,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1115,6 +1149,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1199,6 +1235,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1221,7 +1259,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1290,6 +1330,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1313,9 +1355,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1332,6 +1378,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1351,6 +1399,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1363,9 +1413,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1394,6 +1448,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1422,6 +1478,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1621,12 +1681,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1643,8 +1707,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2745,6 +2813,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2770,6 +2842,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2865,6 +2941,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3045,6 +3125,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop local.get $0 i32.const 0 i32.eq @@ -3057,6 +3139,30 @@ return end i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release @@ -3064,12 +3170,40 @@ ) (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop local.get $0 i32.const 0 i32.eq @@ -3081,6 +3215,10 @@ local.get $1 return end + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3093,6 +3231,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop local.get $0 i32.const 0 i32.eq @@ -3104,6 +3244,18 @@ local.get $1 return end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3116,6 +3268,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop local.get $0 i32.const 0 i32.eq @@ -3127,6 +3281,30 @@ local.get $1 return end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3275,6 +3453,32 @@ call $~lib/rt/pure/__retain local.set $0 i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release @@ -3285,6 +3489,12 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3313,6 +3523,20 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3431,6 +3655,32 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 local.set $1 local.get $0 @@ -3813,6 +4063,8 @@ call $start:std/arraybuffer ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3828,6 +4080,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3841,8 +4095,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3866,6 +4124,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3883,6 +4145,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3895,6 +4159,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3915,6 +4181,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3933,6 +4203,8 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index b02351d8d1..0510a6e0c2 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -56,6 +56,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -74,6 +76,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -126,6 +130,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -265,6 +271,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -278,6 +286,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -371,6 +381,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -427,6 +439,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -446,6 +460,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -500,6 +516,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -610,6 +628,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -647,6 +667,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -678,6 +700,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -698,7 +722,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -892,6 +920,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -993,6 +1023,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1065,6 +1097,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1123,6 +1157,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1207,6 +1243,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1229,7 +1267,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1298,6 +1338,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1321,9 +1363,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1340,6 +1386,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1359,6 +1407,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1371,9 +1421,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1402,6 +1456,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1430,6 +1486,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1629,12 +1689,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1651,8 +1715,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1890,6 +1958,16 @@ i32.sub ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -1943,6 +2021,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -2034,6 +2126,12 @@ i32.load8_s ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -2084,6 +2182,16 @@ end ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -2135,6 +2243,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -2224,6 +2346,12 @@ i32.load8_u ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -4416,6 +4544,8 @@ call $start:std/dataview ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -4431,6 +4561,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -4444,8 +4576,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4469,6 +4605,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4486,6 +4626,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4498,6 +4640,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -4518,6 +4662,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index c5170c2fcd..1455f2e847 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -118,6 +118,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 56d010a3d5..542717b87e 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -218,6 +218,8 @@ i32.const 0 call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -231,6 +233,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) i32.const 32 local.set $1 + i32.const 1 + drop local.get $1 call $~lib/util/hash/hashStr local.set $0 @@ -244,6 +248,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) i32.const 48 local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -257,6 +263,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) i32.const 80 local.set $1 + i32.const 1 + drop local.get $1 call $~lib/util/hash/hashStr local.set $0 @@ -270,6 +278,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) i32.const 112 local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -283,6 +293,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) f32.const 0 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -293,6 +313,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) f32.const 1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -303,6 +333,16 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) f32.const 1.100000023841858 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -313,6 +353,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) f32.const 0 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -323,6 +373,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) f32.const inf local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -333,6 +393,16 @@ block $~lib/util/hash/HASH|inlined.5 (result i32) f32.const nan:0x400000 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -343,6 +413,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) f64.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -353,6 +437,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) f64.const 1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -363,6 +461,20 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) f64.const 1.1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -373,6 +485,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) f64.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -383,6 +509,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) f64.const inf local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -393,6 +533,20 @@ block $~lib/util/hash/HASH|inlined.5 (result i32) f64.const nan:0x8000000000000 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index aee75b25fe..ddd3620d75 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -418,7 +418,9 @@ local.get $2 i32.const 1 i32.shl - i32.const 2034237440 + i32.const 1017118720 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -615,6 +617,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -624,7 +630,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -734,7 +742,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -751,7 +761,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -839,14 +850,18 @@ local.set $9 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 @@ -924,7 +939,9 @@ i64.and local.set $1 local.get $1 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.lt_u if local.get $0 @@ -949,7 +966,9 @@ return end local.get $1 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.lt_u if f64.const 2 @@ -1160,7 +1179,9 @@ f64.reinterpret_i64 local.set $3 local.get $2 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.ge_u if local.get $3 @@ -1170,7 +1191,9 @@ local.set $3 else local.get $2 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.ge_u if f64.const 2 @@ -1191,7 +1214,9 @@ local.set $3 else local.get $2 - i64.const 997 + i64.const 1023 + i64.const 26 + i64.sub i64.ge_u if local.get $3 @@ -1500,11 +1525,15 @@ f64.abs local.set $3 local.get $2 - i64.const 1022 + i64.const 1023 + i64.const 1 + i64.sub i64.lt_u if local.get $2 - i64.const 991 + i64.const 1023 + i64.const 32 + i64.sub i64.ge_u if f64.const 0.5 @@ -1748,7 +1777,9 @@ unreachable end local.get $3 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $5 i32.lt_u @@ -1780,7 +1811,9 @@ i32.and if (result i32) local.get $5 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $3 i32.lt_u @@ -2012,6 +2045,10 @@ (local $3 i64) (local $4 i64) i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 0 local.set $1 local.get $0 i64.reinterpret_f64 @@ -2023,7 +2060,9 @@ i64.and local.set $3 local.get $3 - i64.const 1053 + i64.const 1023 + i64.const 30 + i64.add i64.le_u if local.get $0 @@ -2031,7 +2070,11 @@ local.set $1 else local.get $3 - i64.const 1106 + i64.const 1023 + i64.const 30 + i64.add + i64.const 53 + i64.add i64.le_u if local.get $2 @@ -2628,6 +2671,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -3352,6 +3399,10 @@ (local $19 f64) (local $20 f64) (local $21 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/exp_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -3634,7 +3685,11 @@ i32.lt_u if local.get $2 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if f64.const 1 @@ -3814,7 +3869,9 @@ f64.const 1 local.set $7 local.get $5 - i32.const 1533 + i32.const 1023 + i32.const 510 + i32.add i32.gt_s if f64.const 5260135901548373507240989e186 @@ -3829,7 +3886,9 @@ local.set $1 else local.get $6 - i32.const 573 + i32.const 1023 + i32.const 450 + i32.sub i32.lt_s if f64.const 1.90109156629516e-211 @@ -4247,6 +4306,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -4256,7 +4319,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -4360,7 +4425,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -4689,6 +4756,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -4713,7 +4784,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -4723,7 +4796,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -4734,7 +4809,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -4810,7 +4887,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -4839,14 +4918,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -4920,7 +5003,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -4991,7 +5076,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -5573,6 +5660,10 @@ block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 local.set $1 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $1 f64.const 0 f64.gt @@ -5737,6 +5828,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -6161,7 +6256,11 @@ i32.lt_u if local.get $3 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -6520,6 +6619,10 @@ i32.const 2147483647 i32.and local.set $7 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $7 i32.const 1073928572 i32.lt_u @@ -7099,7 +7202,9 @@ local.get $1 i32.const 1 i32.shl - i32.const 1728053248 + i32.const 864026624 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -7264,6 +7369,10 @@ (local $11 f64) (local $12 f64) (local $13 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -7273,7 +7382,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -7427,7 +7538,11 @@ i32.and local.set $2 local.get $2 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.lt_u if local.get $0 @@ -7446,7 +7561,11 @@ return end local.get $2 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.lt_u if f32.const 2 @@ -7583,7 +7702,11 @@ f32.reinterpret_i32 local.set $2 local.get $1 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.ge_u if local.get $2 @@ -7593,7 +7716,11 @@ local.set $2 else local.get $1 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.ge_u if f32.const 2 @@ -7614,7 +7741,11 @@ local.set $2 else local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.ge_u if local.get $2 @@ -7888,11 +8019,19 @@ f32.abs local.set $2 local.get $1 - i32.const 1056964608 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $1 - i32.const 796917760 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub i32.ge_u if f32.const 0.5 @@ -8106,7 +8245,9 @@ unreachable end local.get $2 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $3 i32.lt_u @@ -8138,7 +8279,9 @@ i32.and if (result i32) local.get $3 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $2 i32.lt_u @@ -8442,6 +8585,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -9280,6 +9427,10 @@ (local $9 f64) (local $10 f64) (local $11 i64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -9316,7 +9467,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const 88.72283172607422 + i32.const 1118925335 + f32.reinterpret_i32 f32.gt if local.get $1 @@ -9325,7 +9477,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const -103.97207641601562 + i32.const -1026559564 + f32.reinterpret_i32 f32.lt if f32.const 0 @@ -9418,7 +9571,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if f32.const 1 @@ -9538,14 +9695,18 @@ f32.reinterpret_i32 local.set $1 local.get $3 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.eq if local.get $1 return end local.get $2 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.ge_u if (result i32) i32.const 1 @@ -9560,7 +9721,9 @@ local.get $2 local.get $3 i32.sub - i32.const 209715200 + i32.const 25 + i32.const 23 + i32.shl i32.ge_u end if @@ -9572,7 +9735,11 @@ f32.const 1 local.set $5 local.get $2 - i32.const 1568669696 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl i32.ge_u if f32.const 1237940039285380274899124e3 @@ -9587,7 +9754,11 @@ local.set $1 else local.get $3 - i32.const 562036736 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl i32.lt_u if f32.const 8.077935669463161e-28 @@ -9883,6 +10054,10 @@ (local $13 f64) (local $14 f64) (local $15 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -9892,7 +10067,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -10139,6 +10316,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -10157,7 +10338,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -10166,7 +10349,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -10194,7 +10381,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -10202,7 +10391,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -10214,7 +10405,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -10223,7 +10416,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -10246,7 +10441,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -10274,14 +10473,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -10347,7 +10550,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 @@ -10669,6 +10874,10 @@ block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 local.set $1 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $1 f32.const 0 f32.gt @@ -10775,6 +10984,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -11328,7 +11541,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -11510,6 +11727,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index e98053247d..8c1e5d210c 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -64,6 +64,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -82,6 +84,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -134,6 +138,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -273,6 +279,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -286,6 +294,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -379,6 +389,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -435,6 +447,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -454,6 +468,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -508,6 +524,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -618,6 +636,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -655,6 +675,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -686,6 +708,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -706,7 +730,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -900,6 +928,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1001,6 +1031,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1073,6 +1105,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1131,6 +1165,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1215,6 +1251,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1237,7 +1275,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1306,6 +1346,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1329,9 +1371,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1348,6 +1394,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1367,6 +1415,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1379,9 +1429,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1410,6 +1464,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1428,12 +1484,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1450,8 +1510,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1495,6 +1559,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1861,6 +1929,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -1949,6 +2027,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -2038,6 +2126,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 24 i32.shl @@ -2054,6 +2152,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -2147,6 +2247,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -2182,6 +2292,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -2281,7 +2393,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -3341,6 +3455,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3366,6 +3484,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3461,6 +3583,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3555,6 +3681,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3573,7 +3701,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3668,6 +3798,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3749,6 +3881,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3797,6 +3931,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 0 @@ -3877,7 +4013,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -3949,6 +4087,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3997,6 +4137,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -4245,6 +4387,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -4274,6 +4418,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -4404,6 +4550,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.5 @@ -4493,6 +4649,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 24 i32.shl @@ -4509,6 +4675,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store8 offset=1 @@ -4760,6 +4928,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -4849,6 +5035,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -4861,6 +5065,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -4964,6 +5170,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -4980,6 +5196,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -5668,6 +5888,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -5754,6 +5984,16 @@ local.get $10 i32.load8_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -5843,6 +6083,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 255 i32.and @@ -5857,6 +6107,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -5950,6 +6202,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -5983,6 +6245,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -6054,6 +6318,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6102,6 +6368,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 0 @@ -6343,6 +6611,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -6471,8 +6741,18 @@ local.get $10 i32.load8_u local.set $12 - local.get $12 - call $~lib/util/hash/hash8 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $12 + call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.5 end local.get $1 @@ -6560,6 +6840,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 255 i32.and @@ -6574,6 +6864,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store8 offset=1 @@ -6673,6 +6965,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -6687,6 +6989,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -7377,6 +7683,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -7465,6 +7785,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -7554,6 +7888,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 16 i32.shl @@ -7570,6 +7918,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -7663,6 +8013,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -7697,7 +8061,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -7769,6 +8135,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -7817,6 +8185,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 1 @@ -8058,6 +8428,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8188,6 +8560,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.5 @@ -8277,6 +8663,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 16 i32.shl @@ -8293,6 +8693,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store16 offset=2 @@ -8392,6 +8794,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -8408,6 +8824,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -9096,6 +9516,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -9182,6 +9616,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -9271,6 +9719,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 65535 i32.and @@ -9285,6 +9747,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -9378,6 +9842,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -9410,7 +9888,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -9482,6 +9962,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9530,6 +10012,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 1 @@ -9771,6 +10255,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -9899,6 +10385,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.5 @@ -9988,6 +10488,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 65535 i32.and @@ -10002,6 +10516,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store16 offset=2 @@ -10101,6 +10617,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -10115,6 +10645,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -10659,6 +11193,24 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -10675,19 +11227,37 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 352 - i32.const 416 - i32.const 111 - i32.const 17 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 352 + i32.const 416 + i32.const 111 + i32.const 17 call $~lib/builtins/abort unreachable end @@ -10838,6 +11408,24 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.4 @@ -10850,6 +11438,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -11490,6 +12082,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -11574,6 +12184,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -11663,6 +12291,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -11675,6 +12321,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -11768,6 +12416,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -11798,7 +12464,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -11870,6 +12538,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11918,6 +12588,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -12159,6 +12831,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -12285,6 +12959,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.5 @@ -12374,6 +13066,24 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.4 @@ -12386,6 +13096,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -12485,6 +13197,24 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.6 @@ -12497,6 +13227,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -13225,6 +13959,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -13310,6 +14066,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -13400,6 +14178,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -13412,6 +14212,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -13505,6 +14307,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -13535,9 +14359,11 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 - i32.gt_u - if + i32.const 1073741808 + i32.const 3 + i32.shr_u + i32.gt_u + if i32.const 192 i32.const 464 i32.const 57 @@ -13607,6 +14433,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -13655,6 +14483,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -13896,6 +14726,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -14023,6 +14855,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.5 @@ -14113,6 +14967,28 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.4 @@ -14125,6 +15001,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i64.store offset=8 @@ -14225,6 +15103,28 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.6 @@ -14237,6 +15137,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -14885,6 +15789,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -14970,6 +15896,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -15060,6 +16008,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -15072,6 +16042,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -15165,6 +16137,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -15195,7 +16189,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -15267,6 +16263,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -15315,6 +16313,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -15556,6 +16556,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -15683,6 +16685,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.5 @@ -15773,6 +16797,28 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.4 @@ -15785,6 +16831,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i64.store offset=8 @@ -15885,6 +16933,28 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.6 @@ -15897,6 +16967,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -16545,6 +17619,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16631,6 +17715,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16722,6 +17816,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16735,6 +17839,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -16828,6 +17934,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16859,8 +17975,10 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 - i32.gt_u + i32.const 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u if i32.const 192 i32.const 464 @@ -16931,6 +18049,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -16979,6 +18099,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -17220,6 +18342,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) @@ -17347,6 +18471,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17438,6 +18572,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17451,6 +18595,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 f32.store offset=4 @@ -17551,6 +18697,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17564,6 +18720,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -18212,6 +19372,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18298,6 +19472,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18389,6 +19577,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18402,6 +19604,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -18495,6 +19699,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18526,7 +19744,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -18598,6 +19818,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -18646,6 +19868,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -18887,6 +20111,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) @@ -19014,6 +20240,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19105,6 +20345,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19118,6 +20372,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 f64.store offset=8 @@ -19218,6 +20474,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19231,6 +20501,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -19768,6 +21042,8 @@ call $start:std/map ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -19780,8 +21056,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -19805,6 +21085,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -19822,6 +21106,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -19834,6 +21120,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -19854,6 +21142,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -19880,17 +21172,28 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19905,6 +21208,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19918,6 +21228,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19931,11 +21248,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19950,6 +21276,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19963,11 +21296,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19982,6 +21324,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19995,11 +21344,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20014,6 +21372,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20027,11 +21392,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20046,6 +21420,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20059,11 +21440,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20078,6 +21468,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20091,11 +21488,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20110,6 +21516,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20123,11 +21536,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20142,6 +21564,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20155,11 +21584,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20174,6 +21612,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index a0f8c67b4c..7ee6e66b0b 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -342,6 +342,10 @@ f64.ne return end + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 local.get $1 local.get $2 @@ -570,6 +574,14 @@ f32.ne return end + i32.const 4 + i32.const 8 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 local.get $1 local.get $2 @@ -1103,7 +1115,9 @@ local.get $2 i32.const 1 i32.shl - i32.const 2034237440 + i32.const 1017118720 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -1300,6 +1314,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -1309,7 +1327,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -1419,7 +1439,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -1436,7 +1458,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -1524,14 +1547,18 @@ local.set $9 i32.const 2104 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2104 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 @@ -1609,7 +1636,9 @@ i64.and local.set $1 local.get $1 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.lt_u if local.get $0 @@ -1634,7 +1663,9 @@ return end local.get $1 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.lt_u if f64.const 2 @@ -1741,7 +1772,9 @@ local.get $1 i32.const 1 i32.shl - i32.const 1728053248 + i32.const 864026624 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -1906,6 +1939,10 @@ (local $11 f64) (local $12 f64) (local $13 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -1915,7 +1952,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -2069,7 +2108,11 @@ i32.and local.set $2 local.get $2 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.lt_u if local.get $0 @@ -2088,7 +2131,11 @@ return end local.get $2 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.lt_u if f32.const 2 @@ -2423,7 +2470,9 @@ f64.reinterpret_i64 local.set $3 local.get $2 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.ge_u if local.get $3 @@ -2433,7 +2482,9 @@ local.set $3 else local.get $2 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.ge_u if f64.const 2 @@ -2454,7 +2505,9 @@ local.set $3 else local.get $2 - i64.const 997 + i64.const 1023 + i64.const 26 + i64.sub i64.ge_u if local.get $3 @@ -2516,7 +2569,11 @@ f32.reinterpret_i32 local.set $2 local.get $1 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.ge_u if local.get $2 @@ -2526,7 +2583,11 @@ local.set $2 else local.get $1 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.ge_u if f32.const 2 @@ -2547,7 +2608,11 @@ local.set $2 else local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.ge_u if local.get $2 @@ -3118,11 +3183,15 @@ f64.abs local.set $3 local.get $2 - i64.const 1022 + i64.const 1023 + i64.const 1 + i64.sub i64.lt_u if local.get $2 - i64.const 991 + i64.const 1023 + i64.const 32 + i64.sub i64.ge_u if f64.const 0.5 @@ -3194,11 +3263,19 @@ f32.abs local.set $2 local.get $1 - i32.const 1056964608 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $1 - i32.const 796917760 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub i32.ge_u if f32.const 0.5 @@ -3444,7 +3521,9 @@ unreachable end local.get $3 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $5 i32.lt_u @@ -3476,7 +3555,9 @@ i32.and if (result i32) local.get $5 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $3 i32.lt_u @@ -3742,7 +3823,9 @@ unreachable end local.get $2 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $3 i32.lt_u @@ -3774,7 +3857,9 @@ i32.and if (result i32) local.get $3 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $2 i32.lt_u @@ -4710,6 +4795,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -5204,6 +5293,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -6076,6 +6169,10 @@ (local $19 f64) (local $20 f64) (local $21 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/exp_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -6358,7 +6455,11 @@ i32.lt_u if local.get $2 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if f64.const 1 @@ -6750,6 +6851,10 @@ (local $9 f64) (local $10 f64) (local $11 i64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -6786,7 +6891,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const 88.72283172607422 + i32.const 1118925335 + f32.reinterpret_i32 f32.gt if local.get $1 @@ -6795,7 +6901,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const -103.97207641601562 + i32.const -1026559564 + f32.reinterpret_i32 f32.lt if f32.const 0 @@ -6888,7 +6995,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if f32.const 1 @@ -7569,7 +7680,9 @@ f64.const 1 local.set $7 local.get $5 - i32.const 1533 + i32.const 1023 + i32.const 510 + i32.add i32.gt_s if f64.const 5260135901548373507240989e186 @@ -7584,7 +7697,9 @@ local.set $1 else local.get $6 - i32.const 573 + i32.const 1023 + i32.const 450 + i32.sub i32.lt_s if f64.const 1.90109156629516e-211 @@ -7720,14 +7835,18 @@ f32.reinterpret_i32 local.set $1 local.get $3 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.eq if local.get $1 return end local.get $2 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.ge_u if (result i32) i32.const 1 @@ -7742,7 +7861,9 @@ local.get $2 local.get $3 i32.sub - i32.const 209715200 + i32.const 25 + i32.const 23 + i32.shl i32.ge_u end if @@ -7754,7 +7875,11 @@ f32.const 1 local.set $5 local.get $2 - i32.const 1568669696 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl i32.ge_u if f32.const 1237940039285380274899124e3 @@ -7769,7 +7894,11 @@ local.set $1 else local.get $3 - i32.const 562036736 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl i32.lt_u if f32.const 8.077935669463161e-28 @@ -8389,6 +8518,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -8398,7 +8531,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -8502,7 +8637,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -8748,6 +8885,10 @@ (local $13 f64) (local $14 f64) (local $15 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -8757,7 +8898,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -9637,6 +9780,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -9661,7 +9808,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -9671,7 +9820,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -9682,7 +9833,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -9758,7 +9911,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -9787,14 +9942,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -9868,7 +10027,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -9939,7 +10100,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -10603,6 +10766,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -10621,7 +10788,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -10630,7 +10799,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -10658,7 +10831,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -10666,7 +10841,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -10678,7 +10855,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -10687,7 +10866,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -10710,7 +10891,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -10738,14 +10923,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -10811,7 +11000,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 @@ -11379,6 +11570,10 @@ block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $4 f64.const 0 f64.gt @@ -11422,6 +11617,10 @@ block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $4 f32.const 0 f32.gt @@ -12237,6 +12436,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -12732,6 +12935,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -13295,7 +13502,11 @@ i32.lt_u if local.get $3 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -13411,7 +13622,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -13802,6 +14017,10 @@ i32.const 2147483647 i32.and local.set $7 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $7 i32.const 1073928572 i32.lt_u @@ -14177,6 +14396,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -15188,6 +15411,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -15630,6 +15857,10 @@ (local $3 i64) (local $4 i64) i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 0 local.set $1 local.get $0 i64.reinterpret_f64 @@ -15641,7 +15872,9 @@ i64.and local.set $3 local.get $3 - i64.const 1053 + i64.const 1023 + i64.const 30 + i64.add i64.le_u if local.get $0 @@ -15649,7 +15882,11 @@ local.set $1 else local.get $3 - i64.const 1106 + i64.const 1023 + i64.const 30 + i64.add + i64.const 53 + i64.add i64.le_u if local.get $2 @@ -15739,6 +15976,10 @@ (local $4 i32) i64.const 1 local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 0 i32.lt_s @@ -16059,7 +16300,15 @@ (local $2 i32) (local $3 i64) (local $4 f32) - f64.const 2.718281828459045 + global.get $~lib/math/NativeMath.E + global.get $~lib/math/NativeMath.E + f64.eq + drop + global.get $~lib/math/NativeMathf.E + global.get $~lib/math/NativeMathf.E + f32.eq + drop + global.get $~lib/math/NativeMath.E global.get $~lib/bindings/Math/E f64.const 0 i32.const 0 @@ -16073,7 +16322,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6931471805599453 + global.get $~lib/math/NativeMath.LN2 global.get $~lib/bindings/Math/LN2 f64.const 0 i32.const 0 @@ -16087,7 +16336,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.302585092994046 + global.get $~lib/math/NativeMath.LN10 global.get $~lib/bindings/Math/LN10 f64.const 0 i32.const 0 @@ -16101,7 +16350,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1.4426950408889634 + global.get $~lib/math/NativeMath.LOG2E global.get $~lib/bindings/Math/LOG2E f64.const 0 i32.const 0 @@ -16115,7 +16364,7 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + global.get $~lib/math/NativeMath.PI global.get $~lib/bindings/Math/PI f64.const 0 i32.const 0 @@ -16129,7 +16378,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0.7071067811865476 + global.get $~lib/math/NativeMath.SQRT1_2 global.get $~lib/bindings/Math/SQRT1_2 f64.const 0 i32.const 0 @@ -16143,7 +16392,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1.4142135623730951 + global.get $~lib/math/NativeMath.SQRT2 global.get $~lib/bindings/Math/SQRT2 f64.const 0 i32.const 0 @@ -16157,7 +16406,7 @@ call $~lib/builtins/abort unreachable end - f32.const 2.7182817459106445 + global.get $~lib/math/NativeMathf.E global.get $~lib/bindings/Math/E f32.demote_f64 f32.const 0 @@ -16172,7 +16421,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6931471824645996 + global.get $~lib/math/NativeMathf.LN2 global.get $~lib/bindings/Math/LN2 f32.demote_f64 f32.const 0 @@ -16187,7 +16436,7 @@ call $~lib/builtins/abort unreachable end - f32.const 2.3025851249694824 + global.get $~lib/math/NativeMathf.LN10 global.get $~lib/bindings/Math/LN10 f32.demote_f64 f32.const 0 @@ -16202,7 +16451,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.4426950216293335 + global.get $~lib/math/NativeMathf.LOG2E global.get $~lib/bindings/Math/LOG2E f32.demote_f64 f32.const 0 @@ -16217,7 +16466,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3.1415927410125732 + global.get $~lib/math/NativeMathf.PI global.get $~lib/bindings/Math/PI f32.demote_f64 f32.const 0 @@ -16232,7 +16481,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7071067690849304 + global.get $~lib/math/NativeMathf.SQRT1_2 global.get $~lib/bindings/Math/SQRT1_2 f32.demote_f64 f32.const 0 @@ -16247,7 +16496,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.4142135381698608 + global.get $~lib/math/NativeMathf.SQRT2 global.get $~lib/bindings/Math/SQRT2 f32.demote_f64 f32.const 0 @@ -16487,9 +16736,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_scalbn @@ -16551,7 +16802,9 @@ i32.const 2147483647 f64.const inf f64.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16607,9 +16860,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 2147483647 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_scalbn @@ -16656,7 +16911,9 @@ i32.const -1074 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16671,7 +16928,9 @@ i32.const -1073 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16686,7 +16945,9 @@ i32.const -1024 f64.const 2.781342323134007e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16922,9 +17183,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_scalbnf @@ -16986,7 +17249,9 @@ i32.const 2147483647 f32.const inf f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17042,9 +17307,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 2147483647 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_scalbnf @@ -17091,7 +17358,9 @@ i32.const -149 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17106,7 +17375,9 @@ i32.const -148 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17121,7 +17392,9 @@ i32.const -128 f32.const 1.4693693398263237e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17342,7 +17615,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -17580,7 +17854,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -17611,7 +17886,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17625,7 +17900,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17639,7 +17914,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17653,7 +17928,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17667,7 +17942,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17681,7 +17956,7 @@ f64.const 0.6619858980995045 f64.const 0.8473310828433507 f64.const -0.41553276777267456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17695,7 +17970,7 @@ f64.const -0.4066039223853553 f64.const 1.989530071088669 f64.const 0.4973946213722229 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17709,7 +17984,7 @@ f64.const 0.5617597462207241 f64.const 0.9742849645674904 f64.const -0.4428897500038147 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17723,7 +17998,7 @@ f64.const 0.7741522965913037 f64.const 0.6854215158636222 f64.const -0.12589527666568756 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17737,7 +18012,7 @@ f64.const -0.6787637026394024 f64.const 2.316874138205964 f64.const -0.17284949123859406 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17751,7 +18026,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17765,7 +18040,7 @@ f64.const -1 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17793,7 +18068,7 @@ f64.const 1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17807,7 +18082,7 @@ f64.const -1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17821,7 +18096,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17832,10 +18107,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17863,7 +18139,7 @@ f64.const -0.5309227209592985 f64.const 2.1304853799705463 f64.const 0.1391008496284485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17877,7 +18153,7 @@ f64.const 0.4939556746399746 f64.const 1.0541629875851946 f64.const 0.22054767608642578 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17891,7 +18167,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -17905,7 +18181,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -17919,7 +18195,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -17933,7 +18209,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -17947,7 +18223,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -17961,7 +18237,7 @@ f32.const 0.6619858741760254 f32.const 0.8473311066627502 f32.const -0.13588131964206696 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -17975,7 +18251,7 @@ f32.const -0.40660393238067627 f32.const 1.989530086517334 f32.const 0.03764917701482773 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -17989,7 +18265,7 @@ f32.const 0.5617597699165344 f32.const 0.9742849469184875 f32.const 0.18443739414215088 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18003,7 +18279,7 @@ f32.const 0.7741522789001465 f32.const 0.6854215264320374 f32.const -0.29158344864845276 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18017,7 +18293,7 @@ f32.const -0.6787636876106262 f32.const 2.3168740272521973 f32.const -0.3795364499092102 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18031,7 +18307,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18045,7 +18321,7 @@ f32.const -1 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18073,7 +18349,7 @@ f32.const 1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18087,7 +18363,7 @@ f32.const -1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18101,7 +18377,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18112,10 +18388,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18143,7 +18420,7 @@ f32.const 0.49965065717697144 f32.const 1.0476008653640747 f32.const -0.21161814033985138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18157,7 +18434,7 @@ f32.const -0.5051405429840088 f32.const 2.1003410816192627 f32.const -0.20852705836296082 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18171,7 +18448,7 @@ f32.const -0.5189794898033142 f32.const 2.116452932357788 f32.const -0.14600826799869537 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18185,7 +18462,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18199,7 +18476,7 @@ f64.const 4.345239849338305 f64.const 2.1487163980597503 f64.const -0.291634738445282 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18213,7 +18490,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18227,7 +18504,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18241,7 +18518,7 @@ f64.const 9.267056966972586 f64.const 2.91668914109908 f64.const -0.24191908538341522 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18255,7 +18532,7 @@ f64.const 0.6619858980995045 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18269,7 +18546,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18283,7 +18560,7 @@ f64.const 0.5617597462207241 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18297,7 +18574,7 @@ f64.const 0.7741522965913037 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18311,7 +18588,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18367,7 +18644,7 @@ f64.const 0.9999923706054688 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18381,7 +18658,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18395,7 +18672,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18406,10 +18683,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18423,7 +18701,7 @@ f64.const 1.1060831199926429 f64.const 0.4566373404384803 f64.const -0.29381608963012695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18437,7 +18715,7 @@ f64.const 1.1089809557628658 f64.const 0.4627246859959428 f64.const -0.3990095555782318 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18451,7 +18729,7 @@ f64.const 1.1169429159875521 f64.const 0.47902433134075284 f64.const -0.321674108505249 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18465,7 +18743,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18479,7 +18757,7 @@ f32.const 4.345239639282227 f32.const 2.148716449737549 f32.const 0.4251045286655426 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acoshf i32.eqz if @@ -18493,7 +18771,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18507,7 +18785,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18521,7 +18799,7 @@ f32.const 9.267057418823242 f32.const 2.916689157485962 f32.const -0.1369788944721222 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acoshf i32.eqz if @@ -18535,7 +18813,7 @@ f32.const 0.6619858741760254 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18549,7 +18827,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18563,7 +18841,7 @@ f32.const 0.5617597699165344 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18577,7 +18855,7 @@ f32.const 0.7741522789001465 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18591,7 +18869,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18647,7 +18925,7 @@ f32.const 0.9999923706054688 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18661,7 +18939,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18675,7 +18953,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18686,10 +18964,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18703,7 +18982,7 @@ f32.const -1125899906842624 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18717,7 +18996,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18731,7 +19010,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18745,7 +19024,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18759,7 +19038,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18773,7 +19052,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18787,7 +19066,7 @@ f64.const 0.6619858980995045 f64.const 0.7234652439515459 f64.const -0.13599912822246552 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18801,7 +19080,7 @@ f64.const -0.4066039223853553 f64.const -0.41873374429377225 f64.const -0.09264230728149414 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18815,7 +19094,7 @@ f64.const 0.5617597462207241 f64.const 0.5965113622274062 f64.const -0.10864213854074478 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18829,7 +19108,7 @@ f64.const 0.7741522965913037 f64.const 0.8853748109312743 f64.const -0.4256366193294525 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18843,7 +19122,7 @@ f64.const -0.6787637026394024 f64.const -0.7460778114110673 f64.const 0.13986606895923615 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18857,7 +19136,7 @@ f64.const 1 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18871,7 +19150,7 @@ f64.const -1 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18913,7 +19192,7 @@ f64.const 1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18927,7 +19206,7 @@ f64.const -1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18941,7 +19220,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18952,10 +19231,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18983,7 +19263,7 @@ f64.const 0.5073043929119148 f64.const 0.5320538997772349 f64.const -0.16157317161560059 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -18997,7 +19277,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19011,7 +19291,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19025,7 +19305,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19039,7 +19319,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19053,7 +19333,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19067,7 +19347,7 @@ f32.const 0.6619858741760254 f32.const 0.7234652042388916 f32.const -0.1307632476091385 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19081,7 +19361,7 @@ f32.const -0.40660393238067627 f32.const -0.41873374581336975 f32.const 0.3161141574382782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19095,7 +19375,7 @@ f32.const 0.5617597699165344 f32.const 0.5965113639831543 f32.const -0.4510819613933563 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19109,7 +19389,7 @@ f32.const 0.7741522789001465 f32.const 0.8853747844696045 f32.const 0.02493886835873127 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19123,7 +19403,7 @@ f32.const -0.6787636876106262 f32.const -0.7460777759552002 f32.const 0.2515012323856354 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19137,7 +19417,7 @@ f32.const 1 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19151,7 +19431,7 @@ f32.const -1 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19193,7 +19473,7 @@ f32.const 1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19207,7 +19487,7 @@ f32.const -1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19221,7 +19501,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19232,10 +19512,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19263,7 +19544,7 @@ f32.const 0.5004770159721375 f32.const 0.5241496562957764 f32.const -0.29427099227905273 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19277,7 +19558,7 @@ f64.const -8.06684839057968 f64.const -2.784729878387861 f64.const -0.4762189984321594 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19291,7 +19572,7 @@ f64.const 4.345239849338305 f64.const 2.175213389013164 f64.const -0.02728751301765442 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19305,7 +19586,7 @@ f64.const -8.38143342755525 f64.const -2.822706083697696 f64.const 0.20985257625579834 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19319,7 +19600,7 @@ f64.const -6.531673581913484 f64.const -2.575619446591922 f64.const 0.3113134205341339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19333,7 +19614,7 @@ f64.const 9.267056966972586 f64.const 2.9225114951048674 f64.const 0.4991756081581116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19347,7 +19628,7 @@ f64.const 0.6619858980995045 f64.const 0.6212462762707166 f64.const -0.4697347581386566 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19361,7 +19642,7 @@ f64.const -0.4066039223853553 f64.const -0.39615990393192035 f64.const -0.40814438462257385 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19375,7 +19656,7 @@ f64.const 0.5617597462207241 f64.const 0.5357588870255474 f64.const 0.3520713150501251 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19389,7 +19670,7 @@ f64.const 0.7741522965913037 f64.const 0.7123571263197349 f64.const 0.13371451199054718 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19403,7 +19684,7 @@ f64.const -0.6787637026394024 f64.const -0.635182348903198 f64.const 0.04749670997262001 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19442,8 +19723,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_asinh @@ -19487,7 +19770,7 @@ f32.const -8.066848754882812 f32.const -2.7847299575805664 f32.const -0.14418013393878937 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19501,7 +19784,7 @@ f32.const 4.345239639282227 f32.const 2.17521333694458 f32.const -0.020796965807676315 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19515,7 +19798,7 @@ f32.const -8.381433486938477 f32.const -2.8227059841156006 f32.const 0.44718533754348755 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19529,7 +19812,7 @@ f32.const -6.531673431396484 f32.const -2.5756194591522217 f32.const -0.14822272956371307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19543,7 +19826,7 @@ f32.const 9.267057418823242 f32.const 2.922511577606201 f32.const 0.14270681142807007 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19557,7 +19840,7 @@ f32.const 0.6619858741760254 f32.const 0.6212462782859802 f32.const 0.3684912919998169 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19571,7 +19854,7 @@ f32.const -0.40660393238067627 f32.const -0.39615991711616516 f32.const -0.13170306384563446 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19585,7 +19868,7 @@ f32.const 0.5617597699165344 f32.const 0.535758912563324 f32.const 0.08184859901666641 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19599,7 +19882,7 @@ f32.const 0.7741522789001465 f32.const 0.7123571038246155 f32.const -0.14270737767219543 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19613,7 +19896,7 @@ f32.const -0.6787636876106262 f32.const -0.6351823210716248 f32.const 0.2583143711090088 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19652,8 +19935,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_asinhf @@ -19697,7 +19982,7 @@ f64.const -8.06684839057968 f64.const -1.4474613762633468 f64.const 0.14857111871242523 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19711,7 +19996,7 @@ f64.const 4.345239849338305 f64.const 1.344597927114538 f64.const -0.08170335739850998 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19725,7 +20010,7 @@ f64.const -8.38143342755525 f64.const -1.4520463463295539 f64.const -0.07505480200052261 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19739,7 +20024,7 @@ f64.const -6.531673581913484 f64.const -1.4188758658752532 f64.const -0.057633496820926666 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19753,7 +20038,7 @@ f64.const 9.267056966972586 f64.const 1.463303145448706 f64.const 0.1606956422328949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19767,7 +20052,7 @@ f64.const 0.6619858980995045 f64.const 0.5847550670238325 f64.const 0.4582556486129761 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19781,7 +20066,7 @@ f64.const -0.4066039223853553 f64.const -0.3861864177552131 f64.const -0.2574281692504883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19795,7 +20080,7 @@ f64.const 0.5617597462207241 f64.const 0.5118269531628881 f64.const -0.11444277316331863 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19809,7 +20094,7 @@ f64.const 0.7741522965913037 f64.const 0.6587802431653822 f64.const -0.11286488175392151 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19823,7 +20108,7 @@ f64.const -0.6787637026394024 f64.const -0.5963307826973472 f64.const -0.2182842344045639 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19865,7 +20150,7 @@ f64.const 1 f64.const 0.7853981633974483 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19879,7 +20164,7 @@ f64.const -1 f64.const -0.7853981633974483 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19893,7 +20178,7 @@ f64.const inf f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19904,10 +20189,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19935,7 +20221,7 @@ f64.const 0.6929821535674624 f64.const 0.6060004555152562 f64.const -0.17075790464878082 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19949,7 +20235,7 @@ f32.const -8.066848754882812 f32.const -1.4474613666534424 f32.const 0.12686480581760406 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -19963,7 +20249,7 @@ f32.const 4.345239639282227 f32.const 1.3445979356765747 f32.const 0.16045434772968292 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -19977,7 +20263,7 @@ f32.const -8.381433486938477 f32.const -1.4520463943481445 f32.const -0.39581751823425293 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -19991,7 +20277,7 @@ f32.const -6.531673431396484 f32.const -1.418875813484192 f32.const 0.410570353269577 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20005,7 +20291,7 @@ f32.const 9.267057418823242 f32.const 1.4633032083511353 f32.const 0.48403501510620117 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20019,7 +20305,7 @@ f32.const 0.6619858741760254 f32.const 0.5847550630569458 f32.const 0.2125193476676941 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20033,7 +20319,7 @@ f32.const -0.40660393238067627 f32.const -0.386186420917511 f32.const 0.18169628083705902 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20047,7 +20333,7 @@ f32.const 0.5617597699165344 f32.const 0.5118269920349121 f32.const 0.3499770760536194 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20061,7 +20347,7 @@ f32.const 0.7741522789001465 f32.const 0.6587802171707153 f32.const -0.2505330741405487 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20075,7 +20361,7 @@ f32.const -0.6787636876106262 f32.const -0.5963307619094849 f32.const 0.17614826560020447 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20117,7 +20403,7 @@ f32.const 1 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20131,7 +20417,7 @@ f32.const -1 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20145,7 +20431,7 @@ f32.const inf f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20156,10 +20442,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20187,7 +20474,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20201,7 +20488,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20215,7 +20502,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20229,7 +20516,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20243,7 +20530,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20257,7 +20544,7 @@ f64.const 0.6619858980995045 f64.const 0.7963404371347943 f64.const 0.21338365972042084 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20271,7 +20558,7 @@ f64.const -0.4066039223853553 f64.const -0.43153570730602897 f64.const -0.4325666129589081 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20285,7 +20572,7 @@ f64.const 0.5617597462207241 f64.const 0.6354006111644578 f64.const -0.06527865678071976 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20299,7 +20586,7 @@ f64.const 0.7741522965913037 f64.const 1.0306085575277995 f64.const 0.14632052183151245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20313,7 +20600,7 @@ f64.const -0.6787637026394024 f64.const -0.8268179645205255 f64.const 0.1397128701210022 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20341,7 +20628,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20352,10 +20639,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20397,7 +20685,7 @@ f64.const 1 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanh i32.eqz if @@ -20409,9 +20697,10 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanh i32.eqz if @@ -20425,7 +20714,7 @@ f64.const 1.0000152587890625 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20439,7 +20728,7 @@ f64.const -1.0000152587890625 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20453,7 +20742,7 @@ f64.const 1.3552527156068805e-20 f64.const 1.3552527156068805e-20 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20467,7 +20756,7 @@ f64.const 9.332636185032189e-302 f64.const 9.332636185032189e-302 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20481,7 +20770,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanh i32.eqz if @@ -20495,7 +20786,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanh i32.eqz if @@ -20509,7 +20802,7 @@ f64.const 8988465674311579538646525e283 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20523,7 +20816,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20537,7 +20830,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20551,7 +20844,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20565,7 +20858,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20579,7 +20872,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20593,7 +20886,7 @@ f32.const 0.6619858741760254 f32.const 0.7963404059410095 f32.const 0.19112196564674377 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20607,7 +20900,7 @@ f32.const -0.40660393238067627 f32.const -0.4315357208251953 f32.const -0.05180925130844116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20621,7 +20914,7 @@ f32.const 0.5617597699165344 f32.const 0.635400652885437 f32.const 0.11911056190729141 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20635,7 +20928,7 @@ f32.const 0.7741522789001465 f32.const 1.0306085348129272 f32.const 0.1798270344734192 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20649,7 +20942,7 @@ f32.const -0.6787636876106262 f32.const -0.8268179297447205 f32.const 0.11588983237743378 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20677,7 +20970,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20688,10 +20981,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20733,7 +21027,7 @@ f32.const 1 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanhf i32.eqz if @@ -20745,9 +21039,10 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanhf i32.eqz if @@ -20761,7 +21056,7 @@ f32.const 1.0000152587890625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20775,7 +21070,7 @@ f32.const -1.0000152587890625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20789,7 +21084,7 @@ f32.const 1.3552527156068805e-20 f32.const 1.3552527156068805e-20 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20803,7 +21098,7 @@ f32.const 7.888609052210118e-31 f32.const 7.888609052210118e-31 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20817,7 +21112,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanhf i32.eqz if @@ -20831,7 +21128,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanhf i32.eqz if @@ -20845,7 +21144,7 @@ f32.const 1701411834604692317316873e14 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20860,7 +21159,7 @@ f64.const 4.535662560676869 f64.const -1.0585895402489023 f64.const 0.09766263514757156 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20875,7 +21174,7 @@ f64.const -8.88799136300345 f64.const 2.6868734126013067 f64.const 0.35833948850631714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20890,7 +21189,7 @@ f64.const -2.763607337379588 f64.const -1.889300091849528 f64.const -0.46235957741737366 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20905,7 +21204,7 @@ f64.const 4.567535276842744 f64.const -0.9605469021111489 f64.const -0.21524477005004883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20920,7 +21219,7 @@ f64.const 4.811392084359796 f64.const 1.0919123946142109 f64.const 0.3894443213939667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20935,7 +21234,7 @@ f64.const 0.6620717923376739 f64.const -1.468508500616424 f64.const -0.448591411113739 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20950,7 +21249,7 @@ f64.const 0.05215452675006225 f64.const 1.5641600512601268 f64.const 0.3784842789173126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20965,7 +21264,7 @@ f64.const 7.67640268511754 f64.const -0.10281658910678508 f64.const -0.13993260264396667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20980,7 +21279,7 @@ f64.const 2.0119025790324803 f64.const 0.29697974004493516 f64.const 0.44753071665763855 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -20995,7 +21294,7 @@ f64.const 0.03223983060263804 f64.const -1.5131612053303916 f64.const 0.39708876609802246 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21025,7 +21324,7 @@ f64.const -0 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21040,7 +21339,7 @@ f64.const -1 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21052,10 +21351,11 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21115,7 +21415,7 @@ f64.const -0 f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21130,7 +21430,7 @@ f64.const -1 f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21142,10 +21442,11 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21190,7 +21491,7 @@ f64.const 0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21205,7 +21506,7 @@ f64.const -0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21220,7 +21521,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21235,7 +21536,7 @@ f64.const -0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21277,10 +21578,11 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21292,10 +21594,11 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21310,7 +21613,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21321,11 +21624,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21340,7 +21644,7 @@ f64.const inf f64.const 0.7853981633974483 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21352,10 +21656,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const 2.356194490192345 f64.const -0.20682445168495178 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21366,11 +21671,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const -0.7853981633974483 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21381,11 +21687,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const -2.356194490192345 f64.const 0.20682445168495178 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21400,7 +21708,9 @@ f64.const 1 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21415,7 +21725,9 @@ f64.const 8988465674311579538646525e283 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21430,7 +21742,9 @@ f64.const 8988465674311579538646525e283 f64.const 1.668805393880401e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21445,7 +21759,7 @@ f64.const -8988465674311579538646525e283 f64.const 3.141592653589793 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21460,7 +21774,7 @@ f32.const 4.535662651062012 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21475,7 +21789,7 @@ f32.const -8.887990951538086 f32.const 2.686873435974121 f32.const 0.09464472532272339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21490,7 +21804,7 @@ f32.const -2.7636072635650635 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21505,7 +21819,7 @@ f32.const 4.567535400390625 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21520,7 +21834,7 @@ f32.const 4.811392307281494 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21535,7 +21849,7 @@ f32.const 0.6620717644691467 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21550,7 +21864,7 @@ f32.const 0.052154526114463806 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21565,7 +21879,7 @@ f32.const 7.676402568817139 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21580,7 +21894,7 @@ f32.const 2.0119025707244873 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21595,7 +21909,7 @@ f32.const 0.03223983198404312 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21625,7 +21939,7 @@ f32.const -0 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21640,7 +21954,7 @@ f32.const -1 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21652,10 +21966,11 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21715,7 +22030,7 @@ f32.const -0 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21730,7 +22045,7 @@ f32.const -1 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21742,10 +22057,11 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21790,7 +22106,7 @@ f32.const 0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21805,7 +22121,7 @@ f32.const -0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21820,7 +22136,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21835,7 +22151,7 @@ f32.const -0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21877,10 +22193,11 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21892,10 +22209,11 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21910,7 +22228,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21921,11 +22239,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21940,7 +22259,7 @@ f32.const inf f32.const 0.7853981852531433 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21952,10 +22271,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 2.356194496154785 f32.const 0.02500828728079796 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21966,11 +22286,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const -0.7853981852531433 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21981,11 +22302,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const -2.356194496154785 f32.const -0.02500828728079796 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22000,7 +22323,9 @@ f32.const 1 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2f i32.eqz if @@ -22015,7 +22340,9 @@ f32.const 1701411834604692317316873e14 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2f i32.eqz if @@ -22029,7 +22356,7 @@ f64.const -8.06684839057968 f64.const -2.0055552545020245 f64.const 0.46667951345443726 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22043,7 +22370,7 @@ f64.const 4.345239849338305 f64.const 1.6318162410515635 f64.const -0.08160271495580673 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22057,7 +22384,7 @@ f64.const -8.38143342755525 f64.const -2.031293910673361 f64.const -0.048101816326379776 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22071,7 +22398,7 @@ f64.const -6.531673581913484 f64.const -1.8692820012204925 f64.const 0.08624018728733063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22085,7 +22412,7 @@ f64.const 9.267056966972586 f64.const 2.100457720859702 f64.const -0.2722989022731781 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22099,7 +22426,7 @@ f64.const 0.6619858980995045 f64.const 0.8715311470455973 f64.const 0.4414918124675751 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22113,7 +22440,7 @@ f64.const -0.4066039223853553 f64.const -0.740839030300223 f64.const 0.016453813761472702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22127,7 +22454,7 @@ f64.const 0.5617597462207241 f64.const 0.8251195400559286 f64.const 0.30680638551712036 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22141,7 +22468,7 @@ f64.const 0.7741522965913037 f64.const 0.9182102478959914 f64.const 0.06543998420238495 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22155,7 +22482,7 @@ f64.const -0.6787637026394024 f64.const -0.8788326906580094 f64.const -0.2016713172197342 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22194,8 +22521,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_cbrt @@ -22309,7 +22638,7 @@ f32.const -8.066848754882812 f32.const -2.0055553913116455 f32.const -0.44719240069389343 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22323,7 +22652,7 @@ f32.const 4.345239639282227 f32.const 1.6318162679672241 f32.const 0.44636252522468567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22337,7 +22666,7 @@ f32.const -8.381433486938477 f32.const -2.0312938690185547 f32.const 0.19483426213264465 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22351,7 +22680,7 @@ f32.const -6.531673431396484 f32.const -1.8692820072174072 f32.const -0.17075514793395996 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22365,7 +22694,7 @@ f32.const 9.267057418823242 f32.const 2.1004576683044434 f32.const -0.36362043023109436 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22379,7 +22708,7 @@ f32.const 0.6619858741760254 f32.const 0.8715311288833618 f32.const -0.12857209146022797 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22393,7 +22722,7 @@ f32.const -0.40660393238067627 f32.const -0.7408390641212463 f32.const -0.4655757546424866 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22407,7 +22736,7 @@ f32.const 0.5617597699165344 f32.const 0.8251195549964905 f32.const 0.05601907894015312 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22421,7 +22750,7 @@ f32.const 0.7741522789001465 f32.const 0.9182102680206299 f32.const 0.45498204231262207 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22435,7 +22764,7 @@ f32.const -0.6787636876106262 f32.const -0.8788326978683472 f32.const -0.22978967428207397 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22474,8 +22803,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_cbrtf @@ -22589,7 +22920,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22603,7 +22934,7 @@ f64.const 4.345239849338305 f64.const 5 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22617,7 +22948,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22631,7 +22962,7 @@ f64.const -6.531673581913484 f64.const -6 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22645,7 +22976,7 @@ f64.const 9.267056966972586 f64.const 10 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22659,7 +22990,7 @@ f64.const 0.6619858980995045 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22673,7 +23004,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22687,7 +23018,7 @@ f64.const 0.5617597462207241 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22701,7 +23032,7 @@ f64.const 0.7741522965913037 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22715,7 +23046,7 @@ f64.const -0.6787637026394024 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22754,8 +23085,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -22827,7 +23160,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22841,7 +23174,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22855,7 +23188,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22869,7 +23202,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22883,7 +23216,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22897,7 +23230,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22911,7 +23244,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22925,7 +23258,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22964,8 +23297,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -23037,7 +23372,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23051,7 +23386,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23065,7 +23400,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23079,7 +23414,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23093,7 +23428,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23107,7 +23442,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23121,7 +23456,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23135,7 +23470,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23174,8 +23509,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -23247,7 +23584,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23261,7 +23598,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23275,7 +23612,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23289,7 +23626,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23303,7 +23640,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23317,7 +23654,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23331,7 +23668,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23345,7 +23682,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23359,7 +23696,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23373,7 +23710,7 @@ f32.const 4.345239639282227 f32.const 5 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23387,7 +23724,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23401,7 +23738,7 @@ f32.const -6.531673431396484 f32.const -6 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23415,7 +23752,7 @@ f32.const 9.267057418823242 f32.const 10 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23429,7 +23766,7 @@ f32.const 0.6619858741760254 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23443,7 +23780,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23457,7 +23794,7 @@ f32.const 0.5617597699165344 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23471,7 +23808,7 @@ f32.const 0.7741522789001465 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23485,7 +23822,7 @@ f32.const -0.6787636876106262 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23524,8 +23861,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -23597,7 +23936,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23611,7 +23950,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23625,7 +23964,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23639,7 +23978,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23653,7 +23992,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23667,7 +24006,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23681,7 +24020,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23695,7 +24034,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23734,8 +24073,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -23807,7 +24148,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23821,7 +24162,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23835,7 +24176,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23849,7 +24190,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23863,7 +24204,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23877,7 +24218,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23891,7 +24232,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23905,7 +24246,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23944,8 +24285,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -24017,7 +24360,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24031,7 +24374,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24045,7 +24388,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24059,7 +24402,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24073,7 +24416,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24087,7 +24430,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24101,7 +24444,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24115,7 +24458,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24129,7 +24472,7 @@ f64.const -8.06684839057968 f64.const -0.21126281599887137 f64.const -0.10962469130754471 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24143,7 +24486,7 @@ f64.const 4.345239849338305 f64.const -0.35895602297578955 f64.const -0.10759828239679337 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24157,7 +24500,7 @@ f64.const -8.38143342755525 f64.const -0.503333091765516 f64.const -0.021430473774671555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24171,7 +24514,7 @@ f64.const -6.531673581913484 f64.const 0.9692853212503283 f64.const -0.4787876307964325 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24185,7 +24528,7 @@ f64.const 9.267056966972586 f64.const -0.9875878064788627 f64.const 0.4880668818950653 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24199,7 +24542,7 @@ f64.const 0.6619858980995045 f64.const 0.7887730869248576 f64.const 0.12708666920661926 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24213,7 +24556,7 @@ f64.const -0.4066039223853553 f64.const 0.9184692397007294 f64.const -0.26120713353157043 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24227,7 +24570,7 @@ f64.const 0.5617597462207241 f64.const 0.8463190467415896 f64.const -0.302586168050766 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24241,7 +24584,7 @@ f64.const 0.7741522965913037 f64.const 0.7150139289952383 f64.const -0.08537746220827103 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24255,7 +24598,7 @@ f64.const -0.6787637026394024 f64.const 0.7783494994757447 f64.const 0.30890750885009766 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24297,7 +24640,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cos i32.eqz if @@ -24308,10 +24651,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cos i32.eqz if @@ -24339,7 +24683,7 @@ f64.const 1 f64.const 0.5403023058681398 f64.const 0.4288286566734314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24353,7 +24697,7 @@ f64.const 2 f64.const -0.4161468365471424 f64.const -0.35859397053718567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24367,7 +24711,7 @@ f64.const 3 f64.const -0.9899924966004454 f64.const 0.3788451552391052 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24381,7 +24725,7 @@ f64.const 4 f64.const -0.6536436208636119 f64.const -0.23280560970306396 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24395,7 +24739,7 @@ f64.const 5 f64.const 0.28366218546322625 f64.const -0.3277357816696167 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24409,7 +24753,7 @@ f64.const 0.1 f64.const 0.9950041652780258 f64.const 0.49558526277542114 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24423,7 +24767,7 @@ f64.const 0.2 f64.const 0.9800665778412416 f64.const -0.02407640963792801 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24437,7 +24781,7 @@ f64.const 0.3 f64.const 0.955336489125606 f64.const -0.37772229313850403 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24451,7 +24795,7 @@ f64.const 0.4 f64.const 0.9210609940028851 f64.const 0.25818485021591187 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24465,7 +24809,7 @@ f64.const 0.5 f64.const 0.8775825618903728 f64.const 0.3839152157306671 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24479,7 +24823,7 @@ f64.const 2.3641409746639015e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24493,7 +24837,7 @@ f64.const 1.1820704873319507e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24507,7 +24851,7 @@ f64.const 5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24521,7 +24865,7 @@ f64.const -5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24535,7 +24879,7 @@ f64.const -3.14 f64.const -0.9999987317275395 f64.const 0.3855516016483307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24549,7 +24893,7 @@ f64.const 8988465674311579538646525e283 f64.const -0.826369834614148 f64.const -0.3695965111255646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24563,7 +24907,7 @@ f64.const 1797693134862315708145274e284 f64.const -0.9999876894265599 f64.const 0.23448343575000763 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24577,7 +24921,7 @@ f64.const -8988465674311579538646525e283 f64.const -0.826369834614148 f64.const -0.3695965111255646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24591,7 +24935,7 @@ f64.const 3.14 f64.const -0.9999987317275395 f64.const 0.3855516016483307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24605,7 +24949,7 @@ f64.const 3.1415 f64.const -0.9999999957076562 f64.const -0.30608975887298584 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24619,7 +24963,7 @@ f64.const 3.141592 f64.const -0.9999999999997864 f64.const 0.15403328835964203 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24633,7 +24977,7 @@ f64.const 3.14159265 f64.const -1 f64.const -0.02901807427406311 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24647,7 +24991,7 @@ f64.const 3.1415926535 f64.const -1 f64.const -1.8155848010792397e-05 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24661,7 +25005,7 @@ f64.const 3.141592653589 f64.const -1 f64.const -1.4169914130945926e-09 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24675,7 +25019,7 @@ f64.const 3.14159265358979 f64.const -1 f64.const -2.350864897985184e-14 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24689,7 +25033,7 @@ f64.const 3.141592653589793 f64.const -1 f64.const -3.377158741883318e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24703,7 +25047,7 @@ f64.const 1.57 f64.const 7.963267107332633e-04 f64.const 0.2968159317970276 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24717,7 +25061,7 @@ f64.const 1.570796 f64.const 3.2679489653813835e-07 f64.const -0.32570895552635193 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24731,7 +25075,7 @@ f64.const 1.5707963267 f64.const 9.489659630678013e-11 f64.const -0.27245646715164185 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24745,7 +25089,7 @@ f64.const 1.57079632679489 f64.const 6.722570487708307e-15 f64.const -0.10747683793306351 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24759,7 +25103,7 @@ f64.const 1.5707963267948966 f64.const 6.123233995736766e-17 f64.const 0.12148229777812958 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24773,7 +25117,7 @@ f64.const 0.6700635199486106 f64.const 0.7837822193016158 f64.const -0.07278502732515335 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24787,7 +25131,7 @@ f64.const 0.5343890189437553 f64.const 0.8605799719039517 f64.const -0.48434028029441833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24801,7 +25145,7 @@ f64.const 0.43999702754890085 f64.const 0.9047529293001976 f64.const 0.029777472838759422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24815,7 +25159,7 @@ f64.const 0.9902840844687313 f64.const 0.5484523364480768 f64.const 0.19765280187129974 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24829,7 +25173,7 @@ f64.const 0.45381447534338915 f64.const 0.8987813902263783 f64.const -0.017724866047501564 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24843,7 +25187,7 @@ f64.const 0.4609888813583589 f64.const 0.8956130474713057 f64.const 0.36449819803237915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24857,7 +25201,7 @@ f64.const 0.9285434097956422 f64.const 0.5990009794292984 f64.const -0.2899416387081146 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24871,7 +25215,7 @@ f64.const 0.9109092124488352 f64.const 0.6130276692774378 f64.const -0.49353134632110596 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24885,7 +25229,7 @@ f64.const 0.8328600650359556 f64.const 0.6727624710046357 f64.const -0.36606088280677795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24899,7 +25243,7 @@ f64.const 0.9536201252203433 f64.const 0.5787346183487084 f64.const -0.17089833319187164 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24913,7 +25257,7 @@ f64.const 0.8726590065457699 f64.const 0.6427919144259047 f64.const -0.2744986116886139 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24927,7 +25271,7 @@ f64.const 0.18100447535968447 f64.const 0.9836633656884893 f64.const 3.0195272993296385e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24941,7 +25285,7 @@ f64.const 2.356194490349839 f64.const -0.7071067812979126 f64.const -0.48278746008872986 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24955,7 +25299,7 @@ f64.const 2.356194490372272 f64.const -0.7071067813137752 f64.const -0.4866050183773041 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24969,7 +25313,7 @@ f64.const 2.3561944902251115 f64.const -0.707106781209717 f64.const -0.3533952236175537 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24983,7 +25327,7 @@ f64.const 2.3561944903149996 f64.const -0.7071067812732775 f64.const -0.41911986470222473 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24997,7 +25341,7 @@ f64.const 2.3561944903603527 f64.const -0.707106781305347 f64.const -0.4706200063228607 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25011,7 +25355,7 @@ f64.const 2.3561944903826197 f64.const -0.7071067813210922 f64.const -0.30618351697921753 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25025,7 +25369,7 @@ f64.const 2.356194490371803 f64.const -0.7071067813134436 f64.const -0.30564820766448975 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25039,7 +25383,7 @@ f64.const 2.356194490399931 f64.const -0.7071067813333329 f64.const -0.38845571875572205 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25053,7 +25397,7 @@ f64.const 2.356194490260191 f64.const -0.707106781234522 f64.const -0.23796851933002472 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25067,7 +25411,7 @@ f64.const 2.3561944904043153 f64.const -0.7071067813364332 f64.const -0.3274589478969574 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25081,7 +25425,7 @@ f64.const 2.0943951024759446 f64.const -0.5000000000716629 f64.const -0.41711342334747314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25095,7 +25439,7 @@ f64.const 2.09439510243324 f64.const -0.5000000000346797 f64.const -0.3566164970397949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25109,7 +25453,7 @@ f64.const 2.0943951025133885 f64.const -0.5000000001040902 f64.const -0.2253485918045044 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25123,7 +25467,7 @@ f64.const 2.0943951025466707 f64.const -0.5000000001329135 f64.const -0.12982259690761566 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25137,7 +25481,7 @@ f64.const 2.094395102413896 f64.const -0.5000000000179272 f64.const -0.15886764228343964 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25151,7 +25495,7 @@ f64.const 2.0943951024223404 f64.const -0.5000000000252403 f64.const -0.266656756401062 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25165,7 +25509,7 @@ f64.const 2.0943951024960477 f64.const -0.5000000000890726 f64.const -0.4652077853679657 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25179,7 +25523,7 @@ f64.const 2.0943951025173315 f64.const -0.500000000107505 f64.const -0.46710994839668274 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25193,7 +25537,7 @@ f64.const 2.094395102405924 f64.const -0.5000000000110234 f64.const -0.2469603717327118 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25207,7 +25551,7 @@ f64.const 2.094395102428558 f64.const -0.500000000030625 f64.const -0.3799441158771515 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25221,7 +25565,7 @@ f64.const 8.513210770864056 f64.const -0.6125076939987759 f64.const 0.4989966154098511 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25235,7 +25579,7 @@ f64.const 6.802886129801017 f64.const 0.8679677961345452 f64.const 0.4972165524959564 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25249,7 +25593,7 @@ f64.const 9.171925393086408 f64.const -0.9682027440424544 f64.const -0.49827584624290466 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25263,7 +25607,7 @@ f64.const 8.854690112888573 f64.const -0.8418535663818527 f64.const 0.4974979758262634 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25277,7 +25621,7 @@ f64.const 9.213510813859608 f64.const -0.9777659802838506 f64.const -0.4995604455471039 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25291,7 +25635,7 @@ f64.const 7.782449081542151 f64.const 0.07147156381293339 f64.const 0.49858126044273376 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25305,7 +25649,7 @@ f64.const 7.500261332273616 f64.const 0.34639017633458113 f64.const -0.4996210038661957 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25319,7 +25663,7 @@ f64.const 9.121739418731588 f64.const -0.9544341297541811 f64.const 0.4982815086841583 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25333,7 +25677,7 @@ f64.const 6.784954020476316 f64.const 0.8767332233166646 f64.const -0.4988083839416504 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25347,7 +25691,7 @@ f64.const 8.770846542666664 f64.const -0.7936984117400705 f64.const 0.4999682903289795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25361,7 +25705,7 @@ f64.const 9.313225746154785e-10 f64.const 1 f64.const 0.001953125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25375,7 +25719,7 @@ f64.const -9.313225746154785e-10 f64.const 1 f64.const 0.001953125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25389,7 +25733,7 @@ f64.const 2.2250738585072014e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25403,7 +25747,7 @@ f64.const -2.2250738585072014e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25417,7 +25761,7 @@ f64.const 5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25431,7 +25775,7 @@ f64.const -5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25473,7 +25817,7 @@ f64.const 1e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25487,7 +25831,7 @@ f64.const 4.4e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25501,7 +25845,7 @@ f64.const 5.562684646268003e-309 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25515,7 +25859,7 @@ f64.const 1.1125369292536007e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25529,7 +25873,7 @@ f64.const 2.2250738585072004e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25543,7 +25887,7 @@ f64.const 2.225073858507201e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25557,7 +25901,7 @@ f64.const 2.225073858507202e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25571,7 +25915,7 @@ f64.const 2.2250738585072024e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25585,7 +25929,7 @@ f64.const 4.4501477170144003e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25599,7 +25943,7 @@ f64.const 4.450147717014403e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25613,7 +25957,7 @@ f64.const 4.450147717014406e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25627,7 +25971,7 @@ f64.const 8.900295434028806e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25641,7 +25985,7 @@ f64.const 7.450580596923828e-09 f64.const 1 f64.const 0.125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25655,7 +25999,7 @@ f64.const 1.4901161193847656e-08 f64.const 0.9999999999999999 f64.const -1.850372590034581e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25669,7 +26013,7 @@ f64.const 4.470348358154297e-08 f64.const 0.999999999999999 f64.const -1.4988010832439613e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25683,7 +26027,7 @@ f64.const -1e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25697,7 +26041,7 @@ f64.const -4.4e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25711,7 +26055,7 @@ f64.const -5.562684646268003e-309 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25725,7 +26069,7 @@ f64.const -1.1125369292536007e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25739,7 +26083,7 @@ f64.const -2.2250738585072004e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25753,7 +26097,7 @@ f64.const -2.225073858507201e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25767,7 +26111,7 @@ f64.const -2.225073858507202e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25781,7 +26125,7 @@ f64.const -2.2250738585072024e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25795,7 +26139,7 @@ f64.const -4.4501477170144003e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25809,7 +26153,7 @@ f64.const -4.450147717014403e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25823,7 +26167,7 @@ f64.const -4.450147717014406e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25837,7 +26181,7 @@ f64.const -8.900295434028806e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25851,7 +26195,7 @@ f64.const -7.450580596923828e-09 f64.const 1 f64.const 0.125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25865,7 +26209,7 @@ f64.const -1.4901161193847656e-08 f64.const 0.9999999999999999 f64.const -1.850372590034581e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25879,7 +26223,7 @@ f64.const -4.470348358154297e-08 f64.const 0.999999999999999 f64.const -1.4988010832439613e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25890,9 +26234,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.cos - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -25904,9 +26252,17 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/math/NativeMath.cos - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -25918,9 +26274,13 @@ call $~lib/builtins/abort unreachable end - f64.const 3141592653589793231804887e66 + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos - f64.const 3141592653589793231804887e66 + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -26089,7 +26449,11 @@ unreachable end f64.const 0.7071067811865474 - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26102,7 +26466,11 @@ unreachable end f64.const 0.7071067811865477 - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26115,7 +26483,11 @@ unreachable end f64.const -0.7071067811865467 - f64.const 8.63937979737193 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26128,7 +26500,11 @@ unreachable end f64.const -0.7071067811865471 - f64.const 10.210176124166829 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26154,7 +26530,11 @@ unreachable end f64.const -3.435757038074824e-12 - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26169,7 +26549,7 @@ f32.const -8.066848754882812 f32.const -0.21126316487789154 f32.const 0.48328569531440735 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26183,7 +26563,7 @@ f32.const 4.345239639282227 f32.const -0.3589562177658081 f32.const 0.042505208402872086 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26197,7 +26577,7 @@ f32.const -8.381433486938477 f32.const -0.5033331513404846 f32.const -0.1386195719242096 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26211,7 +26591,7 @@ f32.const -6.531673431396484 f32.const 0.9692853689193726 f32.const 0.1786951720714569 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26225,7 +26605,7 @@ f32.const 9.267057418823242 f32.const -0.9875878691673279 f32.const 0.1389600932598114 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26239,7 +26619,7 @@ f32.const 0.6619858741760254 f32.const 0.7887731194496155 f32.const 0.2989593744277954 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26253,7 +26633,7 @@ f32.const -0.40660393238067627 f32.const 0.918469250202179 f32.const 0.24250665307044983 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26267,7 +26647,7 @@ f32.const 0.5617597699165344 f32.const 0.8463190197944641 f32.const -0.24033240973949432 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26281,7 +26661,7 @@ f32.const 0.7741522789001465 f32.const 0.7150139212608337 f32.const -0.3372635245323181 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26295,7 +26675,7 @@ f32.const -0.6787636876106262 f32.const 0.7783495187759399 f32.const 0.16550153493881226 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26337,7 +26717,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cosf i32.eqz if @@ -26348,10 +26728,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cosf i32.eqz if @@ -26379,7 +26760,7 @@ f32.const 1.862645149230957e-09 f32.const 1 f32.const 1.4551915228366852e-11 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26393,7 +26774,7 @@ f32.const -1.862645149230957e-09 f32.const 1 f32.const 1.4551915228366852e-11 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26407,7 +26788,7 @@ f32.const 1.1754943508222875e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26421,7 +26802,7 @@ f32.const -1.1754943508222875e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26435,7 +26816,7 @@ f32.const 1.401298464324817e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26449,7 +26830,7 @@ f32.const -1.401298464324817e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26463,7 +26844,7 @@ f32.const 2.802596928649634e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26477,7 +26858,7 @@ f32.const 1.2611686178923354e-44 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26491,7 +26872,7 @@ f32.const 2.938735877055719e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26505,7 +26886,7 @@ f32.const 5.877471754111438e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26519,7 +26900,7 @@ f32.const 1.1754940705625946e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26533,7 +26914,7 @@ f32.const 1.1754942106924411e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26547,7 +26928,7 @@ f32.const 1.175494490952134e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26561,7 +26942,7 @@ f32.const 1.1754946310819804e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26575,7 +26956,7 @@ f32.const 2.3509880009953429e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26589,7 +26970,7 @@ f32.const 2.350988701644575e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26603,7 +26984,7 @@ f32.const 2.3509895424236536e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26617,7 +26998,7 @@ f32.const 4.70197740328915e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26631,7 +27012,7 @@ f32.const 7.450580596923828e-09 f32.const 1 f32.const 2.3283064365386963e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26645,7 +27026,7 @@ f32.const 0.000244140625 f32.const 1 f32.const 0.25 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26659,7 +27040,7 @@ f32.const 0.00048828125 f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26673,7 +27054,7 @@ f32.const 0.0009765625 f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26687,7 +27068,7 @@ f32.const -2.802596928649634e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26701,7 +27082,7 @@ f32.const -1.2611686178923354e-44 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26715,7 +27096,7 @@ f32.const -2.938735877055719e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26729,7 +27110,7 @@ f32.const -5.877471754111438e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26743,7 +27124,7 @@ f32.const -1.1754940705625946e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26757,7 +27138,7 @@ f32.const -1.1754942106924411e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26771,7 +27152,7 @@ f32.const -1.175494490952134e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26785,7 +27166,7 @@ f32.const -1.1754946310819804e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26799,7 +27180,7 @@ f32.const -2.3509880009953429e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26813,7 +27194,7 @@ f32.const -2.350988701644575e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26827,7 +27208,7 @@ f32.const -2.3509895424236536e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26841,7 +27222,7 @@ f32.const -4.70197740328915e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26855,7 +27236,7 @@ f32.const -7.450580596923828e-09 f32.const 1 f32.const 2.3283064365386963e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26869,7 +27250,7 @@ f32.const -0.000244140625 f32.const 1 f32.const 0.25 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26883,7 +27264,7 @@ f32.const -0.00048828125 f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26897,7 +27278,7 @@ f32.const -0.0009765625 f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26911,7 +27292,7 @@ f32.const 255.99993896484375 f32.const -0.03985174745321274 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26925,7 +27306,7 @@ f32.const 5033165 f32.const 0.8471871614456177 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26939,7 +27320,7 @@ f32.const 421657440 f32.const 0.6728929281234741 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26953,7 +27334,7 @@ f32.const 2147483392 f32.const 0.9610780477523804 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26967,7 +27348,7 @@ f32.const 68719476736 f32.const 0.1694190502166748 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26981,7 +27362,7 @@ f32.const 549755813888 f32.const 0.20735950767993927 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26992,10 +27373,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE f32.const 0.8530210256576538 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27009,7 +27390,7 @@ f32.const -255.99993896484375 f32.const -0.03985174745321274 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27023,7 +27404,7 @@ f32.const -5033165 f32.const 0.8471871614456177 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27037,7 +27418,7 @@ f32.const -421657440 f32.const 0.6728929281234741 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27051,7 +27432,7 @@ f32.const -2147483392 f32.const 0.9610780477523804 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27065,7 +27446,7 @@ f32.const -68719476736 f32.const 0.1694190502166748 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27079,7 +27460,7 @@ f32.const -549755813888 f32.const 0.20735950767993927 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27090,10 +27471,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg f32.const 0.8530210256576538 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27107,7 +27489,7 @@ f64.const -8.06684839057968 f64.const 1593.5209938862329 f64.const -0.38098856806755066 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27121,7 +27503,7 @@ f64.const 4.345239849338305 f64.const 38.56174928426729 f64.const -0.2712278366088867 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27135,7 +27517,7 @@ f64.const -8.38143342755525 f64.const 2182.630979595893 f64.const 0.0817827582359314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27149,7 +27531,7 @@ f64.const -6.531673581913484 f64.const 343.273849250879 f64.const -0.429940402507782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27163,7 +27545,7 @@ f64.const 9.267056966972586 f64.const 5291.779170005587 f64.const -0.1592995822429657 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27177,7 +27559,7 @@ f64.const 0.6619858980995045 f64.const 1.2272321957342842 f64.const 0.23280741274356842 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27191,7 +27573,7 @@ f64.const -0.4066039223853553 f64.const 1.083808541871197 f64.const -0.3960916996002197 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27205,7 +27587,7 @@ f64.const 0.5617597462207241 f64.const 1.1619803583175077 f64.const 0.37748390436172485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27219,7 +27601,7 @@ f64.const 0.7741522965913037 f64.const 1.3149236876276706 f64.const 0.43587008118629456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27233,7 +27615,7 @@ f64.const -0.6787637026394024 f64.const 1.2393413245934533 f64.const 0.10201606154441833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27286,7 +27668,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -27317,7 +27700,7 @@ f32.const -8.066848754882812 f32.const 1593.5216064453125 f32.const 0.26242581009864807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27331,7 +27714,7 @@ f32.const 4.345239639282227 f32.const 38.56174087524414 f32.const -0.08168885856866837 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27345,7 +27728,7 @@ f32.const -8.381433486938477 f32.const 2182.631103515625 f32.const -0.02331414446234703 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27359,7 +27742,7 @@ f32.const -6.531673431396484 f32.const 343.2738037109375 f32.const 0.20081493258476257 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27373,7 +27756,7 @@ f32.const 9.267057418823242 f32.const 5291.78173828125 f32.const 0.36286723613739014 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27387,7 +27770,7 @@ f32.const 0.6619858741760254 f32.const 1.2272322177886963 f32.const 0.32777416706085205 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27401,7 +27784,7 @@ f32.const -0.40660393238067627 f32.const 1.0838085412979126 f32.const -0.039848703891038895 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27415,7 +27798,7 @@ f32.const 0.5617597699165344 f32.const 1.161980390548706 f32.const 0.15274477005004883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27429,7 +27812,7 @@ f32.const 0.7741522789001465 f32.const 1.314923644065857 f32.const -0.2387111485004425 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27443,7 +27826,7 @@ f32.const -0.6787636876106262 f32.const 1.2393412590026855 f32.const -0.45791932940483093 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27496,7 +27879,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -27527,7 +27911,7 @@ f64.const -8.06684839057968 f64.const 3.137706068161745e-04 f64.const -0.2599197328090668 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27541,7 +27925,7 @@ f64.const 4.345239849338305 f64.const 77.11053017112141 f64.const -0.02792675793170929 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27555,7 +27939,7 @@ f64.const -8.38143342755525 f64.const 2.290813384916323e-04 f64.const -0.24974334239959717 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27569,7 +27953,7 @@ f64.const -6.531673581913484 f64.const 1.4565661260931588e-03 f64.const -0.4816822409629822 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27583,7 +27967,7 @@ f64.const 9.267056966972586 f64.const 10583.558245524993 f64.const 0.17696762084960938 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27597,7 +27981,7 @@ f64.const 0.6619858980995045 f64.const 1.9386384525571998 f64.const -0.4964246451854706 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27611,7 +27995,7 @@ f64.const -0.4066039223853553 f64.const 0.6659078892838025 f64.const -0.10608318448066711 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27625,7 +28009,7 @@ f64.const 0.5617597462207241 f64.const 1.7537559518626311 f64.const -0.39162111282348633 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27639,7 +28023,7 @@ f64.const 0.7741522965913037 f64.const 2.1687528885129246 f64.const -0.2996125817298889 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27653,7 +28037,7 @@ f64.const -0.6787637026394024 f64.const 0.5072437089402843 f64.const 0.47261738777160645 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27695,7 +28079,7 @@ f64.const 1 f64.const 2.718281828459045 f64.const -0.3255307376384735 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27709,7 +28093,7 @@ f64.const -1 f64.const 0.36787944117144233 f64.const 0.22389651834964752 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27734,7 +28118,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -27765,7 +28150,7 @@ f64.const 1.0397214889526365 f64.const 2.828429155876411 f64.const 0.18803080916404724 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27779,7 +28164,7 @@ f64.const -1.0397214889526365 f64.const 0.35355313670217847 f64.const 0.2527272403240204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27793,7 +28178,7 @@ f64.const 1.0397210121154785 f64.const 2.8284278071766122 f64.const -0.4184139370918274 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27807,7 +28192,7 @@ f64.const 1.0397214889526367 f64.const 2.8284291558764116 f64.const -0.22618377208709717 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27818,10 +28203,10 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27832,10 +28217,11 @@ call $~lib/builtins/abort unreachable end - f64.const -5e-324 + global.get $~lib/builtins/f64.MIN_VALUE + f64.neg f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27846,10 +28232,13 @@ call $~lib/builtins/abort unreachable end - f64.const 709.782712893384 - f64.const 1797693134862273196746681e284 - f64.const -0.10568465292453766 - i32.const 1 + i64.const 4649454530587146735 + f64.reinterpret_i64 + i64.const 9218868437227405098 + f64.reinterpret_i64 + i64.const -4631092234375135232 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27860,10 +28249,13 @@ call $~lib/builtins/abort unreachable end - f64.const 709.7827128933841 + i64.const 4649454530587146736 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -27874,10 +28266,14 @@ call $~lib/builtins/abort unreachable end - f64.const -745.1332191019411 - f64.const 5e-324 - f64.const 0.5 - i32.const 9 + i64.const -4573606559926636463 + f64.reinterpret_i64 + global.get $~lib/builtins/f64.MIN_VALUE + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -27888,10 +28284,14 @@ call $~lib/builtins/abort unreachable end - f64.const -745.1332191019412 + i64.const -4573606559926636462 + f64.reinterpret_i64 f64.const 0 - f64.const -0.5 - i32.const 9 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -27902,10 +28302,13 @@ call $~lib/builtins/abort unreachable end - f64.const -708.3964185322641 - f64.const 2.2250738585072626e-308 - f64.const 0.26172348856925964 - i32.const 1 + i64.const -4573929700241785646 + f64.reinterpret_i64 + i64.const 4503599627370620 + f64.reinterpret_i64 + i64.const 4598386411140284416 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27916,10 +28319,15 @@ call $~lib/builtins/abort unreachable end - f64.const -708.3964185322642 - f64.const 2.2250738585070097e-308 - f64.const 2.2250738585070097e-308 - i32.const 9 + i64.const -4573929700241785645 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -27930,10 +28338,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.5006933289508785 - f64.const 1.6498647732549399 - f64.const 0.5 - i32.const 1 + i64.const 4602685064124656555 + f64.reinterpret_i64 + i64.const 4610109149550689567 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27944,10 +28355,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.628493326460252 - f64.const 1.8747837631658781 - f64.const 0.5 - i32.const 1 + i64.const 4603836184166978885 + f64.reinterpret_i64 + i64.const 4611122094629841017 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27958,10 +28372,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.837522455340574 - f64.const 2.3106351774748006 - f64.const -0.5 - i32.const 1 + i64.const 4605718951180848880 + f64.reinterpret_i64 + i64.const 4612385506662149744 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27972,10 +28389,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.8504909932810999 - f64.const 2.3407958848710777 - f64.const 0.5 - i32.const 1 + i64.const 4605835761386121865 + f64.reinterpret_i64 + i64.const 4612453422537445296 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27986,10 +28406,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.6270060846924657 - f64.const 5.088617001442459 - f64.const 0.5 - i32.const 1 + i64.const 4610006203169397430 + f64.reinterpret_i64 + i64.const 4617415291835269761 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28000,10 +28423,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.6744336219614115 - f64.const 5.335772228886831 - f64.const 0.5 - i32.const 1 + i64.const 4610219797808568955 + f64.reinterpret_i64 + i64.const 4617693563882825047 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28014,10 +28440,13 @@ call $~lib/builtins/abort unreachable end - f64.const 6.657914718791208 - f64.const 778.924964819056 - f64.const 0.5 - i32.const 1 + i64.const 4619182163989041060 + f64.reinterpret_i64 + i64.const 4650062712266849886 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28028,10 +28457,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.022872793631722 - f64.const 61259.41271820104 - f64.const 0.5 - i32.const 1 + i64.const 4622394943780502425 + f64.reinterpret_i64 + i64.const 4678652243157503230 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28042,10 +28474,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.411195701885317 - f64.const 90327.36165653409 - f64.const 0.5 - i32.const 1 + i64.const 4622613550143616215 + f64.reinterpret_i64 + i64.const 4680943662238555301 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28056,10 +28491,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.794490387560606 - f64.const 132520.20290772576 - f64.const 0.5 - i32.const 1 + i64.const 4622829325869063755 + f64.reinterpret_i64 + i64.const 4683793372338329074 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28070,10 +28508,13 @@ call $~lib/builtins/abort unreachable end - f64.const 412.83872756953286 - f64.const 1965989977109266413433084e155 - f64.const 0.5 - i32.const 1 + i64.const 4645970351893354075 + f64.reinterpret_i64 + i64.const 7289148599681560140 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28084,10 +28525,13 @@ call $~lib/builtins/abort unreachable end - f64.const 510.87569028483415 - f64.const 7421526272656495968225491e197 - f64.const -0.5 - i32.const 1 + i64.const 4647695036380671130 + f64.reinterpret_i64 + i64.const 7926454981994343700 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28098,10 +28542,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2.6589841439772853e-14 - f64.const 0.9999999999999735 - f64.const 0.5 - i32.const 1 + i64.const -4819432143425896336 + f64.reinterpret_i64 + i64.const 4607182418800017169 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28112,10 +28559,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2.7144952952085447e-14 - f64.const 0.9999999999999728 - f64.const -0.5 - i32.const 1 + i64.const -4819256221565452171 + f64.reinterpret_i64 + i64.const 4607182418800017163 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28129,7 +28579,7 @@ f32.const -8.066848754882812 f32.const 3.1377049162983894e-04 f32.const -0.030193336308002472 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28143,7 +28593,7 @@ f32.const 4.345239639282227 f32.const 77.11051177978516 f32.const -0.2875460684299469 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28157,7 +28607,7 @@ f32.const -8.381433486938477 f32.const 2.2908132814336568e-04 f32.const 0.2237040400505066 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28171,7 +28621,7 @@ f32.const -6.531673431396484 f32.const 1.4565663877874613e-03 f32.const 0.36469703912734985 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28185,7 +28635,7 @@ f32.const 9.267057418823242 f32.const 10583.5634765625 f32.const 0.45962104201316833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28199,7 +28649,7 @@ f32.const 0.6619858741760254 f32.const 1.93863844871521 f32.const 0.3568260967731476 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28213,7 +28663,7 @@ f32.const -0.40660393238067627 f32.const 0.6659078598022461 f32.const -0.38294991850852966 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28227,7 +28677,7 @@ f32.const 0.5617597699165344 f32.const 1.753756046295166 f32.const 0.44355490803718567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28241,7 +28691,7 @@ f32.const 0.7741522789001465 f32.const 2.168752908706665 f32.const 0.24562469124794006 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28255,7 +28705,7 @@ f32.const -0.6787636876106262 f32.const 0.5072436928749084 f32.const -0.3974292278289795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28297,7 +28747,7 @@ f32.const 1 f32.const 2.7182817459106445 f32.const -0.3462330996990204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28311,7 +28761,7 @@ f32.const -1 f32.const 0.3678794503211975 f32.const 0.3070148527622223 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28336,7 +28786,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -28367,7 +28818,7 @@ f32.const 88.72283172607422 f32.const 340279851902147610656242e15 f32.const -0.09067153930664062 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28381,7 +28832,9 @@ f32.const 88.72283935546875 f32.const inf f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28395,7 +28848,9 @@ f32.const -103.97207641601562 f32.const 1.401298464324817e-45 f32.const 0.49999967217445374 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28409,7 +28864,9 @@ f32.const -103.97208404541016 f32.const 0 f32.const -0.49999651312828064 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28423,7 +28880,7 @@ f32.const 0.3465735614299774 f32.const 1.4142135381698608 f32.const 0.13922421634197235 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28437,7 +28894,7 @@ f32.const 0.3465735912322998 f32.const 1.4142135381698608 f32.const -0.21432916820049286 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28451,7 +28908,7 @@ f32.const 0.3465736210346222 f32.const 1.4142136573791504 f32.const 0.43211743235588074 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28465,7 +28922,7 @@ f64.const -8.06684839057968 f64.const -0.9996862293931839 f64.const -0.2760058343410492 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28479,7 +28936,7 @@ f64.const 4.345239849338305 f64.const 76.11053017112141 f64.const -0.02792675793170929 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28493,7 +28950,7 @@ f64.const -8.38143342755525 f64.const -0.9997709186615084 f64.const 0.10052496194839478 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28507,7 +28964,7 @@ f64.const -6.531673581913484 f64.const -0.9985434338739069 f64.const -0.27437829971313477 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28521,7 +28978,7 @@ f64.const 9.267056966972586 f64.const 10582.558245524993 f64.const 0.17696762084960938 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28535,7 +28992,7 @@ f64.const 0.6619858980995045 f64.const 0.9386384525571999 f64.const 0.007150684483349323 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28549,7 +29006,7 @@ f64.const -0.4066039223853553 f64.const -0.3340921107161975 f64.const -0.21216636896133423 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28563,7 +29020,7 @@ f64.const 0.5617597462207241 f64.const 0.7537559518626312 f64.const 0.21675777435302734 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28577,7 +29034,7 @@ f64.const 0.7741522965913037 f64.const 1.1687528885129248 f64.const 0.4007748067378998 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28591,7 +29048,7 @@ f64.const -0.6787637026394024 f64.const -0.4927562910597158 f64.const -0.05476519837975502 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28633,7 +29090,7 @@ f64.const 1 f64.const 1.7182818284590453 f64.const 0.348938524723053 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28647,7 +29104,7 @@ f64.const -1 f64.const -0.6321205588285577 f64.const 0.11194825917482376 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28672,7 +29129,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -28703,7 +29161,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expm1 i32.eqz if @@ -28717,7 +29177,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expm1 i32.eqz if @@ -28731,7 +29193,7 @@ f32.const -8.066848754882812 f32.const -0.9996862411499023 f32.const -0.19532723724842072 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28745,7 +29207,7 @@ f32.const 4.345239639282227 f32.const 76.11051177978516 f32.const -0.2875460684299469 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28759,7 +29221,7 @@ f32.const -8.381433486938477 f32.const -0.9997709393501282 f32.const -0.34686920046806335 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28773,7 +29235,7 @@ f32.const -6.531673431396484 f32.const -0.9985434412956238 f32.const -0.1281939446926117 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28787,7 +29249,7 @@ f32.const 9.267057418823242 f32.const 10582.5634765625 f32.const 0.45962104201316833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28801,7 +29263,7 @@ f32.const 0.6619858741760254 f32.const 0.9386383891105652 f32.const -0.28634780645370483 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28815,7 +29277,7 @@ f32.const -0.40660393238067627 f32.const -0.3340921103954315 f32.const 0.23410017788410187 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28829,7 +29291,7 @@ f32.const 0.5617597699165344 f32.const 0.7537559866905212 f32.const -0.11289017647504807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28843,7 +29305,7 @@ f32.const 0.7741522789001465 f32.const 1.168752908706665 f32.const 0.4912493824958801 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28857,7 +29319,7 @@ f32.const -0.6787636876106262 f32.const -0.49275627732276917 f32.const 0.20514154434204102 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28899,7 +29361,7 @@ f32.const 1 f32.const 1.718281865119934 f32.const 0.3075338304042816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28913,7 +29375,7 @@ f32.const -1 f32.const -0.6321205496788025 f32.const 0.15350742638111115 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28938,7 +29400,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -28966,10 +29429,13 @@ call $~lib/builtins/abort unreachable end - f64.const -8.06684839057968 - f64.const 0.003729380227666592 - f64.const 0.1281578093767166 - i32.const 1 + i64.const -4602641186874283791 + f64.reinterpret_i64 + i64.const 4570745787852977234 + f64.reinterpret_i64 + i64.const 4593785391990964224 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -28980,10 +29446,13 @@ call $~lib/builtins/abort unreachable end - f64.const 4.345239849338305 - f64.const 20.32579462123892 - f64.const 0.03073759749531746 - i32.const 1 + i64.const 4616578323568966759 + f64.reinterpret_i64 + i64.const 4626414420249767698 + f64.reinterpret_i64 + i64.const 4584516730696499200 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -28994,10 +29463,13 @@ call $~lib/builtins/abort unreachable end - f64.const -8.38143342755525 - f64.const 2.9987283924334954e-03 - f64.const -0.31000515818595886 - i32.const 1 + i64.const -4602464091242371353 + f64.reinterpret_i64 + i64.const 4569061019426535842 + f64.reinterpret_i64 + i64.const -4624115860477313024 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29008,10 +29480,13 @@ call $~lib/builtins/abort unreachable end - f64.const -6.531673581913484 - f64.const 0.010808622025681005 - f64.const -0.28607869148254395 - i32.const 1 + i64.const -4604332007749985084 + f64.reinterpret_i64 + i64.const 4577384368165340865 + f64.reinterpret_i64 + i64.const -4624546881383432192 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29022,10 +29497,13 @@ call $~lib/builtins/abort unreachable end - f64.const 9.267056966972586 - f64.const 616.1154770730207 - f64.const -0.08883064985275269 - i32.const 1 + i64.const 4621406507342668262 + f64.reinterpret_i64 + i64.const 4648630624867737726 + f64.reinterpret_i64 + i64.const -4632306693286395904 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29036,10 +29514,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6619858980995045 - f64.const 1.5822591361986904 - f64.const -0.1258980929851532 - i32.const 1 + i64.const 4604137858433287319 + f64.reinterpret_i64 + i64.const 4609804680828834897 + f64.reinterpret_i64 + i64.const -4629668059727003648 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29050,10 +29531,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.4066039223853553 - f64.const 0.7543971221632684 - f64.const -0.24229088425636292 - i32.const 1 + i64.const -4622375691843501615 + f64.reinterpret_i64 + i64.const 4604970224741804156 + f64.reinterpret_i64 + i64.const -4625474567475822592 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29064,10 +29548,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.5617597462207241 - f64.const 1.4760685736993149 - f64.const 0.27173060178756714 - i32.const 1 + i64.const 4603235101512779211 + f64.reinterpret_i64 + i64.const 4609326441051132446 + f64.reinterpret_i64 + i64.const 4598566683265728512 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29078,10 +29565,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.7741522965913037 - f64.const 1.710184880131433 - f64.const -0.0205493476241827 - i32.const 1 + i64.const 4605148163534189634 + f64.reinterpret_i64 + i64.const 4610380807161541490 + f64.reinterpret_i64 + i64.const -4641791869250961408 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29092,10 +29582,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.6787637026394024 - f64.const 0.6247003734030933 - f64.const -0.31195688247680664 - i32.const 1 + i64.const -4619083057392940530 + f64.reinterpret_i64 + i64.const 4603802020283029177 + f64.reinterpret_i64 + i64.const -4624080701338157056 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29107,7 +29600,8 @@ unreachable end f64.const 0 - f64.const 1 + i64.const 4607182418800017408 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29121,7 +29615,8 @@ unreachable end f64.const 0 - f64.const 1 + i64.const 4607182418800017408 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29135,7 +29630,8 @@ unreachable end f64.const 1 - f64.const 2 + i64.const 4611686018427387904 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29149,7 +29645,8 @@ unreachable end f64.const -1 - f64.const 0.5 + i64.const 4602678819172646912 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29176,7 +29673,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -29204,10 +29702,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.998046875 - f64.const 3.9945884515638808 - f64.const 0.1476455181837082 - i32.const 1 + i64.const 4611677222334365696 + f64.reinterpret_i64 + i64.const 4616177432330998198 + f64.reinterpret_i64 + i64.const 4594487510695936000 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29218,10 +29719,13 @@ call $~lib/builtins/abort unreachable end - f64.const -1021.9 - f64.const 2.384775113731291e-308 - f64.const -0.2217157781124115 - i32.const 1 + i64.const -4571172093576400077 + f64.reinterpret_i64 + i64.const 4826838566504112 + f64.reinterpret_i64 + i64.const -4626215863798726656 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29232,8 +29736,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1022 - f64.const 2.2250738585072014e-308 + i64.const -4571171213967097856 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29246,10 +29752,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1022.1 - f64.const 2.0760673185932884e-308 - f64.const 0.198451966047287 - i32.const 9 + i64.const -4571170334357795635 + f64.reinterpret_i64 + i64.const 4202007033009479 + f64.reinterpret_i64 + i64.const 4596318005893267456 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29260,8 +29771,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1023 - f64.const 1.1125369292536007e-308 + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29274,10 +29787,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1023.9 - f64.const 1677307003485741635311718e284 - f64.const 0.396903932094574 - i32.const 1 + i64.const 4652217535464420147 + f64.reinterpret_i64 + i64.const 9218265252038683278 + f64.reinterpret_i64 + i64.const 4600821605520637952 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29288,10 +29804,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1024 + i64.const 4652218415073722368 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29302,10 +29821,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1024.1 + i64.const 4652218854878373478 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29316,10 +29838,13 @@ call $~lib/builtins/abort unreachable end - f64.const 3.14 - f64.const 8.815240927012887 - f64.const 0.39309585094451904 - i32.const 1 + i64.const 4614253070214989087 + f64.reinterpret_i64 + i64.const 4621152157524017948 + f64.reinterpret_i64 + i64.const 4600753005229244416 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29330,10 +29855,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1022.5 - f64.const 1.5733648139913585e-308 - f64.const -0.28231191635131836 - i32.const 9 + i64.const -4571166815920586752 + f64.reinterpret_i64 + i64.const 3184525836262886 + f64.reinterpret_i64 + i64.const -4624614737571741696 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29344,8 +29874,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1023 - f64.const 1.1125369292536007e-308 + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29358,10 +29890,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1023.5 - f64.const 7.866824069956793e-309 - f64.const -0.14115595817565918 - i32.const 9 + i64.const -4571158019827564544 + f64.reinterpret_i64 + i64.const 1592262918131443 + f64.reinterpret_i64 + i64.const -4629118337199112192 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29372,8 +29909,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1024 - f64.const 5.562684646268003e-309 + i64.const -4571153621781053440 + f64.reinterpret_i64 + i64.const 1125899906842624 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29386,8 +29925,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1025 - f64.const 2.781342323134e-309 + i64.const -4571149223734542336 + f64.reinterpret_i64 + i64.const 562949953421312 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29400,8 +29941,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1074 - f64.const 5e-324 + i64.const -4570933719455498240 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29414,10 +29957,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1074.5 - f64.const 5e-324 - f64.const 0.2928932309150696 - i32.const 9 + i64.const -4570931520432242688 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + i64.const 4598947915300339712 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29428,10 +29976,14 @@ call $~lib/builtins/abort unreachable end - f64.const -1075 + i64.const -4570929321408987136 + f64.reinterpret_i64 f64.const 0 - f64.const -0.5 - i32.const 9 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29442,10 +29994,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2048 + i64.const -4566650022153682944 + f64.reinterpret_i64 f64.const 0 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29456,10 +30011,16 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 - f32.const 3.7293792702257633e-03 - f32.const -0.0674908235669136 - i32.const 1 + i64.const -4602641186669199360 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4570745785645268992 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4633844389825740800 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29470,10 +30031,16 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 - f32.const 20.32579231262207 - f32.const 0.34121403098106384 - i32.const 1 + i64.const 4616578323332464640 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4626414419599949824 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4599818385449025536 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29484,10 +30051,16 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 - f32.const 2.9987283051013947e-03 - f32.const 0.15504619479179382 - i32.const 1 + i64.const -4602464091208941568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4569061019225161728 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594754148171251712 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29498,10 +30071,16 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 - f32.const 0.010808623395860195 - f32.const 0.2603940963745117 - i32.const 1 + i64.const -4604332007919452160 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4577384368955195392 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4598362462939512832 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29512,10 +30091,16 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 - f32.const 616.1156616210938 - f32.const -0.1379322111606598 - i32.const 1 + i64.const 4621406507597037568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4648630626491039744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4629234484925956096 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29526,10 +30111,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 - f32.const 1.5822590589523315 - f32.const -0.427890807390213 - i32.const 1 + i64.const 4604137858217803776 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609804680480948224 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4621992221413998592 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29540,10 +30131,16 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 - f32.const 0.7543970942497253 - f32.const -0.38062313199043274 - i32.const 1 + i64.const -4622375691663441920 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4604970224490381312 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622843720155267072 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29554,10 +30151,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 - f32.const 1.4760686159133911 - f32.const 0.1507442593574524 - i32.const 1 + i64.const 4603235101726212096 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609326441241247744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594599154612699136 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29568,10 +30171,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 - f32.const 1.7101848125457764 - f32.const -0.39102980494499207 - i32.const 1 + i64.const 4605148163374841856 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4610380806857162752 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622656250201505792 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29582,10 +30191,16 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 - f32.const 0.6247003674507141 - f32.const -0.20904375612735748 - i32.const 1 + i64.const -4619083057528307712 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4603802020229414912 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4626672421506646016 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29599,7 +30214,7 @@ f64.const -8.06684839057968 f64.const -9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29613,7 +30228,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29627,7 +30242,7 @@ f64.const -8.38143342755525 f64.const -9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29641,7 +30256,7 @@ f64.const -6.531673581913484 f64.const -7 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29655,7 +30270,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29669,7 +30284,7 @@ f64.const 0.6619858980995045 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29683,7 +30298,7 @@ f64.const -0.4066039223853553 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29697,7 +30312,7 @@ f64.const 0.5617597462207241 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29711,7 +30326,7 @@ f64.const 0.7741522965913037 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29725,7 +30340,7 @@ f64.const -0.6787637026394024 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29764,8 +30379,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_floor @@ -29837,7 +30454,7 @@ f64.const 0.5 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29851,7 +30468,7 @@ f64.const -0.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29865,7 +30482,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29879,7 +30496,7 @@ f64.const -1.0000152587890625 f64.const -2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29893,7 +30510,7 @@ f64.const 0.9999923706054688 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29907,7 +30524,7 @@ f64.const -0.9999923706054688 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29921,7 +30538,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29935,7 +30552,7 @@ f64.const -7.888609052210118e-31 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29949,7 +30566,7 @@ f32.const -8.066848754882812 f32.const -9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -29963,7 +30580,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -29977,7 +30594,7 @@ f32.const -8.381433486938477 f32.const -9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -29991,7 +30608,7 @@ f32.const -6.531673431396484 f32.const -7 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30005,7 +30622,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30019,7 +30636,7 @@ f32.const 0.6619858741760254 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30033,7 +30650,7 @@ f32.const -0.40660393238067627 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30047,7 +30664,7 @@ f32.const 0.5617597699165344 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30061,7 +30678,7 @@ f32.const 0.7741522789001465 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30075,7 +30692,7 @@ f32.const -0.6787636876106262 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30114,8 +30731,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_floorf @@ -30187,7 +30806,7 @@ f32.const 0.5 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30201,7 +30820,7 @@ f32.const -0.5 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30215,7 +30834,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30229,7 +30848,7 @@ f32.const -1.0000152587890625 f32.const -2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30243,7 +30862,7 @@ f32.const 0.9999923706054688 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30257,7 +30876,7 @@ f32.const -0.9999923706054688 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30271,7 +30890,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30285,7 +30904,7 @@ f32.const -7.888609052210118e-31 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30300,7 +30919,7 @@ f64.const 4.535662560676869 f64.const 9.25452742288464 f64.const -0.31188681721687317 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30315,7 +30934,7 @@ f64.const -8.88799136300345 f64.const 9.893305808328252 f64.const 0.4593673348426819 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30330,7 +30949,7 @@ f64.const -2.763607337379588 f64.const 8.825301797432132 f64.const -0.1701754331588745 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30345,7 +30964,7 @@ f64.const 4.567535276842744 f64.const 7.970265885519092 f64.const -0.3176782727241516 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30360,7 +30979,7 @@ f64.const 4.811392084359796 f64.const 10.441639651824575 f64.const -0.2693633437156677 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30375,7 +30994,7 @@ f64.const 0.6620717923376739 f64.const 6.483936052542593 f64.const 0.35618898272514343 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30390,7 +31009,7 @@ f64.const 0.05215452675006225 f64.const 7.859063309581766 f64.const 0.08044655621051788 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30405,7 +31024,7 @@ f64.const 7.67640268511754 f64.const 7.717156764899584 f64.const 0.05178084969520569 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30420,7 +31039,7 @@ f64.const 2.0119025790324803 f64.const 2.104006123874314 f64.const -0.0918039008975029 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30435,7 +31054,7 @@ f64.const 0.03223983060263804 f64.const 0.5596880129062913 f64.const 0.1383407711982727 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30641,7 +31260,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const inf f64.const 0 @@ -30657,7 +31277,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -30671,7 +31292,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const inf f64.const 0 @@ -30687,7 +31309,8 @@ unreachable end f64.const nan:0x8000000000000 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -30765,7 +31388,7 @@ f32.const 4.535662651062012 f32.const 9.254528045654297 f32.const 0.2735958993434906 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30780,7 +31403,7 @@ f32.const -8.887990951538086 f32.const 9.893305778503418 f32.const 0.4530770778656006 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30795,7 +31418,7 @@ f32.const -2.7636072635650635 f32.const 8.825302124023438 f32.const 0.30755728483200073 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30810,7 +31433,7 @@ f32.const 4.567535400390625 f32.const 7.970265865325928 f32.const 0.06785223633050919 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30825,7 +31448,7 @@ f32.const 4.811392307281494 f32.const 10.44163990020752 f32.const -0.26776307821273804 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30840,7 +31463,7 @@ f32.const 0.6620717644691467 f32.const 6.483936309814453 f32.const 0.48381292819976807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30855,7 +31478,7 @@ f32.const 0.052154526114463806 f32.const 7.859063148498535 f32.const 0.07413065433502197 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30870,7 +31493,7 @@ f32.const 7.676402568817139 f32.const 7.717156887054443 f32.const 0.4940592646598816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30885,7 +31508,7 @@ f32.const 2.0119025707244873 f32.const 2.104006052017212 f32.const -0.287089467048645 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -30900,7 +31523,7 @@ f32.const 0.03223983198404312 f32.const 0.5596880316734314 f32.const 0.4191940724849701 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31106,7 +31729,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const inf f32.const 0 @@ -31122,7 +31746,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -31136,7 +31761,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const inf f32.const 0 @@ -31152,7 +31778,8 @@ unreachable end f32.const nan:0x400000 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -31199,7 +31826,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31213,7 +31840,7 @@ f64.const 4.345239849338305 f64.const 1.4690809584224322 f64.const -0.3412533402442932 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31227,7 +31854,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31241,7 +31868,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31255,7 +31882,7 @@ f64.const 9.267056966972586 f64.const 2.2264658498795615 f64.const 0.3638114035129547 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31269,7 +31896,7 @@ f64.const 0.6619858980995045 f64.const -0.4125110252365137 f64.const -0.29108747839927673 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31283,7 +31910,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31297,7 +31924,7 @@ f64.const 0.5617597462207241 f64.const -0.5766810183195862 f64.const -0.10983199626207352 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31311,7 +31938,7 @@ f64.const 0.7741522965913037 f64.const -0.2559866591263865 f64.const -0.057990044355392456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31325,7 +31952,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31337,9 +31964,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log i32.eqz if @@ -31351,9 +31979,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log i32.eqz if @@ -31367,7 +31996,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31395,7 +32024,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31420,10 +32049,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31449,9 +32079,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31463,9 +32094,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31479,7 +32111,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31507,7 +32139,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31532,10 +32164,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31561,9 +32194,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31575,9 +32209,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31591,7 +32226,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31619,7 +32254,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31644,10 +32279,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31675,7 +32311,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31689,7 +32325,7 @@ f64.const 4.345239849338305 f64.const 0.6380137537120029 f64.const -0.2088824063539505 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31703,7 +32339,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31717,7 +32353,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31731,7 +32367,7 @@ f64.const 9.267056966972586 f64.const 0.9669418327487274 f64.const -0.06120431795716286 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31745,7 +32381,7 @@ f64.const 0.6619858980995045 f64.const -0.17915126198447093 f64.const 0.39090874791145325 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31759,7 +32395,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31773,7 +32409,7 @@ f64.const 0.5617597462207241 f64.const -0.25044938407454437 f64.const -0.3046841621398926 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31787,7 +32423,7 @@ f64.const 0.7741522965913037 f64.const -0.11117359349943837 f64.const -0.31503361463546753 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31801,7 +32437,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31813,9 +32449,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10 i32.eqz if @@ -31827,9 +32464,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10 i32.eqz if @@ -31843,7 +32481,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31871,7 +32509,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31896,10 +32534,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31927,7 +32566,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -31941,7 +32580,7 @@ f32.const 4.345239639282227 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -31955,7 +32594,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -31969,7 +32608,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -31983,7 +32622,7 @@ f32.const 9.267057418823242 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -31997,7 +32636,7 @@ f32.const 0.6619858741760254 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32011,7 +32650,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32025,7 +32664,7 @@ f32.const 0.5617597699165344 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32039,7 +32678,7 @@ f32.const 0.7741522789001465 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32053,7 +32692,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32065,9 +32704,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10f i32.eqz if @@ -32079,9 +32719,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10f i32.eqz if @@ -32095,7 +32736,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32123,7 +32764,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32148,10 +32789,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32179,7 +32821,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32193,7 +32835,7 @@ f64.const 4.345239849338305 f64.const 1.6762064170601734 f64.const 0.46188199520111084 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32207,7 +32849,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32221,7 +32863,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32235,7 +32877,7 @@ f64.const 9.267056966972586 f64.const 2.3289404168523826 f64.const -0.411114901304245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32249,7 +32891,7 @@ f64.const 0.6619858980995045 f64.const 0.5080132114992477 f64.const -0.29306045174598694 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32263,7 +32905,7 @@ f64.const -0.4066039223853553 f64.const -0.5218931811663979 f64.const -0.25825726985931396 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32277,7 +32919,7 @@ f64.const 0.5617597462207241 f64.const 0.4458132279488102 f64.const -0.13274887204170227 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32291,7 +32933,7 @@ f64.const 0.7741522965913037 f64.const 0.5733227294648414 f64.const 0.02716583013534546 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32305,7 +32947,7 @@ f64.const -0.6787637026394024 f64.const -1.1355782978128564 f64.const 0.2713092863559723 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32347,7 +32989,7 @@ f64.const -7.888609052210118e-31 f64.const -7.888609052210118e-31 f64.const 1.7763568394002505e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32361,7 +33003,7 @@ f64.const 1 f64.const 0.6931471805599453 f64.const -0.2088811695575714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32373,9 +33015,10 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log1p i32.eqz if @@ -32400,10 +33043,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32431,7 +33075,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32445,7 +33089,7 @@ f32.const 4.345239639282227 f32.const 1.676206350326538 f32.const -0.23014859855175018 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32459,7 +33103,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32473,7 +33117,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32487,7 +33131,7 @@ f32.const 9.267057418823242 f32.const 2.3289403915405273 f32.const -0.29075589776039124 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32501,7 +33145,7 @@ f32.const 0.6619858741760254 f32.const 0.5080131888389587 f32.const -0.1386766880750656 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32515,7 +33159,7 @@ f32.const -0.40660393238067627 f32.const -0.5218932032585144 f32.const -0.08804433047771454 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32529,7 +33173,7 @@ f32.const 0.5617597699165344 f32.const 0.44581323862075806 f32.const -0.15101368725299835 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32543,7 +33187,7 @@ f32.const 0.7741522789001465 f32.const 0.5733227133750916 f32.const -0.10264533013105392 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32557,7 +33201,7 @@ f32.const -0.6787636876106262 f32.const -1.1355782747268677 f32.const -0.19879481196403503 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32599,7 +33243,7 @@ f32.const -7.888609052210118e-31 f32.const -7.888609052210118e-31 f32.const 3.308722450212111e-24 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32613,7 +33257,7 @@ f32.const 1 f32.const 0.6931471824645996 f32.const 0.031954795122146606 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32625,9 +33269,10 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log1pf i32.eqz if @@ -32652,10 +33297,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32683,7 +33329,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 4.930380657631324e-32 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_log1pf i32.eqz if @@ -32697,7 +33345,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32711,7 +33359,7 @@ f64.const 4.345239849338305 f64.const 2.1194358133804485 f64.const -0.10164877772331238 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32725,7 +33373,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32739,7 +33387,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32753,7 +33401,7 @@ f64.const 9.267056966972586 f64.const 3.2121112403298744 f64.const -0.15739446878433228 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32767,7 +33415,7 @@ f64.const 0.6619858980995045 f64.const -0.5951276104207402 f64.const 0.3321485221385956 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32781,7 +33429,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32795,7 +33443,7 @@ f64.const 0.5617597462207241 f64.const -0.8319748453044644 f64.const 0.057555437088012695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32809,7 +33457,7 @@ f64.const 0.7741522965913037 f64.const -0.36931068365537134 f64.const -0.19838279485702515 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32823,7 +33471,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32835,9 +33483,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2 i32.eqz if @@ -32849,9 +33498,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2 i32.eqz if @@ -32865,7 +33515,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32893,7 +33543,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32918,10 +33568,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32949,7 +33600,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -32963,7 +33614,7 @@ f32.const 4.345239639282227 f32.const 2.1194357872009277 f32.const 0.18271538615226746 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -32977,7 +33628,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -32991,7 +33642,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33005,7 +33656,7 @@ f32.const 9.267057418823242 f32.const 3.212111234664917 f32.const -0.3188050389289856 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33019,7 +33670,7 @@ f32.const 0.6619858741760254 f32.const -0.5951276421546936 f32.const 0.34231460094451904 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33033,7 +33684,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33047,7 +33698,7 @@ f32.const 0.5617597699165344 f32.const -0.8319748044013977 f32.const -0.33473604917526245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33061,7 +33712,7 @@ f32.const 0.7741522789001465 f32.const -0.3693107068538666 f32.const 0.3278401792049408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33075,7 +33726,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33087,9 +33738,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2f i32.eqz if @@ -33101,9 +33753,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2f i32.eqz if @@ -33117,7 +33770,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33145,7 +33798,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33170,10 +33823,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33453,7 +34107,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 1 f64.const 0 @@ -33588,7 +34243,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const -1 f64.const 0 @@ -33664,7 +34320,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -33739,7 +34396,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -33813,7 +34471,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 f64.const 0 @@ -33873,7 +34532,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const -0 f64.const 0 @@ -33948,7 +34608,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const 2 f64.const 0 @@ -33963,7 +34624,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const -0.5 f64.const 0 @@ -33978,7 +34640,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -34083,7 +34746,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const inf f64.const 0 @@ -34099,7 +34763,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -34114,7 +34779,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -34129,7 +34795,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -34143,9 +34810,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_max @@ -34473,7 +35143,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 1 f32.const 0 @@ -34608,7 +35279,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const -1 f32.const 0 @@ -34684,7 +35356,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -34759,7 +35432,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -34833,7 +35507,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 f32.const 0 @@ -34893,7 +35568,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const -0 f32.const 0 @@ -34968,7 +35644,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const 2 f32.const 0 @@ -34983,7 +35660,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const -0.5 f32.const 0 @@ -34998,7 +35676,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -35103,7 +35782,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -35119,7 +35799,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -35134,7 +35815,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -35149,7 +35831,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -35163,9 +35846,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_maxf @@ -35493,9 +36179,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35628,9 +36316,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35704,8 +36394,10 @@ unreachable end f64.const 0 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35779,8 +36471,10 @@ unreachable end f64.const -0 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35853,9 +36547,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35913,9 +36609,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35988,9 +36686,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36003,9 +36703,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36018,7 +36720,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -36123,9 +36826,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf f64.const inf - f64.const -inf + f64.neg + f64.const inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36139,8 +36844,10 @@ unreachable end f64.const 1 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36154,8 +36861,10 @@ unreachable end f64.const -1 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36169,8 +36878,10 @@ unreachable end f64.const inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36183,9 +36894,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36513,9 +37227,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36648,9 +37364,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36724,8 +37442,10 @@ unreachable end f32.const 0 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36799,8 +37519,10 @@ unreachable end f32.const -0 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36873,9 +37595,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36933,9 +37657,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37008,9 +37734,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37023,9 +37751,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37038,7 +37768,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -37143,9 +37874,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const inf - f32.const -inf + f32.neg + f32.const inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37159,8 +37892,10 @@ unreachable end f32.const 1 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37174,8 +37909,10 @@ unreachable end f32.const -1 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37189,8 +37926,10 @@ unreachable end f32.const inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37203,9 +37942,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37582,7 +38324,7 @@ f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37593,11 +38335,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37777,7 +38520,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37788,11 +38531,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37822,7 +38566,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37837,7 +38581,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37864,7 +38608,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -37897,7 +38642,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37912,7 +38657,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37939,7 +38684,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -37972,7 +38718,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37987,7 +38733,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38002,7 +38748,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38013,11 +38759,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38047,7 +38794,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38062,7 +38809,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38073,11 +38820,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38107,7 +38855,7 @@ f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38122,7 +38870,7 @@ f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38148,11 +38896,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38163,11 +38912,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38178,7 +38928,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -38272,7 +39023,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38283,11 +39034,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38299,7 +39051,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -38314,7 +39067,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -38329,10 +39083,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38343,11 +39098,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38418,8 +39175,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38433,8 +39192,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const -2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38448,8 +39209,10 @@ call $~lib/builtins/abort unreachable end - f64.const -2.2250738585072014e-308 - f64.const 2.2250738585072014e-308 + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38463,8 +39226,10 @@ call $~lib/builtins/abort unreachable end - f64.const -2.2250738585072014e-308 - f64.const -2.2250738585072014e-308 + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38478,8 +39243,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38493,8 +39260,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -1797693134862315708145274e284 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38508,8 +39277,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38523,8 +39294,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -1797693134862315708145274e284 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38538,8 +39311,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const 2.2250738585072014e-308 + i64.const 0 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38553,8 +39328,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const 1797693134862315708145274e284 + i64.const 0 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38568,8 +39345,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const -2.2250738585072014e-308 + i64.const 0 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38583,8 +39362,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const -1797693134862315708145274e284 + i64.const 0 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38598,8 +39379,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const 2.2250738585072014e-308 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38613,8 +39396,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const 1797693134862315708145274e284 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38628,8 +39413,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const -2.2250738585072014e-308 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38643,8 +39430,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const -1797693134862315708145274e284 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38658,9 +39447,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 - f64.const 1995840309534719811656372e268 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38673,9 +39465,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 - f64.const -1995840309534719811656372e268 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38688,9 +39483,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 - f64.const 8988465674311577542806216e283 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38703,9 +39501,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 - f64.const -8988465674311577542806216e283 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38718,9 +39519,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 - f64.const 0 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38733,9 +39537,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 - f64.const -0 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9223372036854775808 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38748,9 +39555,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 - f64.const 1995840309534719811656372e268 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38763,9 +39573,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 - f64.const -1995840309534719811656372e268 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38778,9 +39591,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311579538646525e283 - f64.const 1797693134862315708145274e284 - f64.const 8988465674311579538646525e283 + i64.const 9214364837600034816 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034816 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38793,9 +39609,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311579538646525e283 - f64.const 1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38808,9 +39627,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311578540726371e283 - f64.const -1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38823,9 +39645,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311578540726371e283 - f64.const -1797693134862315708145274e284 - f64.const -8988465674311578540726371e283 + i64.const -9007199254740993 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740993 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38838,9 +39663,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311577542806216e283 - f64.const 1797693134862315708145274e284 - f64.const 8988465674311577542806216e283 + i64.const 9214364837600034814 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38853,9 +39681,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311577542806216e283 - f64.const 1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38868,9 +39699,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315508561243e284 - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38883,9 +39717,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315508561243e284 - f64.const -1797693134862315708145274e284 - f64.const -1797693134862315508561243e284 + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370498 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38898,9 +39735,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315508561243e284 - f64.const 8988465674311578540726371e283 - f64.const 8988465674311576544886061e283 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 9214364837600034813 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38913,9 +39753,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315508561243e284 - f64.const 8988465674311578540726371e283 - f64.const -8988465674311576544886061e283 + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9007199254740995 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38928,7 +39771,8 @@ call $~lib/builtins/abort unreachable end - f64.const 7.5 + i64.const 4620130267728707584 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -38943,7 +39787,8 @@ call $~lib/builtins/abort unreachable end - f64.const 6.5 + i64.const 4619004367821864960 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -38958,7 +39803,8 @@ call $~lib/builtins/abort unreachable end - f64.const 5.5 + i64.const 4617878467915022336 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -38973,7 +39819,8 @@ call $~lib/builtins/abort unreachable end - f64.const 4.5 + i64.const 4616752568008179712 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -38988,7 +39835,8 @@ call $~lib/builtins/abort unreachable end - f64.const -7.5 + i64.const -4603241769126068224 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39003,7 +39851,8 @@ call $~lib/builtins/abort unreachable end - f64.const -6.5 + i64.const -4604367669032910848 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39018,7 +39867,8 @@ call $~lib/builtins/abort unreachable end - f64.const -5.5 + i64.const -4605493568939753472 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39033,7 +39883,8 @@ call $~lib/builtins/abort unreachable end - f64.const -4.5 + i64.const -4606619468846596096 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39048,9 +39899,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585071994e-308 - f64.const 2.2250738585072004e-308 - f64.const 2.2250738585071994e-308 + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39063,9 +39917,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585071994e-308 - f64.const -2.2250738585072004e-308 - f64.const 2.2250738585071994e-308 + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const -9218868437227405314 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39078,9 +39935,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const 1.5e-323 - f64.const 0 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39093,9 +39953,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const 4.4501477170144023e-308 - f64.const 2.225073858507201e-308 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39108,9 +39971,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const inf - f64.const 2.225073858507201e-308 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39123,9 +39989,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const -1.5e-323 - f64.const 0 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39138,9 +40007,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 1.5e-323 - f64.const 5e-324 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39153,9 +40025,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 2.2250738585072004e-308 - f64.const 1e-323 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 2 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39168,9 +40043,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 4.4501477170144023e-308 - f64.const 2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39183,9 +40061,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const -1.5e-323 - f64.const 5e-324 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39198,9 +40079,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507202e-308 - f64.const 2.2250738585072004e-308 - f64.const 1.5e-323 + i64.const 4503599627370497 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39213,9 +40097,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072024e-308 - f64.const 1.5e-323 - f64.const 0 + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39228,9 +40115,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072024e-308 - f64.const -1.5e-323 - f64.const 0 + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39243,9 +40133,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const 1.5e-323 - f64.const 5e-324 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39258,9 +40151,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const 2.225073858507204e-308 - f64.const 2.225073858507203e-308 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370499 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39273,9 +40169,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const -1.5e-323 - f64.const 5e-324 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39288,9 +40187,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072034e-308 - f64.const 2.225073858507204e-308 - f64.const 2.2250738585072034e-308 + i64.const 4503599627370500 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370500 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39303,9 +40205,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072043e-308 - f64.const 2.225073858507204e-308 - f64.const 5e-324 + i64.const 4503599627370502 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39318,9 +40223,12 @@ call $~lib/builtins/abort unreachable end - f64.const 4.4501477170144023e-308 - f64.const 4.450147717014403e-308 - f64.const 4.4501477170144023e-308 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 9007199254740992 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39333,9 +40241,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1.139237815555687e-305 - f64.const 5.696189077778436e-306 - f64.const 5.696189077778434e-306 + i64.const 45035996273704959 + f64.reinterpret_i64 + i64.const 40532396646334464 + f64.reinterpret_i64 + i64.const 40532396646334462 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39652,7 +40563,7 @@ f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39663,11 +40574,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39847,7 +40759,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39858,11 +40770,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39892,7 +40805,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39907,7 +40820,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39934,7 +40847,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -39967,7 +40881,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39982,7 +40896,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40009,7 +40923,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -40042,7 +40957,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40057,7 +40972,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40072,7 +40987,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40083,11 +40998,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40117,7 +41033,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40132,7 +41048,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40143,11 +41059,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40177,7 +41094,7 @@ f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40192,7 +41109,7 @@ f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40218,11 +41135,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40233,11 +41151,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40248,7 +41167,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -40342,7 +41262,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40353,11 +41273,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40369,7 +41290,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -40384,7 +41306,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -40399,10 +41322,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40413,11 +41337,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40492,7 +41418,7 @@ f64.const 4.535662560676869 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40507,7 +41433,7 @@ f64.const -8.88799136300345 f64.const 2.1347118825587285e-06 f64.const 0.3250160217285156 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40522,7 +41448,7 @@ f64.const -2.763607337379588 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40537,7 +41463,7 @@ f64.const 4.567535276842744 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40552,7 +41478,7 @@ f64.const 4.811392084359796 f64.const 44909.29941512966 f64.const -0.26659080386161804 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40567,7 +41493,7 @@ f64.const 0.6620717923376739 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40582,7 +41508,7 @@ f64.const 0.05215452675006225 f64.const 1.1135177413458652 f64.const -0.37168607115745544 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40597,7 +41523,7 @@ f64.const 7.67640268511754 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40612,7 +41538,7 @@ f64.const 2.0119025790324803 f64.const 0.37690773521380183 f64.const 0.32473301887512207 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40627,7 +41553,7 @@ f64.const 0.03223983060263804 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40762,7 +41688,7 @@ f64.const -0.5 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40777,7 +41703,7 @@ f64.const -1 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40792,7 +41718,7 @@ f64.const -2 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40807,7 +41733,7 @@ f64.const -3 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40822,7 +41748,7 @@ f64.const -4 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40834,7 +41760,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -40972,7 +41899,7 @@ f64.const -0.5 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -40985,9 +41912,10 @@ end f64.const -0 f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41002,7 +41930,7 @@ f64.const -2 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41015,9 +41943,10 @@ end f64.const -0 f64.const -3 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41032,7 +41961,7 @@ f64.const -4 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41044,7 +41973,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41088,7 +42018,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 1 f64.const 0 @@ -41178,7 +42109,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 1 f64.const 0 @@ -41269,7 +42201,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 i32.const 0 @@ -41347,7 +42280,7 @@ f64.const 0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41389,7 +42322,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 i32.const 0 @@ -41467,7 +42401,7 @@ f64.const 0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41482,7 +42416,7 @@ f64.const 1.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41539,7 +42473,8 @@ unreachable end f64.const -0.5 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41584,7 +42519,8 @@ unreachable end f64.const 0.5 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41629,7 +42565,8 @@ unreachable end f64.const 1.5 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -41689,7 +42626,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -41808,7 +42746,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -41823,7 +42762,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const inf f64.const 0 @@ -41838,8 +42778,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -41853,9 +42795,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 3 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_pow @@ -41868,7 +42812,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const inf f64.const 0 @@ -41883,9 +42828,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_pow @@ -41898,7 +42845,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0.5 f64.const inf f64.const 0 @@ -41913,7 +42861,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const 0 f64.const 0 @@ -41928,7 +42877,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const -0 f64.const 0 @@ -41943,7 +42893,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -2 f64.const 0 f64.const 0 @@ -42102,7 +43053,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 call $~lib/math/NativeMath.pow f64.const 1 @@ -42186,10 +43138,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 call $~lib/math/NativeMath.pow - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -42232,7 +43186,8 @@ f64.const -0 f64.const -1 call $~lib/math/NativeMath.pow - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -42299,7 +43254,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 call $~lib/math/NativeMath.pow f64.const -0 @@ -42412,7 +43368,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 call $~lib/math/NativeMath.pow f64.const inf @@ -42526,7 +43483,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0.5 call $~lib/math/NativeMath.pow f64.const inf @@ -42559,7 +43517,7 @@ f32.const 4.535662651062012 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42574,7 +43532,7 @@ f32.const -8.887990951538086 f32.const 2.134714122803416e-06 f32.const 0.1436440795660019 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42589,7 +43547,7 @@ f32.const -2.7636072635650635 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42604,7 +43562,7 @@ f32.const 4.567535400390625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42619,7 +43577,7 @@ f32.const 4.811392307281494 f32.const 44909.33203125 f32.const -0.05356409028172493 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42634,7 +43592,7 @@ f32.const 0.6620717644691467 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42649,7 +43607,7 @@ f32.const 0.052154526114463806 f32.const 1.1135177612304688 f32.const 0.19122089445590973 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42664,7 +43622,7 @@ f32.const 7.676402568817139 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42679,7 +43637,7 @@ f32.const 2.0119025707244873 f32.const 0.3769077658653259 f32.const 0.337149053812027 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42694,7 +43652,7 @@ f32.const 0.03223983198404312 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42829,7 +43787,7 @@ f32.const -0.5 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -42844,7 +43802,7 @@ f32.const -1 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -42859,7 +43817,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -42874,7 +43832,7 @@ f32.const -3 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -42889,7 +43847,7 @@ f32.const -4 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -42901,7 +43859,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43039,7 +43998,7 @@ f32.const -0.5 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43052,9 +44011,10 @@ end f32.const -0 f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43069,7 +44029,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43082,9 +44042,10 @@ end f32.const -0 f32.const -3 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43099,7 +44060,7 @@ f32.const -4 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43111,7 +44072,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43155,7 +44117,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 1 f32.const 0 @@ -43245,7 +44208,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 1 f32.const 0 @@ -43336,7 +44300,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 i32.const 0 @@ -43414,7 +44379,7 @@ f32.const 0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43456,7 +44421,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 i32.const 0 @@ -43534,7 +44500,7 @@ f32.const 0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43549,7 +44515,7 @@ f32.const 1.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43606,7 +44572,8 @@ unreachable end f32.const -0.5 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43651,7 +44618,8 @@ unreachable end f32.const 0.5 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43696,7 +44664,8 @@ unreachable end f32.const 1.5 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -43756,7 +44725,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -43875,7 +44845,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -43890,7 +44861,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -43905,8 +44877,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -43920,9 +44894,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 3 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -43935,7 +44911,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const inf f32.const 0 @@ -43950,9 +44927,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -43965,7 +44944,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0.5 f32.const inf f32.const 0 @@ -43980,7 +44960,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const 0 f32.const 0 @@ -43995,7 +44976,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const -0 f32.const 0 @@ -44010,7 +44992,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -2 f32.const 0 f32.const 0 @@ -44115,9 +45098,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 1 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44130,9 +45115,11 @@ call $~lib/builtins/abort unreachable end - f32.const -1.1754943508222875e-38 + i32.const -2139095040 + f32.reinterpret_i32 f32.const 1 - f32.const -1.1754943508222875e-38 + i32.const -2139095040 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44145,9 +45132,11 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 1 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44160,9 +45149,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const 1 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44176,7 +45167,8 @@ unreachable end f32.const 0 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44191,7 +45183,8 @@ unreachable end f32.const 0 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44206,7 +45199,8 @@ unreachable end f32.const -0 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44221,7 +45215,8 @@ unreachable end f32.const -0 - f32.const 17 + i32.const 1099431936 + f32.reinterpret_i32 f32.const -0 f32.const 0 i32.const 0 @@ -44251,7 +45246,8 @@ unreachable end f32.const -0 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44265,11 +45261,15 @@ call $~lib/builtins/abort unreachable end - f32.const -1.100000023841858 - f32.const 101 - f32.const -15158.70703125 - f32.const -0.2798735499382019 - i32.const 1 + i32.const -1081291571 + f32.reinterpret_i32 + i32.const 1120534528 + f32.reinterpret_i32 + i32.const -965944620 + f32.reinterpret_i32 + i32.const -1097905258 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44280,9 +45280,12 @@ call $~lib/builtins/abort unreachable end - f32.const 19 - f32.const 5 - f32.const 2476099 + i32.const 1100480512 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const 1243029772 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44295,9 +45298,12 @@ call $~lib/builtins/abort unreachable end - f32.const -19 - f32.const 5 - f32.const -2476099 + i32.const -1047003136 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const -904453876 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44310,9 +45316,12 @@ call $~lib/builtins/abort unreachable end - f32.const -193 - f32.const 3 - f32.const -7189057 + i32.const -1019150336 + f32.reinterpret_i32 + i32.const 1077936128 + f32.reinterpret_i32 + i32.const -891591550 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44325,9 +45334,12 @@ call $~lib/builtins/abort unreachable end - f32.const -1201 - f32.const 2 - f32.const 1442401 + i32.const -996794368 + f32.reinterpret_i32 + i32.const 1073741824 + f32.reinterpret_i32 + i32.const 1236275976 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44340,11 +45352,15 @@ call $~lib/builtins/abort unreachable end - f32.const 7.312918663024902 - f32.const 17.122268676757812 - f32.const 624013315407872 - f32.const -0.14995409548282623 - i32.const 1 + i32.const 1089078126 + f32.reinterpret_i32 + i32.const 1099496040 + f32.reinterpret_i32 + i32.const 1477304923 + f32.reinterpret_i32 + i32.const -1105621615 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44355,11 +45371,15 @@ call $~lib/builtins/abort unreachable end - f32.const 18.804489135742188 - f32.const 3.3214492797851562 - f32.const 17076.3515625 - f32.const 0.3042995035648346 - i32.const 1 + i32.const 1100378008 + f32.reinterpret_i32 + i32.const 1079284384 + f32.reinterpret_i32 + i32.const 1183148212 + f32.reinterpret_i32 + i32.const 1050397989 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44370,11 +45390,15 @@ call $~lib/builtins/abort unreachable end - f32.const 7.290969371795654 - f32.const 9.60707950592041 - f32.const 194467360 - f32.const -0.10728006064891815 - i32.const 1 + i32.const 1089032095 + f32.reinterpret_i32 + i32.const 1092204185 + f32.reinterpret_i32 + i32.const 1295611234 + f32.reinterpret_i32 + i32.const -1109674586 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44385,11 +45409,15 @@ call $~lib/builtins/abort unreachable end - f32.const 15.783316612243652 - f32.const 18.55087661743164 - f32.const 16889945384019652771840 - f32.const 0.09180249273777008 - i32.const 1 + i32.const 1098680439 + f32.reinterpret_i32 + i32.const 1100245042 + f32.reinterpret_i32 + i32.const 1684334277 + f32.reinterpret_i32 + i32.const 1035731698 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44400,11 +45428,15 @@ call $~lib/builtins/abort unreachable end - f32.const 8.319306373596191 - f32.const 0.4197559952735901 - f32.const 2.43339204788208 - f32.const 0.009661106392741203 - i32.const 1 + i32.const 1090853857 + f32.reinterpret_i32 + i32.const 1054272066 + f32.reinterpret_i32 + i32.const 1075559602 + f32.reinterpret_i32 + i32.const 1008617886 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44415,11 +45447,15 @@ call $~lib/builtins/abort unreachable end - f32.const 5.831245422363281 - f32.const 10.462174415588379 - f32.const 102690080 - f32.const -1.4237762661650777e-03 - i32.const 1 + i32.const 1085970832 + f32.reinterpret_i32 + i32.const 1093100817 + f32.reinterpret_i32 + i32.const 1287904676 + f32.reinterpret_i32 + i32.const -1162174975 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44430,11 +45466,15 @@ call $~lib/builtins/abort unreachable end - f32.const 2.415773391723633 - f32.const 17.12181282043457 - f32.const 3619232.25 - f32.const 0.2961936891078949 - i32.const 1 + i32.const 1075485704 + f32.reinterpret_i32 + i32.const 1099495801 + f32.reinterpret_i32 + i32.const 1247602305 + f32.reinterpret_i32 + i32.const 1050126003 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44445,11 +45485,15 @@ call $~lib/builtins/abort unreachable end - f32.const 0.03832307085394859 - f32.const 0.011254354380071163 - f32.const 0.9639571905136108 - f32.const -0.4840981066226959 - i32.const 1 + i32.const 1025308839 + f32.reinterpret_i32 + i32.const 1010328623 + f32.reinterpret_i32 + i32.const 1064748518 + f32.reinterpret_i32 + i32.const -1091052619 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44460,11 +45504,15 @@ call $~lib/builtins/abort unreachable end - f32.const 5.4462971687316895 - f32.const 15.814705848693848 - f32.const 437749907456 - f32.const -0.40305933356285095 - i32.const 1 + i32.const 1085163537 + f32.reinterpret_i32 + i32.const 1098713353 + f32.reinterpret_i32 + i32.const 1389090779 + f32.reinterpret_i32 + i32.const -1093771829 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44475,11 +45523,15 @@ call $~lib/builtins/abort unreachable end - f32.const 12.87027645111084 - f32.const 14.93734359741211 - f32.const 37522809982812160 - f32.const 0.10445278882980347 - i32.const 1 + i32.const 1095625895 + f32.reinterpret_i32 + i32.const 1097793372 + f32.reinterpret_i32 + i32.const 1527074508 + f32.reinterpret_i32 + i32.const 1037429592 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44535,7 +45587,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 1 f32.const 0 @@ -44550,7 +45603,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 1 f32.const 0 @@ -44565,7 +45619,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 1 f32.const 0 @@ -44625,9 +45680,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -44670,7 +45727,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -44745,7 +45803,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000001192092896 + i32.const 1065353217 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -44775,7 +45834,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000001192092896 + i32.const -1082130431 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -44790,7 +45850,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -44805,8 +45866,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000001192092896 - f32.const -inf + i32.const 1065353217 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44821,7 +45884,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44835,8 +45899,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000001192092896 - f32.const -inf + i32.const -1082130431 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44850,8 +45916,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44865,7 +45933,8 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999999403953552 + i32.const 1065353215 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -44880,7 +45949,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -44910,7 +45980,8 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999999403953552 + i32.const -1082130433 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -44925,7 +45996,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -44956,7 +46028,8 @@ unreachable end f32.const 0 - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44971,7 +46044,8 @@ unreachable end f32.const -0 - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44986,10 +46060,11 @@ unreachable end f32.const 0 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45001,10 +46076,11 @@ unreachable end f32.const 0 - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45016,10 +46092,11 @@ unreachable end f32.const -0 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45034,7 +46111,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45046,10 +46123,11 @@ unreachable end f32.const -0 - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45062,9 +46140,10 @@ end f32.const -0 f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45076,10 +46155,12 @@ unreachable end f32.const -0 - f32.const -17 - f32.const -inf + i32.const -1048051712 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45091,7 +46172,8 @@ unreachable end f32.const inf - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45106,7 +46188,8 @@ unreachable end f32.const inf - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45120,8 +46203,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 3402823466385288598117041e14 + f32.const inf + f32.neg + i32.const 2139095039 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45135,8 +46220,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 1.401298464324817e-45 + f32.const inf + f32.neg + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45150,8 +46237,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -3402823466385288598117041e14 + f32.const inf + f32.neg + i32.const -8388609 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45165,8 +46254,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -1.401298464324817e-45 + f32.const inf + f32.neg + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45180,9 +46271,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 5 - f32.const -inf + f32.const inf + f32.neg + i32.const 1084227584 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -45195,8 +46289,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -5 + f32.const inf + f32.neg + i32.const -1063256064 + f32.reinterpret_i32 f32.const -0 f32.const 0 i32.const 0 @@ -45210,8 +46306,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 6 + f32.const inf + f32.neg + i32.const 1086324736 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45225,8 +46323,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -6 + f32.const inf + f32.neg + i32.const -1061158912 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45240,8 +46340,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 2.000000238418579 + f32.const inf + f32.neg + i32.const 1073741825 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45256,10 +46358,11 @@ unreachable end f32.const -1 - f32.const 1.0000001192092896 + i32.const 1065353217 + f32.reinterpret_i32 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -45270,11 +46373,13 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 - f32.const -1.9999998807907104 + i32.const -2147483647 + f32.reinterpret_i32 + i32.const -1073741825 + f32.reinterpret_i32 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -45285,11 +46390,16 @@ call $~lib/builtins/abort unreachable end - f32.const -10 - f32.const 309 - f32.const -inf + i32.const -1054867456 + f32.reinterpret_i32 + i32.const 1134198784 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45300,7 +46410,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0.5 f32.const inf f32.const 0 @@ -45315,9 +46426,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.802596928649634e-45 + i32.const 2 + f32.reinterpret_i32 f32.const 0.5 - f32.const 5.293955920339377e-23 + i32.const 444596224 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45330,9 +46443,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1210387714598537e-44 + i32.const 8 + f32.reinterpret_i32 f32.const 0.5 - f32.const 1.0587911840678754e-22 + i32.const 452984832 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45345,9 +46460,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.938735877055719e-39 + i32.const 2097152 + f32.reinterpret_i32 f32.const 0.5 - f32.const 5.421010862427522e-20 + i32.const 528482304 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45360,9 +46477,11 @@ call $~lib/builtins/abort unreachable end - f32.const 5.877471754111438e-39 + i32.const 4194304 + f32.reinterpret_i32 f32.const -1 - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45375,9 +46494,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0.5 - f32.const 1.0842021724855044e-19 + i32.const 536870912 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45390,9 +46511,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const -1 - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45405,9 +46528,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.350988701644575e-38 + i32.const 16777216 + f32.reinterpret_i32 f32.const -1 - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45420,9 +46545,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const 0.5 - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45435,9 +46562,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const -1 - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45450,9 +46579,11 @@ call $~lib/builtins/abort unreachable end - f32.const 5.293955920339377e-23 + i32.const 444596224 + f32.reinterpret_i32 f32.const 2 - f32.const 2.802596928649634e-45 + i32.const 2 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45465,9 +46596,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0.5 - f32.const 4.656612873077393e-10 + i32.const 805306368 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45480,9 +46613,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.3283064365386963e-10 + i32.const 796917760 + f32.reinterpret_i32 f32.const 2 - f32.const 5.421010862427522e-20 + i32.const 528482304 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45495,9 +46630,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.656612873077393e-10 + i32.const 805306368 + f32.reinterpret_i32 f32.const 2 - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45510,9 +46647,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1920928955078125e-07 + i32.const 872415232 + f32.reinterpret_i32 f32.const -1 - f32.const 8388608 + i32.const 1258291200 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45525,9 +46664,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.000034332275390625 + i32.const 940572672 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.005859375 + i32.const 1002438656 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45540,9 +46681,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.00006103515625 + i32.const 947912704 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.0078125 + i32.const 1006632960 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45555,9 +46698,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.00390625 + i32.const 998244352 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.0625 + i32.const 1031798784 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45570,9 +46715,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.03515625 + i32.const 1024458752 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.1875 + i32.const 1044381696 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45615,9 +46762,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const 0.5 - f32.const 4611686018427387904 + i32.const 1585446912 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45630,9 +46779,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const -1 - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45645,7 +46796,8 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45660,9 +46812,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const -1 - f32.const 2.350988701644575e-38 + i32.const 16777216 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45675,8 +46829,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 - f32.const -inf + i32.const 2113929216 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45690,9 +46846,11 @@ call $~lib/builtins/abort unreachable end - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const 0.5 - f32.const 9223372036854775808 + i32.const 1593835520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45705,9 +46863,11 @@ call $~lib/builtins/abort unreachable end - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const -1 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45720,7 +46880,8 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45735,8 +46896,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 - f32.const -inf + i32.const 2139095039 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45750,11 +46913,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -2.465190328815662e-32 - i32.const 9 + i32.const -1962934272 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45765,11 +46932,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -3 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1069547520 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45780,11 +46951,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -255 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1015087104 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45795,11 +46970,14 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -256 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45810,11 +46988,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -257 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014988800 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45825,11 +47007,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -260 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014890496 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45840,11 +47026,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -261 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014857728 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45855,11 +47045,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -32767 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45870,11 +47064,14 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -32768 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45885,11 +47082,16 @@ call $~lib/builtins/abort unreachable end - f32.const 3402822046616616342500112e14 + i32.const 2139095032 + f32.reinterpret_i32 f32.const -1 - f32.const 2.938737278354183e-39 - f32.const -4.768373855768004e-07 - i32.const 9 + i32.const 2097153 + f32.reinterpret_i32 + i32.const -1258291196 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45900,11 +47102,15 @@ call $~lib/builtins/abort unreachable end - f32.const 3402822046616616342500112e14 + i32.const 2139095032 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -6.162981699510909e-33 - i32.const 9 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45915,11 +47121,15 @@ call $~lib/builtins/abort unreachable end - f32.const -1701411834604692317316873e14 - f32.const -32767 + i32.const -16777216 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 f32.const -0 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45930,11 +47140,14 @@ call $~lib/builtins/abort unreachable end - f32.const -1701411834604692317316873e14 + i32.const -16777216 + f32.reinterpret_i32 f32.const -32768 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45945,11 +47158,16 @@ call $~lib/builtins/abort unreachable end - f32.const -3402822046616616342500112e14 + i32.const -8388616 + f32.reinterpret_i32 f32.const -1 - f32.const -2.938737278354183e-39 - f32.const 4.768373855768004e-07 - i32.const 9 + i32.const -2145386495 + f32.reinterpret_i32 + i32.const 889192452 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45960,11 +47178,15 @@ call $~lib/builtins/abort unreachable end - f32.const -3402822046616616342500112e14 + i32.const -8388616 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -6.162981699510909e-33 - i32.const 9 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46062,7 +47284,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46076,7 +47298,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46090,7 +47312,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46104,7 +47326,7 @@ f64.const -6.531673581913484 f64.const -7 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46118,7 +47340,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46132,7 +47354,7 @@ f64.const 0.6619858980995045 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46146,7 +47368,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46160,7 +47382,7 @@ f64.const 0.5617597462207241 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46174,7 +47396,7 @@ f64.const 0.7741522965913037 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46188,7 +47410,7 @@ f64.const -0.6787637026394024 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46227,8 +47449,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_round @@ -46300,7 +47524,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46314,7 +47538,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46328,7 +47552,7 @@ f64.const 1.5 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46342,7 +47566,7 @@ f64.const -1.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46356,7 +47580,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46370,7 +47594,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46384,7 +47608,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46398,7 +47622,7 @@ f64.const -0.9999923706054688 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46412,7 +47636,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46426,7 +47650,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46440,7 +47664,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46454,7 +47678,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46468,7 +47692,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46482,7 +47706,7 @@ f32.const -6.531673431396484 f32.const -7 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46496,7 +47720,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46510,7 +47734,7 @@ f32.const 0.6619858741760254 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46524,7 +47748,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46538,7 +47762,7 @@ f32.const 0.5617597699165344 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46552,7 +47776,7 @@ f32.const 0.7741522789001465 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46566,7 +47790,7 @@ f32.const -0.6787636876106262 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46605,8 +47829,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_roundf @@ -46678,7 +47904,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46692,7 +47918,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46706,7 +47932,7 @@ f64.const 1.5 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46720,7 +47946,7 @@ f64.const -1.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46734,7 +47960,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46748,7 +47974,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46762,7 +47988,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46776,7 +48002,7 @@ f32.const -0.9999923706054688 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46790,7 +48016,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46804,7 +48030,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46913,7 +48139,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -47039,7 +48266,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -47082,15 +48310,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3127 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -0 local.set $0 local.get $0 @@ -47106,15 +48326,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3128 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 1 local.set $0 local.get $0 @@ -47130,15 +48342,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3129 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -1 local.set $0 local.get $0 @@ -47154,15 +48358,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3130 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.set $0 local.get $0 @@ -47178,16 +48374,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3131 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -nan:0x8000000000000 + drop + f64.const nan:0x8000000000000 + f64.neg local.set $0 local.get $0 i64.reinterpret_f64 @@ -47202,15 +48391,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3132 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.set $0 local.get $0 @@ -47226,16 +48407,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3133 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -inf + drop + f64.const inf + f64.neg local.set $0 local.get $0 i64.reinterpret_f64 @@ -47250,15 +48424,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3134 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 0 local.set $4 local.get $4 @@ -47273,15 +48439,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const -0 local.set $4 local.get $4 @@ -47296,15 +48454,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3141 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 1 local.set $4 local.get $4 @@ -47319,15 +48469,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3142 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const -1 local.set $4 local.get $4 @@ -47342,15 +48484,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.set $4 local.get $4 @@ -47365,16 +48499,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3144 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -nan:0x400000 + drop + f32.const nan:0x400000 + f32.neg local.set $4 local.get $4 i32.reinterpret_f32 @@ -47388,15 +48515,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3145 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const inf local.set $4 local.get $4 @@ -47411,16 +48530,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3146 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -inf + drop + f32.const inf + f32.neg local.set $4 local.get $4 i32.reinterpret_f32 @@ -47434,15 +48546,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3147 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -8.06684839057968 f64.const 4.535662560676869 f64.const 1.0044767307740567 @@ -47747,7 +48851,7 @@ f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -47758,11 +48862,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -47942,7 +49047,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -47953,11 +49058,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -47987,7 +49093,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48002,7 +49108,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48029,7 +49135,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -48062,7 +49169,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48077,7 +49184,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48104,7 +49211,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -48137,7 +49245,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48152,7 +49260,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48167,7 +49275,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48178,11 +49286,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48212,7 +49321,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48227,7 +49336,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48238,11 +49347,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48272,7 +49382,7 @@ f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48287,7 +49397,7 @@ f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48313,11 +49423,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48328,11 +49439,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48343,7 +49455,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -48437,7 +49550,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48448,11 +49561,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48464,7 +49578,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -48479,7 +49594,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -48494,10 +49610,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48508,11 +49625,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48902,7 +50021,7 @@ f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -48913,11 +50032,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49097,7 +50217,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49108,11 +50228,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49142,7 +50263,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49157,7 +50278,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49184,7 +50305,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -49217,7 +50339,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49232,7 +50354,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49259,7 +50381,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -49292,7 +50415,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49307,7 +50430,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49322,7 +50445,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49333,11 +50456,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49367,7 +50491,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49382,7 +50506,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49393,11 +50517,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49427,7 +50552,7 @@ f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49442,7 +50567,7 @@ f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49468,11 +50593,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49483,11 +50609,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49498,7 +50625,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -49592,7 +50720,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49603,11 +50731,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49619,7 +50748,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -49634,7 +50764,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -49649,10 +50780,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49663,11 +50795,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49756,7 +50890,7 @@ f64.const -8.06684839057968 f64.const -0.9774292928781227 f64.const -0.14564912021160126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49770,7 +50904,7 @@ f64.const 4.345239849338305 f64.const -0.9333544736965718 f64.const -0.08813747018575668 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49784,7 +50918,7 @@ f64.const -8.38143342755525 f64.const -0.8640924711706304 f64.const -0.11743883043527603 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49798,7 +50932,7 @@ f64.const -6.531673581913484 f64.const -0.24593894772615374 f64.const -0.12697851657867432 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49812,7 +50946,7 @@ f64.const 9.267056966972586 f64.const 0.15706789772028007 f64.const -0.029550159350037575 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49826,7 +50960,7 @@ f64.const 0.6619858980995045 f64.const 0.6146844860113447 f64.const -0.09976737946271896 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49840,7 +50974,7 @@ f64.const -0.4066039223853553 f64.const -0.39549242182823696 f64.const -0.3668774962425232 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49854,7 +50988,7 @@ f64.const 0.5617597462207241 f64.const 0.5326763286672376 f64.const -0.3550407588481903 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49868,7 +51002,7 @@ f64.const 0.7741522965913037 f64.const 0.6991102068649779 f64.const -0.427672415971756 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49882,7 +51016,7 @@ f64.const -0.6787637026394024 f64.const -0.6278312326301215 f64.const -0.3828115463256836 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49896,7 +51030,7 @@ f64.const 9.313225746154785e-10 f64.const 9.313225746154785e-10 f64.const 6.510416860692203e-04 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49910,7 +51044,7 @@ f64.const -9.313225746154785e-10 f64.const -9.313225746154785e-10 f64.const -6.510416860692203e-04 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49924,7 +51058,7 @@ f64.const 2.2250738585072014e-308 f64.const 2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49938,7 +51072,7 @@ f64.const -2.2250738585072014e-308 f64.const -2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -49952,7 +51086,9 @@ f64.const 5e-324 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -49966,7 +51102,9 @@ f64.const -5e-324 f64.const -5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50008,7 +51146,7 @@ f64.const 2.225073858507202e-308 f64.const 2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50022,7 +51160,7 @@ f64.const 2.2250738585072024e-308 f64.const 2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50036,7 +51174,7 @@ f64.const 4.4501477170144003e-308 f64.const 4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50050,7 +51188,7 @@ f64.const 4.450147717014403e-308 f64.const 4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50064,7 +51202,7 @@ f64.const 4.450147717014406e-308 f64.const 4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50078,7 +51216,7 @@ f64.const 8.900295434028806e-308 f64.const 8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50092,7 +51230,7 @@ f64.const 1.1175870895385742e-08 f64.const 1.1175870895385742e-08 f64.const 0.140625 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50106,7 +51244,7 @@ f64.const 1.4901161193847656e-08 f64.const 1.4901161193847656e-08 f64.const 0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50120,7 +51258,7 @@ f64.const -2.225073858507202e-308 f64.const -2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50134,7 +51272,7 @@ f64.const -2.2250738585072024e-308 f64.const -2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50148,7 +51286,7 @@ f64.const -4.4501477170144003e-308 f64.const -4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50162,7 +51300,7 @@ f64.const -4.450147717014403e-308 f64.const -4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50176,7 +51314,7 @@ f64.const -4.450147717014406e-308 f64.const -4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50190,7 +51328,7 @@ f64.const -8.900295434028806e-308 f64.const -8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50204,7 +51342,7 @@ f64.const -1.1175870895385742e-08 f64.const -1.1175870895385742e-08 f64.const -0.140625 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50218,7 +51356,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50232,7 +51370,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50246,7 +51384,9 @@ f64.const 1e-323 f64.const 1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50260,7 +51400,9 @@ f64.const 4.4e-323 f64.const 4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50274,7 +51416,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50288,7 +51432,9 @@ f64.const 1.1125369292536007e-308 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50302,7 +51448,9 @@ f64.const 2.2250738585072004e-308 f64.const 2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50316,7 +51464,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50330,7 +51480,9 @@ f64.const -1e-323 f64.const -1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50344,7 +51496,9 @@ f64.const -4.4e-323 f64.const -4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50358,7 +51512,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50372,7 +51528,9 @@ f64.const -1.1125369292536007e-308 f64.const -1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50386,7 +51544,9 @@ f64.const -2.2250738585072004e-308 f64.const -2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50400,7 +51560,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50442,7 +51604,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sin i32.eqz if @@ -50453,10 +51615,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sin i32.eqz if @@ -50481,9 +51644,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.sin - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/sin f64.eq i32.eqz @@ -50495,9 +51662,17 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/math/NativeMath.sin - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/bindings/Math/sin f64.eq i32.eqz @@ -50588,7 +51763,9 @@ unreachable end f64.const 1 - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50601,7 +51778,10 @@ unreachable end f64.const -1 - f64.const -1.5707963267948966 + global.get $std/math/kPI + f64.neg + f64.const 2 + f64.div call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50614,7 +51794,7 @@ unreachable end f64.const 1.2246467991473532e-16 - f64.const 3.141592653589793 + global.get $std/math/kPI call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50627,7 +51807,9 @@ unreachable end f64.const -7.047032979958965e-14 - f64.const 6911.503837897545 + f64.const 2200 + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50640,7 +51822,11 @@ unreachable end f64.const -0.7071067811865477 - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50653,7 +51839,11 @@ unreachable end f64.const 0.7071067811865474 - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50666,7 +51856,11 @@ unreachable end f64.const 0.7071067811865483 - f64.const 8.63937979737193 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50679,7 +51873,11 @@ unreachable end f64.const -0.7071067811865479 - f64.const 10.210176124166829 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50692,7 +51890,11 @@ unreachable end f64.const -3.2103381051568376e-11 - f64.const 823549.6645826427 + f64.const 1048576 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50705,7 +51907,7 @@ unreachable end f64.const 0.377820109360752 - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50718,7 +51920,8 @@ unreachable end f64.const -0.377820109360752 - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50733,7 +51936,7 @@ f32.const -8.066848754882812 f32.const -0.977429211139679 f32.const 0.0801057294011116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50747,7 +51950,7 @@ f32.const 4.345239639282227 f32.const -0.933354377746582 f32.const 0.34475627541542053 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50761,7 +51964,7 @@ f32.const -8.381433486938477 f32.const -0.8640924692153931 f32.const -0.468659907579422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50775,7 +51978,7 @@ f32.const -6.531673431396484 f32.const -0.24593880772590637 f32.const -0.3955177664756775 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50789,7 +51992,7 @@ f32.const 9.267057418823242 f32.const 0.1570674479007721 f32.const -0.24006809294223785 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50803,7 +52006,7 @@ f32.const 0.6619858741760254 f32.const 0.6146844625473022 f32.const -0.07707194238901138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50817,7 +52020,7 @@ f32.const -0.40660393238067627 f32.const -0.39549243450164795 f32.const -0.11720617115497589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50831,7 +52034,7 @@ f32.const 0.5617597699165344 f32.const 0.5326763391494751 f32.const -0.16059114038944244 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50845,7 +52048,7 @@ f32.const 0.7741522789001465 f32.const 0.699110209941864 f32.const 0.26384368538856506 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50859,7 +52062,7 @@ f32.const -0.6787636876106262 f32.const -0.627831220626831 f32.const 0.005127954296767712 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50901,7 +52104,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sinf i32.eqz if @@ -50912,10 +52115,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sinf i32.eqz if @@ -50943,7 +52147,7 @@ f32.const 1.862645149230957e-09 f32.const 1.862645149230957e-09 f32.const 4.850638554015907e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50957,7 +52161,7 @@ f32.const -1.862645149230957e-09 f32.const -1.862645149230957e-09 f32.const -4.850638554015907e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50971,7 +52175,7 @@ f32.const 1.1754943508222875e-38 f32.const 1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50985,7 +52189,7 @@ f32.const -1.1754943508222875e-38 f32.const -1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50999,7 +52203,9 @@ f32.const 1.401298464324817e-45 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51013,7 +52219,9 @@ f32.const -1.401298464324817e-45 f32.const -1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51027,7 +52235,7 @@ f32.const 1.175494490952134e-38 f32.const 1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51041,7 +52249,7 @@ f32.const 1.1754946310819804e-38 f32.const 1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51055,7 +52263,7 @@ f32.const 2.3509880009953429e-38 f32.const 2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51069,7 +52277,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51083,7 +52291,7 @@ f32.const 2.3509895424236536e-38 f32.const 2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51097,7 +52305,7 @@ f32.const 4.70197740328915e-38 f32.const 4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51111,7 +52319,7 @@ f32.const 1.1175870895385742e-08 f32.const 1.1175870895385742e-08 f32.const 2.6193447411060333e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51125,7 +52333,7 @@ f32.const 1.4901161193847656e-08 f32.const 1.4901161193847656e-08 f32.const 3.1044086745701804e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51139,7 +52347,7 @@ f32.const 0.000244140625 f32.const 0.000244140625 f32.const 0.0833333358168602 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51153,7 +52361,7 @@ f32.const 0.0003662109375 f32.const 0.0003662109375 f32.const 0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51167,7 +52375,7 @@ f32.const -1.175494490952134e-38 f32.const -1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51181,7 +52389,7 @@ f32.const -1.1754946310819804e-38 f32.const -1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51195,7 +52403,7 @@ f32.const -2.3509880009953429e-38 f32.const -2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51209,7 +52417,7 @@ f32.const -2.350988701644575e-38 f32.const -2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51223,7 +52431,7 @@ f32.const -2.3509895424236536e-38 f32.const -2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51237,7 +52445,7 @@ f32.const -4.70197740328915e-38 f32.const -4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51251,7 +52459,7 @@ f32.const -1.1175870895385742e-08 f32.const -1.1175870895385742e-08 f32.const -2.6193447411060333e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51265,7 +52473,7 @@ f32.const -1.4901161193847656e-08 f32.const -1.4901161193847656e-08 f32.const -3.1044086745701804e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51279,7 +52487,7 @@ f32.const -0.000244140625 f32.const -0.000244140625 f32.const -0.0833333358168602 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51293,7 +52501,7 @@ f32.const -0.0003662109375 f32.const -0.0003662109375 f32.const -0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51307,7 +52515,9 @@ f32.const 2.802596928649634e-45 f32.const 2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51321,7 +52531,9 @@ f32.const 1.2611686178923354e-44 f32.const 1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51335,7 +52547,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51349,7 +52563,9 @@ f32.const 5.877471754111438e-39 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51363,7 +52579,9 @@ f32.const 1.1754940705625946e-38 f32.const 1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51377,7 +52595,9 @@ f32.const 1.1754942106924411e-38 f32.const 1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51391,7 +52611,9 @@ f32.const -2.802596928649634e-45 f32.const -2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51405,7 +52627,9 @@ f32.const -1.2611686178923354e-44 f32.const -1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51419,7 +52643,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51433,7 +52659,9 @@ f32.const -5.877471754111438e-39 f32.const -5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51447,7 +52675,9 @@ f32.const -1.1754940705625946e-38 f32.const -1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51461,7 +52691,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51475,7 +52707,7 @@ f32.const 255.99993896484375 f32.const -0.9992055892944336 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51489,7 +52721,7 @@ f32.const 5033165 f32.const 0.5312945246696472 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51503,7 +52735,7 @@ f32.const 421657440 f32.const -0.7397398948669434 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51517,7 +52749,7 @@ f32.const 2147483392 f32.const 0.2762770354747772 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51531,7 +52763,7 @@ f32.const 68719476736 f32.const 0.9855440855026245 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51545,7 +52777,7 @@ f32.const 549755813888 f32.const -0.9782648086547852 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51556,10 +52788,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE f32.const -0.5218765139579773 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51573,7 +52805,7 @@ f32.const -255.99993896484375 f32.const 0.9992055892944336 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51587,7 +52819,7 @@ f32.const -5033165 f32.const -0.5312945246696472 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51601,7 +52833,7 @@ f32.const -421657440 f32.const 0.7397398948669434 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51615,7 +52847,7 @@ f32.const -2147483392 f32.const -0.2762770354747772 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51629,7 +52861,7 @@ f32.const -68719476736 f32.const -0.9855440855026245 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51643,7 +52875,7 @@ f32.const -549755813888 f32.const 0.9782648086547852 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51654,10 +52886,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg f32.const 0.5218765139579773 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51671,7 +52904,7 @@ f64.const -8.06684839057968 f64.const -1593.5206801156262 f64.const -0.2138727605342865 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51685,7 +52918,7 @@ f64.const 4.345239849338305 f64.const 38.54878088685412 f64.const 0.21537430584430695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51699,7 +52932,7 @@ f64.const -8.38143342755525 f64.const -2182.6307505145546 f64.const 0.16213826835155487 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51713,7 +52946,7 @@ f64.const -6.531673581913484 f64.const -343.2723926847529 f64.const 0.20479513704776764 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51727,7 +52960,7 @@ f64.const 9.267056966972586 f64.const 5291.7790755194055 f64.const -0.48676517605781555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51741,7 +52974,7 @@ f64.const 0.6619858980995045 f64.const 0.7114062568229157 f64.const -0.4584641456604004 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51755,7 +52988,7 @@ f64.const -0.4066039223853553 f64.const -0.41790065258739445 f64.const 0.37220045924186707 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51769,7 +53002,7 @@ f64.const 0.5617597462207241 f64.const 0.5917755935451237 f64.const 0.46178996562957764 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51783,7 +53016,7 @@ f64.const 0.7741522965913037 f64.const 0.8538292008852542 f64.const -0.07019051909446716 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51797,7 +53030,7 @@ f64.const -0.6787637026394024 f64.const -0.732097615653169 f64.const 0.26858529448509216 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51850,8 +53083,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_sinh @@ -51881,7 +53116,7 @@ f32.const -8.066848754882812 f32.const -1593.521240234375 f32.const 0.1671663224697113 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51895,7 +53130,7 @@ f32.const 4.345239639282227 f32.const 38.548770904541016 f32.const -0.49340328574180603 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51909,7 +53144,7 @@ f32.const -8.381433486938477 f32.const -2182.630859375 f32.const 0.0849970355629921 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51923,7 +53158,7 @@ f32.const -6.531673431396484 f32.const -343.2723388671875 f32.const 0.0704190656542778 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51937,7 +53172,7 @@ f32.const 9.267057418823242 f32.const 5291.78125 f32.const -0.44362515211105347 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51951,7 +53186,7 @@ f32.const 0.6619858741760254 f32.const 0.7114062309265137 f32.const 0.058103885501623154 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51965,7 +53200,7 @@ f32.const -0.40660393238067627 f32.const -0.4179006516933441 f32.const 0.39349499344825745 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51979,7 +53214,7 @@ f32.const 0.5617597699165344 f32.const 0.5917755961418152 f32.const -0.4183797240257263 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -51993,7 +53228,7 @@ f32.const 0.7741522789001465 f32.const 0.8538292050361633 f32.const 0.45992106199264526 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52007,7 +53242,7 @@ f32.const -0.6787636876106262 f32.const -0.7320976257324219 f32.const -0.48159059882164 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52060,8 +53295,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_sinhf @@ -52091,7 +53328,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52105,7 +53342,7 @@ f64.const 4.345239849338305 f64.const 2.0845238903256313 f64.const -0.07180261611938477 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52119,7 +53356,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52133,7 +53370,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52147,7 +53384,7 @@ f64.const 9.267056966972586 f64.const 3.0441841217266385 f64.const -0.01546262577176094 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52161,7 +53398,7 @@ f64.const 0.6619858980995045 f64.const 0.8136251582267503 f64.const -0.08618157356977463 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52175,7 +53412,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52189,7 +53426,7 @@ f64.const 0.5617597462207241 f64.const 0.7495063350104014 f64.const -0.0981396734714508 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52203,7 +53440,7 @@ f64.const 0.7741522965913037 f64.const 0.879859248170583 f64.const -0.37124353647232056 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52217,7 +53454,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52256,10 +53493,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52315,7 +53553,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52343,7 +53581,7 @@ f64.const 1e-323 f64.const 3.1434555694052576e-162 f64.const 0.43537619709968567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52357,7 +53595,7 @@ f64.const 1.5e-323 f64.const 3.849931087076416e-162 f64.const -0.45194002985954285 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52385,7 +53623,7 @@ f64.const -5e-324 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52399,7 +53637,7 @@ f64.const 0.9999999999999999 f64.const 0.9999999999999999 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52413,7 +53651,7 @@ f64.const 1.9999999999999998 f64.const 1.414213562373095 f64.const -0.21107041835784912 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52427,7 +53665,7 @@ f64.const 1.0000000000000002 f64.const 1 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52441,7 +53679,7 @@ f64.const 2.0000000000000004 f64.const 1.4142135623730951 f64.const -0.27173060178756714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52455,7 +53693,7 @@ f64.const 1.0000000000000002 f64.const 1 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52469,7 +53707,7 @@ f64.const 0.9999999999999999 f64.const 0.9999999999999999 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52483,7 +53721,7 @@ f64.const -1797693134862315708145274e284 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52497,7 +53735,7 @@ f64.const 1797693134862315708145274e284 f64.const 1340780792994259561100831e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52511,7 +53749,7 @@ f64.const 179769313486231490980915e285 f64.const 134078079299425926338769e131 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52525,7 +53763,7 @@ f64.const 1797693134862314111473026e284 f64.const 1340780792994258965674548e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52539,7 +53777,7 @@ f64.const 1797693134862313313136902e284 f64.const 1340780792994258667961407e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52553,7 +53791,7 @@ f64.const 1797693134862312514800778e284 f64.const 1340780792994258370248265e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52567,7 +53805,7 @@ f64.const 1797693134862311716464655e284 f64.const 1340780792994258072535124e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52581,7 +53819,7 @@ f64.const 1797693134862310918128531e284 f64.const 1340780792994257774821982e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52595,7 +53833,7 @@ f64.const 1797693134862310119792407e284 f64.const 1340780792994257477108841e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52609,7 +53847,7 @@ f64.const 1797693134862309321456283e284 f64.const 1340780792994257179395699e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52623,7 +53861,7 @@ f64.const 1797693134862308523120159e284 f64.const 1340780792994256881682558e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52637,7 +53875,7 @@ f64.const 1797693134862307724784036e284 f64.const 1340780792994256583969417e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52651,7 +53889,7 @@ f64.const 2.225073858507203e-308 f64.const 1.4916681462400417e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52665,7 +53903,7 @@ f64.const 2.225073858507205e-308 f64.const 1.4916681462400423e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52679,7 +53917,7 @@ f64.const 2.225073858507207e-308 f64.const 1.491668146240043e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52693,7 +53931,7 @@ f64.const 2.225073858507209e-308 f64.const 1.4916681462400437e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52707,7 +53945,7 @@ f64.const 2.225073858507211e-308 f64.const 1.4916681462400443e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52721,7 +53959,7 @@ f64.const 2.2250738585072127e-308 f64.const 1.491668146240045e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52735,7 +53973,7 @@ f64.const 2.2250738585072147e-308 f64.const 1.4916681462400457e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52749,7 +53987,7 @@ f64.const 2.2250738585072167e-308 f64.const 1.4916681462400463e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52763,7 +54001,7 @@ f64.const 2.2250738585072187e-308 f64.const 1.491668146240047e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52777,7 +54015,7 @@ f64.const 2.2250738585072207e-308 f64.const 1.4916681462400476e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52791,7 +54029,7 @@ f64.const 2.2250738585072226e-308 f64.const 1.4916681462400483e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52805,7 +54043,7 @@ f64.const 2.2250738585072246e-308 f64.const 1.491668146240049e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52819,7 +54057,7 @@ f64.const 2.2250738585072266e-308 f64.const 1.4916681462400496e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52833,7 +54071,7 @@ f64.const 2.2250738585072286e-308 f64.const 1.4916681462400503e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52847,7 +54085,7 @@ f64.const 92.35130391890645 f64.const 9.609958580499006 f64.const 0.4998137056827545 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52861,7 +54099,7 @@ f64.const 93.3599596388916 f64.const 9.662295774757238 f64.const -0.49979978799819946 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52875,7 +54113,7 @@ f64.const 95.42049628886124 f64.const 9.76834153215689 f64.const -0.49997270107269287 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52889,7 +54127,7 @@ f64.const 95.87916941885449 f64.const 9.791790919890728 f64.const 0.4998766779899597 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52903,7 +54141,7 @@ f64.const 96.84804174884022 f64.const 9.841140266698785 f64.const 0.499801903963089 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52917,7 +54155,7 @@ f64.const 97.43639050883155 f64.const 9.87098731175517 f64.const 0.4997696280479431 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52931,7 +54169,7 @@ f64.const 97.50957979883047 f64.const 9.874693909120955 f64.const 0.49999818205833435 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52945,7 +54183,7 @@ f64.const 97.80496893882612 f64.const 9.88963947466368 f64.const -0.4999580681324005 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52959,7 +54197,7 @@ f64.const 98.2751822888192 f64.const 9.913383997849534 f64.const 0.49979931116104126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52973,7 +54211,7 @@ f64.const 99.47293564880155 f64.const 9.973611966023219 f64.const -0.4999540448188782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52987,7 +54225,7 @@ f64.const 100.57047130878539 f64.const 10.028483001370914 f64.const -0.49996453523635864 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53001,7 +54239,7 @@ f64.const 100.60954608878481 f64.const 10.030431002144665 f64.const 0.49975672364234924 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53015,7 +54253,7 @@ f64.const 100.67909109878379 f64.const 10.033897104255344 f64.const -0.4997771382331848 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53029,7 +54267,7 @@ f64.const 101.12268095877725 f64.const 10.055977374615422 f64.const 0.49988678097724915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53043,7 +54281,7 @@ f64.const 101.3027691287746 f64.const 10.064927676281366 f64.const 0.4999105632305145 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53057,7 +54295,7 @@ f64.const 2.45932313565507e-307 f64.const 4.9591563149945874e-154 f64.const -0.4998999834060669 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53071,7 +54309,7 @@ f64.const 5.610957305180409e-307 f64.const 7.490632353266584e-154 f64.const -0.4999343752861023 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53085,7 +54323,7 @@ f64.const 5.8073887977408524e-307 f64.const 7.62062254526548e-154 f64.const -0.49989569187164307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53099,7 +54337,7 @@ f64.const 7.026137080471427e-307 f64.const 8.382205605013174e-154 f64.const 0.49980640411376953 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53113,7 +54351,7 @@ f64.const 8.438697769194972e-307 f64.const 9.186238495268328e-154 f64.const -0.4999065697193146 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53127,7 +54365,7 @@ f64.const 1.1607792515836795e-306 f64.const 1.0773946591586944e-153 f64.const -0.49997684359550476 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53141,7 +54379,7 @@ f64.const 1.2827413827423193e-306 f64.const 1.1325817333606962e-153 f64.const -0.4999513030052185 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53155,7 +54393,7 @@ f64.const 1.7116604596087457e-306 f64.const 1.3083044216117078e-153 f64.const -0.49986395239830017 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53169,7 +54407,7 @@ f64.const 2.038173251686994e-306 f64.const 1.4276460526639628e-153 f64.const 0.4998403787612915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53183,7 +54421,7 @@ f64.const 2.171572060856931e-306 f64.const 1.4736254818836879e-153 f64.const 0.4999290406703949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53197,7 +54435,7 @@ f64.const 2.4681399631804094e-306 f64.const 1.5710314965589996e-153 f64.const 0.49989044666290283 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53211,7 +54449,7 @@ f64.const 2.5175533964200588e-306 f64.const 1.5866799918131124e-153 f64.const -0.4997701048851013 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53225,7 +54463,7 @@ f64.const 2.6461505468829625e-306 f64.const 1.6266992797941982e-153 f64.const 0.4998672902584076 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53239,7 +54477,7 @@ f64.const 3.8167076367720413e-306 f64.const 1.9536395872248397e-153 f64.const 0.49983471632003784 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53253,7 +54491,7 @@ f64.const 4.5743220778562766e-306 f64.const 2.1387664851161936e-153 f64.const 0.49985939264297485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53267,7 +54505,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53281,7 +54519,7 @@ f32.const 4.345239639282227 f32.const 2.084523916244507 f32.const 0.3200402557849884 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53295,7 +54533,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53309,7 +54547,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53323,7 +54561,7 @@ f32.const 9.267057418823242 f32.const 3.0441842079162598 f32.const 0.05022354796528816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53337,7 +54575,7 @@ f32.const 0.6619858741760254 f32.const 0.813625156879425 f32.const 0.2240506112575531 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53351,7 +54589,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53365,7 +54603,7 @@ f32.const 0.5617597699165344 f32.const 0.7495063543319702 f32.const 0.05895441770553589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53379,7 +54617,7 @@ f32.const 0.7741522789001465 f32.const 0.879859209060669 f32.const -0.4874873757362366 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53393,7 +54631,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53432,10 +54670,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53491,7 +54730,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53533,7 +54772,7 @@ f32.const 4.203895392974451e-45 f32.const 6.483745598763743e-23 f32.const 0.37388554215431213 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53547,7 +54786,7 @@ f32.const 1.401298464324817e-45 f32.const 3.743392066509216e-23 f32.const -0.20303145051002502 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53561,7 +54800,7 @@ f32.const -1.401298464324817e-45 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53575,7 +54814,7 @@ f32.const 3402823466385288598117041e14 f32.const 18446742974197923840 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53589,7 +54828,7 @@ f32.const -3402823466385288598117041e14 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53603,7 +54842,7 @@ f32.const 0.9999998807907104 f32.const 0.9999999403953552 f32.const 2.980232594040899e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53617,7 +54856,7 @@ f32.const 0.9999999403953552 f32.const 0.9999999403953552 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53631,7 +54870,7 @@ f32.const 1.999999761581421 f32.const 1.4142134189605713 f32.const -0.4959246516227722 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53645,7 +54884,7 @@ f32.const 1.9999998807907104 f32.const 1.4142135381698608 f32.const 0.15052194893360138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53659,7 +54898,7 @@ f32.const 1.0000001192092896 f32.const 1 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53673,7 +54912,7 @@ f32.const 1.000000238418579 f32.const 1.0000001192092896 f32.const 5.960463766996327e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53687,7 +54926,7 @@ f32.const 2.000000238418579 f32.const 1.4142136573791504 f32.const 0.08986179530620575 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53701,7 +54940,7 @@ f32.const 2.000000476837158 f32.const 1.41421377658844 f32.const 0.3827550709247589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53715,7 +54954,7 @@ f64.const -8.06684839057968 f64.const 4.626603542401633 f64.const -0.2727603316307068 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53729,7 +54968,7 @@ f64.const 4.345239849338305 f64.const 2.600191705822202 f64.const 0.2651003301143646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53743,7 +54982,7 @@ f64.const -8.38143342755525 f64.const 1.7167408328741052 f64.const -0.24687519669532776 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53757,7 +54996,7 @@ f64.const -6.531673581913484 f64.const -0.2537322523453725 f64.const -0.4679703712463379 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53771,7 +55010,7 @@ f64.const 9.267056966972586 f64.const -0.15904195727191958 f64.const -0.06704077869653702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53785,7 +55024,7 @@ f64.const 0.6619858980995045 f64.const 0.7792919106910434 f64.const -0.038056135177612305 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53799,7 +55038,7 @@ f64.const -0.4066039223853553 f64.const -0.43059952879543656 f64.const -0.09242714196443558 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53813,7 +55052,7 @@ f64.const 0.5617597462207241 f64.const 0.62940368731874 f64.const -0.321913480758667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53827,7 +55066,7 @@ f64.const 0.7741522965913037 f64.const 0.9777574652949645 f64.const -0.1966651827096939 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53841,7 +55080,7 @@ f64.const -0.6787637026394024 f64.const -0.8066186630209123 f64.const -0.067665696144104 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53855,7 +55094,7 @@ f64.const 9.313225746154785e-10 f64.const 9.313225746154785e-10 f64.const -1.3020833721384406e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53869,7 +55108,7 @@ f64.const -9.313225746154785e-10 f64.const -9.313225746154785e-10 f64.const 1.3020833721384406e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53883,7 +55122,7 @@ f64.const 2.2250738585072014e-308 f64.const 2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53897,7 +55136,7 @@ f64.const -2.2250738585072014e-308 f64.const -2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53911,7 +55150,9 @@ f64.const 5e-324 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -53925,7 +55166,9 @@ f64.const -5e-324 f64.const -5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -53967,7 +55210,7 @@ f64.const 0.7853981633974483 f64.const 0.9999999999999999 f64.const -0.4484681189060211 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53981,7 +55224,7 @@ f64.const -0.7853981633974483 f64.const -0.9999999999999999 f64.const 0.4484681189060211 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53995,7 +55238,7 @@ f64.const 2.225073858507202e-308 f64.const 2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54009,7 +55252,7 @@ f64.const 2.2250738585072024e-308 f64.const 2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54023,7 +55266,7 @@ f64.const 4.4501477170144003e-308 f64.const 4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54037,7 +55280,7 @@ f64.const 4.450147717014403e-308 f64.const 4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54051,7 +55294,7 @@ f64.const 4.450147717014406e-308 f64.const 4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54065,7 +55308,7 @@ f64.const 8.900295434028806e-308 f64.const 8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54079,7 +55322,7 @@ f64.const 1.1175870895385742e-08 f64.const 1.1175870895385742e-08 f64.const -0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54093,7 +55336,7 @@ f64.const 1.4901161193847656e-08 f64.const 1.4901161193847656e-08 f64.const -0.3333333432674408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54107,7 +55350,7 @@ f64.const -2.225073858507202e-308 f64.const -2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54121,7 +55364,7 @@ f64.const -2.2250738585072024e-308 f64.const -2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54135,7 +55378,7 @@ f64.const -4.4501477170144003e-308 f64.const -4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54149,7 +55392,7 @@ f64.const -4.450147717014403e-308 f64.const -4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54163,7 +55406,7 @@ f64.const -4.450147717014406e-308 f64.const -4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54177,7 +55420,7 @@ f64.const -8.900295434028806e-308 f64.const -8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54191,7 +55434,7 @@ f64.const -1.1175870895385742e-08 f64.const -1.1175870895385742e-08 f64.const 0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54205,7 +55448,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const 0.3333333432674408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54219,7 +55462,9 @@ f64.const 1e-323 f64.const 1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54233,7 +55478,9 @@ f64.const 4.4e-323 f64.const 4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54247,7 +55494,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54261,7 +55510,9 @@ f64.const 1.1125369292536007e-308 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54275,7 +55526,9 @@ f64.const 2.2250738585072004e-308 f64.const 2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54289,7 +55542,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54303,7 +55558,9 @@ f64.const -1e-323 f64.const -1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54317,7 +55574,9 @@ f64.const -4.4e-323 f64.const -4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54331,7 +55590,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54345,7 +55606,9 @@ f64.const -1.1125369292536007e-308 f64.const -1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54359,7 +55622,9 @@ f64.const -2.2250738585072004e-308 f64.const -2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54373,7 +55638,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54412,9 +55679,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6875 + f64.const 11 + f64.const 16 + f64.div call $~lib/math/NativeMath.tan - f64.const 0.6875 + f64.const 11 + f64.const 16 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54426,9 +55697,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.6875 + f64.const -11 + f64.const 16 + f64.div call $~lib/math/NativeMath.tan - f64.const -0.6875 + f64.const -11 + f64.const 16 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54482,9 +55757,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.tan - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54524,9 +55803,17 @@ call $~lib/builtins/abort unreachable end - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54538,9 +55825,17 @@ call $~lib/builtins/abort unreachable end - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54552,9 +55847,17 @@ call $~lib/builtins/abort unreachable end - f64.const 1647099.3291652855 + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 1647099.3291652855 + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54566,9 +55869,17 @@ call $~lib/builtins/abort unreachable end - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54580,9 +55891,9 @@ call $~lib/builtins/abort unreachable end - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/math/NativeMath.tan - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54594,9 +55905,11 @@ call $~lib/builtins/abort unreachable end - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/math/NativeMath.tan - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54639,7 +55952,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tan i32.eqz if @@ -54650,10 +55963,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tan i32.eqz if @@ -54681,7 +55995,7 @@ f32.const -8.066848754882812 f32.const 4.626595497131348 f32.const 0.2455666959285736 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54695,7 +56009,7 @@ f32.const 4.345239639282227 f32.const 2.6001901626586914 f32.const 0.3652407228946686 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54709,7 +56023,7 @@ f32.const -8.381433486938477 f32.const 1.716740608215332 f32.const 0.08169349282979965 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54723,7 +56037,7 @@ f32.const -6.531673431396484 f32.const -0.2537320852279663 f32.const 0.23186513781547546 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54737,7 +56051,7 @@ f32.const 9.267057418823242 f32.const -0.15904149413108826 f32.const -0.009332014247775078 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54751,7 +56065,7 @@ f32.const 0.6619858741760254 f32.const 0.7792918682098389 f32.const -0.06759700924158096 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54765,7 +56079,7 @@ f32.const -0.40660393238067627 f32.const -0.43059954047203064 f32.const 0.005771996453404427 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54779,7 +56093,7 @@ f32.const 0.5617597699165344 f32.const 0.6294037103652954 f32.const -0.16838163137435913 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54793,7 +56107,7 @@ f32.const 0.7741522789001465 f32.const 0.977757453918457 f32.const 0.38969388604164124 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54807,7 +56121,7 @@ f32.const -0.6787636876106262 f32.const -0.8066186308860779 f32.const 0.12294059991836548 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54849,7 +56163,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tanf i32.eqz if @@ -54860,10 +56174,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tanf i32.eqz if @@ -54891,7 +56206,7 @@ f32.const 1.862645149230957e-09 f32.const 1.862645149230957e-09 f32.const -9.701277108031814e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54905,7 +56220,7 @@ f32.const -1.862645149230957e-09 f32.const -1.862645149230957e-09 f32.const 9.701277108031814e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54919,7 +56234,7 @@ f32.const 1.1754943508222875e-38 f32.const 1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54933,7 +56248,7 @@ f32.const -1.1754943508222875e-38 f32.const -1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54947,7 +56262,9 @@ f32.const 1.401298464324817e-45 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -54961,7 +56278,9 @@ f32.const -1.401298464324817e-45 f32.const -1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -54975,7 +56294,7 @@ f32.const 1.175494490952134e-38 f32.const 1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54989,7 +56308,7 @@ f32.const 1.1754946310819804e-38 f32.const 1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55003,7 +56322,7 @@ f32.const 2.3509880009953429e-38 f32.const 2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55017,7 +56336,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55031,7 +56350,7 @@ f32.const 2.3509895424236536e-38 f32.const 2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55045,7 +56364,7 @@ f32.const 4.70197740328915e-38 f32.const 4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55059,7 +56378,7 @@ f32.const 1.1175870895385742e-08 f32.const 1.1175870895385742e-08 f32.const -5.238689482212067e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55073,7 +56392,7 @@ f32.const 1.4901161193847656e-08 f32.const 1.4901161193847656e-08 f32.const -6.208817349140361e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55087,7 +56406,7 @@ f32.const 0.000244140625 f32.const 0.000244140625 f32.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55101,7 +56420,7 @@ f32.const -1.175494490952134e-38 f32.const -1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55115,7 +56434,7 @@ f32.const -1.1754946310819804e-38 f32.const -1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55129,7 +56448,7 @@ f32.const -2.3509880009953429e-38 f32.const -2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55143,7 +56462,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55157,7 +56476,7 @@ f32.const -2.3509895424236536e-38 f32.const -2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55171,7 +56490,7 @@ f32.const -4.70197740328915e-38 f32.const -4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55185,7 +56504,7 @@ f32.const -1.1175870895385742e-08 f32.const -1.1175870895385742e-08 f32.const 5.238689482212067e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55199,7 +56518,7 @@ f32.const -1.4901161193847656e-08 f32.const -1.4901161193847656e-08 f32.const 6.208817349140361e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55213,7 +56532,7 @@ f32.const -0.000244140625 f32.const -0.000244140625 f32.const 0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55227,7 +56546,9 @@ f32.const 2.802596928649634e-45 f32.const 2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55241,7 +56562,9 @@ f32.const 1.2611686178923354e-44 f32.const 1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55255,7 +56578,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55269,7 +56594,9 @@ f32.const 5.877471754111438e-39 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55283,7 +56610,9 @@ f32.const 1.1754940705625946e-38 f32.const 1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55297,7 +56626,9 @@ f32.const 1.1754942106924411e-38 f32.const 1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55311,7 +56642,9 @@ f32.const -2.802596928649634e-45 f32.const -2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55325,7 +56658,9 @@ f32.const -1.2611686178923354e-44 f32.const -1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55339,7 +56674,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55353,7 +56690,9 @@ f32.const -5.877471754111438e-39 f32.const -5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55367,7 +56706,9 @@ f32.const -1.1754940705625946e-38 f32.const -1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55381,7 +56722,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55395,7 +56738,7 @@ f64.const -8.06684839057968 f64.const -0.999999803096032 f64.const 0.012793331407010555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55409,7 +56752,7 @@ f64.const 4.345239849338305 f64.const 0.9996636978961307 f64.const 0.1573508232831955 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55423,7 +56766,7 @@ f64.const -8.38143342755525 f64.const -0.9999998950434862 f64.const 0.27985066175460815 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55437,7 +56780,7 @@ f64.const -6.531673581913484 f64.const -0.9999957568392429 f64.const -0.44285574555397034 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55451,7 +56794,7 @@ f64.const 9.267056966972586 f64.const 0.9999999821447234 f64.const 0.4462755024433136 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55465,7 +56808,7 @@ f64.const 0.6619858980995045 f64.const 0.5796835018635275 f64.const 0.4892043173313141 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55479,7 +56822,7 @@ f64.const -0.4066039223853553 f64.const -0.3855853099901652 f64.const 0.35993871092796326 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55493,7 +56836,7 @@ f64.const 0.5617597462207241 f64.const 0.5092819248700439 f64.const -0.39436522126197815 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55507,7 +56850,7 @@ f64.const 0.7741522965913037 f64.const 0.6493374550318555 f64.const -0.4899396002292633 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55521,7 +56864,7 @@ f64.const -0.6787637026394024 f64.const -0.590715084799841 f64.const -0.0145387789234519 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55574,7 +56917,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -55605,7 +56949,7 @@ f32.const -8.066848754882812 f32.const -0.9999998211860657 f32.const -0.3034979999065399 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55619,7 +56963,7 @@ f32.const 4.345239639282227 f32.const 0.9996637105941772 f32.const 0.2154078334569931 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55633,7 +56977,7 @@ f32.const -8.381433486938477 f32.const -0.9999998807907104 f32.const 0.23912210762500763 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55647,7 +56991,7 @@ f32.const -6.531673431396484 f32.const -0.999995768070221 f32.const -0.18844597041606903 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55661,7 +57005,7 @@ f32.const 9.267057418823242 f32.const 1 f32.const 0.1497807800769806 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55675,7 +57019,7 @@ f32.const 0.6619858741760254 f32.const 0.5796834826469421 f32.const -0.05590476095676422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55689,7 +57033,7 @@ f32.const -0.40660393238067627 f32.const -0.38558530807495117 f32.const 0.349787175655365 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55703,7 +57047,7 @@ f32.const 0.5617597699165344 f32.const 0.5092819333076477 f32.const -0.1528785079717636 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55717,7 +57061,7 @@ f32.const 0.7741522789001465 f32.const 0.6493374705314636 f32.const 0.4317026138305664 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55731,7 +57075,7 @@ f32.const -0.6787636876106262 f32.const -0.5907150506973267 f32.const 0.4079873859882355 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55784,7 +57128,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -55815,7 +57160,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55829,7 +57174,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55843,7 +57188,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55857,7 +57202,7 @@ f64.const -6.531673581913484 f64.const -6 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55871,7 +57216,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55885,7 +57230,7 @@ f64.const 0.6619858980995045 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55899,7 +57244,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55913,7 +57258,7 @@ f64.const 0.5617597462207241 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55927,7 +57272,7 @@ f64.const 0.7741522965913037 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55941,7 +57286,7 @@ f64.const -0.6787637026394024 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -55980,8 +57325,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_trunc @@ -56053,7 +57400,7 @@ f64.const 0.5 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56067,7 +57414,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56081,7 +57428,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56095,7 +57442,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56109,7 +57456,7 @@ f64.const 0.9999923706054688 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56123,7 +57470,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56137,7 +57484,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56151,7 +57498,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56165,7 +57512,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56179,7 +57526,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56193,7 +57540,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56207,7 +57554,7 @@ f32.const -6.531673431396484 f32.const -6 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56221,7 +57568,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56235,7 +57582,7 @@ f32.const 0.6619858741760254 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56249,7 +57596,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56263,7 +57610,7 @@ f32.const 0.5617597699165344 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56277,7 +57624,7 @@ f32.const 0.7741522789001465 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56291,7 +57638,7 @@ f32.const -0.6787636876106262 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56330,8 +57677,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_truncf @@ -56403,7 +57752,7 @@ f32.const 0.5 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56417,7 +57766,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56431,7 +57780,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56445,7 +57794,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56459,7 +57808,7 @@ f32.const 0.9999923706054688 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56473,7 +57822,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56487,7 +57836,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56501,7 +57850,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56746,8 +58095,8 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/math/NativeMath.imul f64.const 0 f64.eq @@ -56890,7 +58239,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/math/NativeMath.clz32 f64.const 0 f64.eq @@ -56903,7 +58252,8 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.neg call $~lib/math/NativeMath.clz32 f64.const 31 f64.eq @@ -56916,7 +58266,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -56929,7 +58279,7 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -56942,7 +58292,8 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -56955,7 +58306,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -57465,7 +58816,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 0 call $~lib/math/ipow32f f32.const 1 @@ -57479,10 +58831,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 1 call $~lib/math/ipow32f - f32.const -inf + f32.const inf + f32.neg f32.eq i32.eqz if @@ -57493,7 +58847,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 2 call $~lib/math/ipow32f f32.const inf @@ -57521,7 +58876,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE i32.const 2 call $~lib/math/ipow32f f32.const inf @@ -57535,7 +58890,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + global.get $~lib/builtins/f32.MIN_VALUE i32.const 2 call $~lib/math/ipow32f f32.const 0 @@ -57549,7 +58904,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE i32.const -1 call $~lib/math/ipow32f f32.const 2.938735877055719e-39 @@ -57692,7 +59047,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 0 call $~lib/math/ipow64f f64.const 1 @@ -57706,10 +59062,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 1 call $~lib/math/ipow64f - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -57720,7 +59078,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 2 call $~lib/math/ipow64f f64.const inf @@ -57748,7 +59107,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE i32.const 2 call $~lib/math/ipow64f f64.const inf @@ -57762,7 +59121,7 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE i32.const 2 call $~lib/math/ipow64f f64.const 0 @@ -57776,7 +59135,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE i32.const -1 call $~lib/math/ipow64f f64.const 5.562684646268003e-309 diff --git a/tests/compiler/std/mod.untouched.wat b/tests/compiler/std/mod.untouched.wat index d488ae7178..4a34255f27 100644 --- a/tests/compiler/std/mod.untouched.wat +++ b/tests/compiler/std/mod.untouched.wat @@ -1281,7 +1281,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 call $std/mod/test_fmod i32.eqz @@ -1294,7 +1295,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 call $std/mod/test_fmod i32.eqz @@ -1333,7 +1335,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 call $std/mod/test_fmod i32.eqz @@ -1346,7 +1349,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 call $std/mod/test_fmod i32.eqz @@ -1384,7 +1388,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1397,7 +1402,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1436,7 +1442,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1449,7 +1456,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1475,7 +1483,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1489,7 +1498,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -1501,8 +1511,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -1527,7 +1539,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1554,7 +1567,8 @@ unreachable end f64.const nan:0x8000000000000 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -2074,7 +2088,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 call $std/mod/test_fmodf i32.eqz @@ -2087,7 +2102,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 call $std/mod/test_fmodf i32.eqz @@ -2126,7 +2142,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 call $std/mod/test_fmodf i32.eqz @@ -2139,7 +2156,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 call $std/mod/test_fmodf i32.eqz @@ -2177,7 +2195,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2190,7 +2209,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2229,7 +2249,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2242,7 +2263,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2268,7 +2290,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2282,7 +2305,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz @@ -2294,8 +2318,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz @@ -2320,7 +2346,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2347,7 +2374,8 @@ unreachable end f32.const nan:0x400000 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index ff4475b815..4d2584d27a 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/object-literal-omitted.untouched.wat b/tests/compiler/std/object-literal-omitted.untouched.wat index d1b9c65891..3a4e8e5641 100644 --- a/tests/compiler/std/object-literal-omitted.untouched.wat +++ b/tests/compiler/std/object-literal-omitted.untouched.wat @@ -46,6 +46,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -64,6 +66,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -116,6 +120,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -255,6 +261,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -268,6 +276,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -361,6 +371,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -417,6 +429,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -436,6 +450,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -490,6 +506,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -600,6 +618,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -637,6 +657,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -668,6 +690,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -688,7 +712,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -882,6 +910,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -983,6 +1013,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1055,6 +1087,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1113,6 +1147,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1197,6 +1233,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1219,7 +1257,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1288,6 +1328,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1311,9 +1353,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1330,6 +1376,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1349,6 +1397,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1361,9 +1411,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1392,6 +1446,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1408,12 +1464,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1430,6 +1490,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1692,6 +1756,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -1985,6 +2053,8 @@ call $start:std/object-literal-omitted ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2000,6 +2070,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -2011,6 +2083,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2034,6 +2110,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2051,6 +2131,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2063,6 +2145,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2083,6 +2167,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/object-literal-unmanaged.untouched.wat b/tests/compiler/std/object-literal-unmanaged.untouched.wat index 2d65d35766..924f127b68 100644 --- a/tests/compiler/std/object-literal-unmanaged.untouched.wat +++ b/tests/compiler/std/object-literal-unmanaged.untouched.wat @@ -38,6 +38,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -56,6 +58,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -108,6 +112,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -247,6 +253,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -260,6 +268,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -353,6 +363,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -409,6 +421,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -428,6 +442,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -482,6 +498,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -592,6 +610,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -629,6 +649,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -660,6 +682,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -680,7 +704,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -874,6 +902,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -975,6 +1005,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1047,6 +1079,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1105,6 +1139,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1189,6 +1225,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1211,7 +1249,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1280,6 +1320,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1303,9 +1345,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1322,6 +1368,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1341,6 +1389,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1353,9 +1403,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1384,6 +1438,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1439,7 +1495,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -1469,6 +1527,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1499,6 +1559,8 @@ call $start:std/object-literal-unmanaged ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) ) diff --git a/tests/compiler/std/object-literal.untouched.wat b/tests/compiler/std/object-literal.untouched.wat index e216e917fb..c3d6b6838d 100644 --- a/tests/compiler/std/object-literal.untouched.wat +++ b/tests/compiler/std/object-literal.untouched.wat @@ -112,6 +112,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -162,6 +164,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index 45d8500bc8..2de60f8113 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -19,10 +19,16 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/object/Object.is (param $0 f64) (param $1 f64) (result i32) + i32.const 1 + drop local.get $0 local.get $1 f64.eq if + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.reinterpret_f64 local.get $1 @@ -40,10 +46,16 @@ return ) (func $~lib/object/Object.is (param $0 f32) (param $1 f32) (result i32) + i32.const 1 + drop local.get $0 local.get $1 f32.eq if + i32.const 4 + i32.const 8 + i32.eq + drop local.get $0 i32.reinterpret_f32 local.get $1 @@ -61,11 +73,15 @@ return ) (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop local.get $0 local.get $1 i32.eq ) (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop local.get $0 i32.const 0 i32.ne @@ -113,6 +129,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -291,6 +311,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $1 + i32.const 0 + drop local.get $0 local.get $1 call $~lib/string/String.__eq @@ -309,6 +331,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $1 + i32.const 0 + drop local.get $0 local.get $1 call $~lib/string/String.__eq @@ -418,8 +442,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg call $~lib/object/Object.is i32.const 1 i32.eq @@ -433,7 +459,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg call $~lib/object/Object.is i32.const 0 i32.eq @@ -446,7 +473,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf call $~lib/object/Object.is i32.const 0 @@ -600,8 +628,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg call $~lib/object/Object.is i32.const 1 i32.eq @@ -615,7 +645,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg call $~lib/object/Object.is i32.const 0 i32.eq @@ -628,7 +659,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf call $~lib/object/Object.is i32.const 0 @@ -685,7 +717,9 @@ unreachable end f64.const 0 - f64.const -1e-309 + f64.const 0.1 + f64.const -1e-308 + f64.mul call $~lib/object/Object.is i32.const 0 i32.eq @@ -699,7 +733,9 @@ unreachable end f64.const -0 - f64.const -1e-309 + f64.const 0.1 + f64.const -1e-308 + f64.mul call $~lib/object/Object.is i32.const 0 i32.eq diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index badeaeb6fc..ca613cd6b6 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -182,6 +182,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -449,6 +451,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -473,7 +479,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -483,7 +491,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -494,7 +504,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -570,7 +582,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -599,14 +613,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -680,7 +698,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -751,7 +771,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index ac39c3f72b..c91702a279 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -39,6 +39,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1275,6 +1279,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1300,6 +1308,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1395,6 +1407,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1531,6 +1547,8 @@ block $std/pointer/Pointer#get:value|inlined.0 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.0 end @@ -1539,6 +1557,8 @@ block $std/pointer/Pointer#get:value|inlined.1 (result i32) global.get $std/pointer/one local.set $1 + i32.const 1 + drop local.get $1 br $std/pointer/Pointer#get:value|inlined.1 end @@ -1547,6 +1567,8 @@ block $std/pointer/Pointer#get:value|inlined.2 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.2 end @@ -1565,6 +1587,8 @@ block $std/pointer/Pointer#get:value|inlined.3 (result i32) global.get $std/pointer/one local.set $1 + i32.const 1 + drop local.get $1 br $std/pointer/Pointer#get:value|inlined.3 end @@ -1774,6 +1798,8 @@ block $std/pointer/Pointer#get:value|inlined.4 (result i32) global.get $std/pointer/two local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.4 end @@ -1792,6 +1818,8 @@ block $std/pointer/Pointer#get:value|inlined.5 (result i32) global.get $std/pointer/two local.set $6 + i32.const 1 + drop local.get $6 br $std/pointer/Pointer#get:value|inlined.5 end @@ -1812,10 +1840,16 @@ block $std/pointer/Pointer#get:value|inlined.6 (result i32) global.get $std/pointer/two local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.6 end local.set $6 + i32.const 1 + drop + i32.const 0 + drop local.get $6 i32.const 0 i32.eq @@ -1849,6 +1883,8 @@ block $std/pointer/Pointer#get:value|inlined.7 (result i32) global.get $std/pointer/one local.set $7 + i32.const 1 + drop local.get $7 br $std/pointer/Pointer#get:value|inlined.7 end @@ -1867,6 +1903,8 @@ block $std/pointer/Pointer#get:value|inlined.8 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.8 end @@ -2097,12 +2135,16 @@ local.set $0 f32.const 1.399999976158142 local.set $8 + i32.const 0 + drop local.get $0 local.get $8 f32.store block $std/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf local.set $6 + i32.const 0 + drop local.get $6 f32.load br $std/pointer/Pointer#get:value|inlined.0 diff --git a/tests/compiler/std/polyfills.untouched.wat b/tests/compiler/std/polyfills.untouched.wat index 974b56ece1..966b7ef0aa 100644 --- a/tests/compiler/std/polyfills.untouched.wat +++ b/tests/compiler/std/polyfills.untouched.wat @@ -10,14 +10,48 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop + i32.const 1 + i32.const 8 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop + i32.const 1 + i32.const 8 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -32,6 +66,12 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -48,6 +88,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -62,6 +112,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -79,6 +139,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -118,6 +192,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -154,6 +242,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -168,6 +266,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -182,14 +290,61 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 1 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 1 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 2 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -204,6 +359,19 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 2 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -220,6 +388,23 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -238,6 +423,23 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -277,7 +479,11 @@ i32.shl i32.const 24 i32.shr_s - i32.const -86 + i32.const 170 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.eq i32.eqz if @@ -309,7 +515,11 @@ i32.shl i32.const 16 i32.shr_s - i32.const -17494 + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq i32.eqz if @@ -419,7 +629,11 @@ i32.shl i32.const 24 i32.shr_s - i32.const -86 + i32.const 170 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.eq i32.eqz if @@ -451,7 +665,11 @@ i32.shl i32.const 16 i32.shr_s - i32.const -17494 + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq i32.eqz if diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index af9ef50690..64dc49fd23 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -59,6 +59,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -77,6 +79,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -129,6 +133,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -268,6 +274,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -281,6 +289,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -374,6 +384,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -430,6 +442,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -449,6 +463,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -503,6 +519,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -613,6 +631,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -650,6 +670,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -681,6 +703,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -701,7 +725,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -895,6 +923,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -996,6 +1026,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1068,6 +1100,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1126,6 +1160,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1210,6 +1246,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1232,7 +1270,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1301,6 +1341,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1324,9 +1366,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1343,6 +1389,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1362,6 +1410,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1374,9 +1424,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1405,6 +1459,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1423,12 +1479,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1445,8 +1505,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1490,6 +1554,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1856,6 +1924,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -1940,6 +2018,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -2028,6 +2116,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -2130,6 +2228,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -2229,7 +2329,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -3289,6 +3391,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3314,6 +3420,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3409,6 +3519,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3503,6 +3617,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3521,7 +3637,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3616,6 +3734,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3697,6 +3817,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3833,6 +3955,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -3845,6 +3969,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -3861,6 +3995,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -4396,6 +4532,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4478,6 +4624,16 @@ local.get $10 i32.load8_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -4566,6 +4722,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4666,6 +4832,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -4737,6 +4905,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -4873,6 +5043,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -4885,6 +5057,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4899,6 +5081,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -5450,6 +5634,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5534,6 +5732,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -5622,6 +5834,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5723,7 +5949,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -5795,6 +6023,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -5931,6 +6161,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -5943,6 +6175,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5959,6 +6205,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -6494,6 +6742,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -6576,6 +6838,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -6664,7 +6940,21 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 - local.get $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 i32.const 65535 i32.and call $~lib/util/hash/hash16 @@ -6763,7 +7053,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -6835,6 +7127,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6971,6 +7265,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -6983,6 +7279,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -6997,6 +7307,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -7564,6 +7876,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -7644,6 +7974,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -7732,6 +8080,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -7829,7 +8195,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -7901,6 +8269,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -8037,6 +8407,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -8049,6 +8421,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -8061,6 +8451,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -8574,6 +8966,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -8654,6 +9064,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -8742,6 +9170,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -8839,7 +9285,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -8911,6 +9359,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9047,6 +9497,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -9059,6 +9511,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -9071,6 +9541,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -9672,6 +10144,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -9753,6 +10247,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -9842,6 +10358,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -9939,7 +10477,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -10011,6 +10551,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -10147,6 +10689,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) @@ -10160,6 +10704,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -10172,6 +10738,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -10686,6 +11254,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -10767,6 +11357,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -10856,6 +11468,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -10953,7 +11587,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -11025,6 +11661,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11161,6 +11799,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) @@ -11174,6 +11814,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -11186,6 +11848,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -11700,6 +12364,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11782,6 +12456,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11872,6 +12556,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11970,7 +12664,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -12042,6 +12738,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -12178,6 +12876,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (result i32) @@ -12191,6 +12891,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -12204,6 +12914,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -12718,6 +13430,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12800,6 +13526,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12890,6 +13630,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12988,7 +13742,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -13060,6 +13816,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -13196,6 +13954,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (result i32) @@ -13209,6 +13969,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -13222,6 +13996,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -13625,6 +14401,8 @@ call $start:std/set ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -13637,8 +14415,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -13662,6 +14444,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -13679,6 +14465,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -13691,6 +14479,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -13711,6 +14501,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -13737,11 +14531,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13756,11 +14554,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13775,11 +14577,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13794,11 +14600,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13813,11 +14623,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13832,11 +14646,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13851,11 +14669,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13870,11 +14692,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13889,11 +14715,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13908,11 +14738,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/std/simd.untouched.wat b/tests/compiler/std/simd.untouched.wat index 237ebf5846..fa8c8cf7e4 100644 --- a/tests/compiler/std/simd.untouched.wat +++ b/tests/compiler/std/simd.untouched.wat @@ -1,6 +1,15 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0)) (export "memory" (memory $0)) + (start $~start) + (func $start:std/simd + i32.const 0 + drop + ) + (func $~start + call $start:std/simd + ) ) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 2a227405d9..7a6d33f942 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -68,6 +68,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/stub/maybeGrowMemory (param $0 i32) @@ -166,6 +168,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1220,6 +1224,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1245,6 +1253,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1340,6 +1352,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1455,6 +1471,8 @@ local.get $2 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 1 @@ -1560,6 +1578,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1816,6 +1838,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -1890,9 +1914,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -1967,9 +1995,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -2044,9 +2076,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -2093,7 +2129,7 @@ (func $start:std/static-array (local $0 i32) (local $1 i32) - i32.const 64 + global.get $std/static-array/i call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2106,7 +2142,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/static-array/i i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -2120,7 +2156,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/static-array/i i32.const 1 call $~lib/array/Array#__get i32.const 2 @@ -2148,7 +2184,7 @@ i32.const 0 i32.const 2 call $~lib/array/Array#__set - i32.const 64 + global.get $std/static-array/i i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -2162,7 +2198,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2175,7 +2211,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I i32.const 0 call $~lib/array/Array#__get i64.const 3 @@ -2189,7 +2225,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I i32.const 1 call $~lib/array/Array#__get i64.const 4 @@ -2207,7 +2243,7 @@ i32.const 0 i64.const 4 call $~lib/array/Array#__set - i32.const 128 + global.get $std/static-array/I i32.const 0 call $~lib/array/Array#__get i64.const 4 @@ -2221,7 +2257,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2234,7 +2270,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f i32.const 0 call $~lib/array/Array#__get f32.const 1.5 @@ -2248,7 +2284,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f i32.const 1 call $~lib/array/Array#__get f32.const 2.5 @@ -2266,7 +2302,7 @@ i32.const 0 f32.const 2.5 call $~lib/array/Array#__set - i32.const 192 + global.get $std/static-array/f i32.const 0 call $~lib/array/Array#__get f32.const 2.5 @@ -2280,7 +2316,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2293,7 +2329,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F i32.const 0 call $~lib/array/Array#__get f64.const 1.25 @@ -2307,7 +2343,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F i32.const 1 call $~lib/array/Array#__get f64.const 2.25 @@ -2325,7 +2361,7 @@ i32.const 0 f64.const 2.25 call $~lib/array/Array#__set - i32.const 256 + global.get $std/static-array/F i32.const 0 call $~lib/array/Array#__get f64.const 2.25 diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 11977d43b1..7698493990 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -71,9 +71,13 @@ local.get $1 call $~lib/staticarray/StaticArray#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/staticarray/StaticArray#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -114,6 +118,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -132,6 +138,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -184,6 +192,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -323,6 +333,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -336,6 +348,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -429,6 +443,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -485,6 +501,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -504,6 +522,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -558,6 +578,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -668,6 +690,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -705,6 +729,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -736,6 +762,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -756,7 +784,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -950,6 +982,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1051,6 +1085,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1123,6 +1159,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1181,6 +1219,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1265,6 +1305,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1287,7 +1329,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1356,6 +1400,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1379,9 +1425,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1398,6 +1448,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1417,6 +1469,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1429,9 +1483,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1460,6 +1518,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2515,6 +2575,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2540,6 +2604,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2635,6 +2703,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2737,12 +2809,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2759,8 +2835,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2822,7 +2902,7 @@ (func $start:std/staticarray (local $0 i32) (local $1 i32) - i32.const 32 + global.get $std/staticarray/arr1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -2836,7 +2916,7 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $std/staticarray/arr1 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -2853,7 +2933,7 @@ i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set - i32.const 32 + global.get $std/staticarray/arr1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -2867,7 +2947,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/staticarray/arr2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -2881,7 +2961,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/staticarray/arr2 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -2898,7 +2978,7 @@ i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set - i32.const 256 + global.get $std/staticarray/arr2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -3063,6 +3143,8 @@ call $start:std/staticarray ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3078,6 +3160,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3091,8 +3175,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3116,6 +3204,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3133,6 +3225,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3145,6 +3239,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3165,6 +3261,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3183,13 +3283,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 local.set $2 local.get $2 diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index 6ae63c92a7..41c7e6ce04 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -218,12 +218,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -240,8 +244,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -283,6 +291,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -301,6 +311,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -353,6 +365,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -492,6 +506,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -505,6 +521,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -598,6 +616,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -654,6 +674,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -673,6 +695,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -727,6 +751,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -837,6 +863,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -874,6 +902,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -905,6 +935,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -925,7 +957,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1119,6 +1155,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1220,6 +1258,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1292,6 +1332,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1350,6 +1392,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1434,6 +1478,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1456,7 +1502,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1525,6 +1573,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1548,9 +1598,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1567,6 +1621,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1586,6 +1642,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1598,9 +1656,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1629,6 +1691,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1868,7 +1932,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -2928,6 +2994,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2953,6 +3023,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3048,6 +3122,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3142,6 +3220,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3160,7 +3240,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3255,6 +3337,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3347,6 +3431,10 @@ block $~lib/util/string/toUpper8|inlined.0 (result i32) local.get $8 local.set $9 + i32.const 0 + i32.const 0 + i32.gt_s + drop i32.const 1024 local.get $9 i32.add @@ -3358,7 +3446,9 @@ local.get $8 i32.const 55295 i32.sub - i32.const 1025 + i32.const 56320 + i32.const 55295 + i32.sub i32.lt_u if (result i32) local.get $6 @@ -3380,7 +3470,9 @@ local.get $9 i32.const 56319 i32.sub - i32.const 1025 + i32.const 57344 + i32.const 56319 + i32.sub i32.lt_u if local.get $8 @@ -3427,7 +3519,9 @@ local.get $8 i32.const 9424 i32.sub - i32.const 25 + i32.const 9449 + i32.const 9424 + i32.sub i32.le_u if local.get $2 @@ -3445,7 +3539,9 @@ local.get $8 i32.const 223 i32.sub - i32.const 64056 + i32.const 64279 + i32.const 223 + i32.sub i32.le_u if block $~lib/util/casemap/bsearch|inlined.0 (result i32) @@ -3661,6 +3757,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3927,6 +4027,10 @@ block $~lib/util/string/toLower8|inlined.0 (result i32) local.get $6 local.set $7 + i32.const 0 + i32.const 0 + i32.gt_s + drop i32.const 5778 local.get $7 i32.add @@ -3938,7 +4042,9 @@ local.get $6 i32.const 55295 i32.sub - i32.const 1025 + i32.const 56320 + i32.const 55295 + i32.sub i32.lt_u if (result i32) local.get $4 @@ -3960,7 +4066,9 @@ local.get $7 i32.const 56319 i32.sub - i32.const 1025 + i32.const 57344 + i32.const 56319 + i32.sub i32.lt_u if local.get $6 @@ -4316,7 +4424,9 @@ local.get $6 i32.const 9398 i32.sub - i32.const 25 + i32.const 9423 + i32.const 9398 + i32.sub i32.le_u if local.get $2 @@ -4926,7 +5036,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -4947,6 +5058,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -4967,6 +5082,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -4976,6 +5095,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -6780,6 +6908,8 @@ call $start:std/string-casemapping ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -6792,8 +6922,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -6817,6 +6951,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -6834,6 +6972,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -6846,6 +6986,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -6866,6 +7008,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -6884,7 +7030,8 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 9541395880..49ea1dfcdb 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -49,12 +49,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -71,8 +75,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -154,6 +162,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -172,6 +182,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -224,6 +236,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -363,6 +377,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -376,6 +392,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -469,6 +487,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -525,6 +545,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -544,6 +566,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -598,6 +622,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -708,6 +734,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -745,6 +773,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -776,6 +806,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -796,7 +828,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -990,6 +1026,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1091,6 +1129,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1163,6 +1203,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1221,6 +1263,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1305,6 +1349,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1327,7 +1373,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1396,6 +1444,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1419,9 +1469,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1438,6 +1492,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1457,6 +1513,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1469,9 +1527,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1500,6 +1562,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2563,6 +2627,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2588,6 +2656,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2683,6 +2755,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3043,6 +3119,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -4122,7 +4202,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -4152,6 +4234,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -4170,7 +4254,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -4265,6 +4351,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -4953,8 +5041,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4978,6 +5070,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4995,6 +5091,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -5007,6 +5105,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -5021,6 +5121,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -5030,6 +5132,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 6abea872c0..872cdae736 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -413,12 +413,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -435,8 +439,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -508,6 +516,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -728,6 +740,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -746,6 +760,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -798,6 +814,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -937,6 +955,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -950,6 +970,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -1043,6 +1065,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -1099,6 +1123,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -1118,6 +1144,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -1172,6 +1200,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1282,6 +1312,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1319,6 +1351,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1350,6 +1384,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1370,7 +1406,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1564,6 +1604,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1665,6 +1707,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1737,6 +1781,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1795,6 +1841,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1879,6 +1927,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1901,7 +1951,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1970,6 +2022,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1993,9 +2047,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -2012,6 +2070,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -2031,6 +2091,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -2043,9 +2105,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -2074,6 +2140,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -3484,6 +3552,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3509,6 +3581,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3604,6 +3680,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -4094,7 +4174,9 @@ local.get $0 i32.const 8192 i32.sub - i32.const 10 + i32.const 8202 + i32.const 8192 + i32.sub i32.le_u if i32.const 1 @@ -4396,6 +4478,8 @@ local.get $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4439,6 +4523,8 @@ local.tee $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4465,6 +4551,8 @@ local.tee $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4575,6 +4663,8 @@ i32.gt_s end if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4613,7 +4703,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -4626,7 +4718,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -4699,6 +4793,8 @@ local.get $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4742,6 +4838,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4768,6 +4866,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4878,6 +4978,8 @@ i32.gt_s end if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4916,7 +5018,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -4929,7 +5033,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -5001,6 +5107,8 @@ local.get $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5044,6 +5152,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5070,6 +5180,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5180,6 +5292,8 @@ i32.gt_s end if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5218,7 +5332,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -5231,7 +5347,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -5294,6 +5412,10 @@ (local $4 i32) i32.const 1 local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 0 i32.lt_s @@ -6188,7 +6310,9 @@ i32.gt_s if (result i32) local.get $17 - i32.const 37 + i32.const 22 + i32.const 15 + i32.add i32.le_s else i32.const 0 @@ -6906,7 +7030,9 @@ local.get $1 i64.extend_i32_s i64.mul - i64.const 268435456 + i64.const 1 + i64.const 28 + i64.shl i64.gt_u end if @@ -7117,7 +7243,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -7147,6 +7275,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -7165,7 +7295,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -7260,6 +7392,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -7979,6 +8113,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -8252,6 +8390,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -8404,6 +8544,8 @@ i32.add local.get $9 i32.store + i32.const 1 + drop local.get $9 call $~lib/rt/pure/__retain drop @@ -8608,6 +8750,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -8858,6 +9005,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -8898,6 +9049,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -9104,7 +9259,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -9125,6 +9281,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -9145,6 +9305,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -9183,7 +9347,8 @@ local.set $0 end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -9206,6 +9371,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -9228,6 +9397,10 @@ local.set $8 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $8 local.get $5 @@ -9964,6 +10137,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -10036,6 +10213,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -10921,7 +11102,9 @@ end i32.const 1 global.set $~argumentsLength - i32.const 65590 + i32.const 65536 + i32.const 54 + i32.add i32.const 0 call $~lib/string/String.fromCharCode|trampoline local.tee $2 @@ -11008,7 +11191,7 @@ end global.get $std/string/str i32.const 672 - i32.const 536870904 + global.get $~lib/string/String.MAX_LENGTH call $~lib/string/String#endsWith i32.eqz if @@ -11440,7 +11623,7 @@ end i32.const 272 i32.const 272 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 0 i32.eq @@ -11455,7 +11638,7 @@ end i32.const 272 i32.const 608 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const -1 i32.eq @@ -11470,7 +11653,7 @@ end global.get $std/string/str i32.const 272 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf global.get $std/string/str call $~lib/string/String#get:length @@ -11486,7 +11669,7 @@ end global.get $std/string/str i32.const 1056 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 2 i32.eq @@ -11501,7 +11684,7 @@ end global.get $std/string/str i32.const 1088 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const -1 i32.eq @@ -11516,7 +11699,7 @@ end global.get $std/string/str i32.const 1152 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 15 i32.eq @@ -12083,7 +12266,7 @@ i32.const 1904 i32.const 0 call $~lib/number/I32.parseInt - i32.const 2147483647 + global.get $~lib/number/I32.MAX_VALUE i32.eq i32.eqz if @@ -12097,7 +12280,7 @@ i32.const 1952 i32.const 0 call $~lib/number/I64.parseInt - i64.const 9223372036854775807 + global.get $~lib/number/I64.MAX_VALUE i64.eq i32.eqz if @@ -13388,7 +13571,7 @@ end i32.const 5312 call $~lib/string/parseFloat - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON f64.eq i32.eqz if @@ -13401,7 +13584,7 @@ end i32.const 5376 call $~lib/string/parseFloat - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if @@ -13414,7 +13597,7 @@ end i32.const 5440 call $~lib/string/parseFloat - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE f64.eq i32.eqz if @@ -13492,7 +13675,8 @@ end i32.const 5760 call $~lib/string/parseFloat - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -13570,7 +13754,8 @@ end i32.const 6016 call $~lib/string/parseFloat - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -13664,7 +13849,7 @@ end i32.const 6448 call $~lib/string/parseFloat - f64.const 1e-323 + global.get $std/string/Ox1p_1073 f64.eq i32.eqz if @@ -13677,7 +13862,7 @@ end i32.const 6640 call $~lib/string/parseFloat - f64.const 2.225073858507202e-308 + global.get $std/string/Ox1_0000000000001p_1022 f64.eq i32.eqz if @@ -13702,7 +13887,7 @@ call $~lib/string/String.__concat local.tee $36 call $~lib/string/parseFloat - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if @@ -15176,7 +15361,7 @@ global.set $std/string/str global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $80 i32.const 11776 @@ -15192,7 +15377,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $81 i32.const 11824 @@ -15208,7 +15393,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $82 i32.const 11856 @@ -15288,7 +15473,7 @@ end global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $87 i32.const 11776 @@ -15304,7 +15489,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $88 i32.const 11824 @@ -15320,7 +15505,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $89 i32.const 11856 @@ -15448,7 +15633,7 @@ end global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $97 i32.const 11776 @@ -15464,7 +15649,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $98 i32.const 11776 @@ -15480,7 +15665,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $99 i32.const 11776 @@ -16816,7 +17001,7 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + global.get $~lib/builtins/u32.MAX_VALUE call $~lib/util/number/utoa32 local.tee $128 i32.const 13536 @@ -17110,7 +17295,7 @@ call $~lib/builtins/abort unreachable end - i64.const -1 + global.get $~lib/builtins/u64.MAX_VALUE call $~lib/util/number/utoa64 local.tee $149 i32.const 14192 @@ -17264,7 +17449,7 @@ call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 + global.get $~lib/builtins/i64.MAX_VALUE call $~lib/util/number/itoa64 local.tee $160 i32.const 14544 @@ -17278,7 +17463,7 @@ call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 + global.get $~lib/builtins/i64.MIN_VALUE call $~lib/util/number/itoa64 local.tee $161 i32.const 14608 @@ -17348,7 +17533,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg call $~lib/util/number/dtoa local.tee $166 i32.const 6016 @@ -17362,7 +17548,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/util/number/dtoa local.tee $167 i32.const 5312 @@ -17376,7 +17562,8 @@ call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON + f64.neg call $~lib/util/number/dtoa local.tee $168 i32.const 15648 @@ -17390,7 +17577,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/util/number/dtoa local.tee $169 i32.const 5376 @@ -17404,7 +17591,8 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/util/number/dtoa local.tee $170 i32.const 15712 @@ -17866,7 +18054,9 @@ call $~lib/builtins/abort unreachable end - f64.const 0.3333333333333333 + f64.const 1 + f64.const 3 + f64.div call $~lib/util/number/dtoa local.tee $203 i32.const 16928 @@ -18441,8 +18631,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -18466,6 +18660,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -18483,6 +18681,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -18495,6 +18695,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -18509,6 +18711,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -18518,6 +18722,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -18540,6 +18748,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -18579,6 +18789,8 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index e38406323e..12b3d7081f 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -183,6 +183,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -210,6 +212,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -655,6 +661,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -897,6 +907,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $2 + i32.const 1 + drop local.get $2 call $~lib/util/hash/hashStr local.set $3 @@ -926,6 +938,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $2 + i32.const 1 + drop local.get $2 call $~lib/util/hash/hashStr local.set $3 @@ -1032,6 +1046,8 @@ i32.load call $~lib/rt/stub/__retain local.set $12 + i32.const 1 + drop local.get $12 call $~lib/util/hash/hashStr local.set $13 @@ -1129,6 +1145,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $3 + i32.const 1 + drop local.get $3 call $~lib/util/hash/hashStr local.set $4 @@ -1145,6 +1163,8 @@ local.set $6 local.get $6 if + i32.const 0 + drop local.get $6 local.get $2 i32.store offset=4 @@ -1401,6 +1421,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -1493,6 +1531,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -1505,6 +1561,8 @@ local.set $5 local.get $5 if + i32.const 1 + drop local.get $5 i32.load offset=4 local.set $3 @@ -1679,6 +1737,24 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -1695,6 +1771,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -2778,6 +2872,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2803,6 +2901,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2898,6 +3000,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 2fcfa610c5..355a194694 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -17565,10 +17565,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $1 local.get $2 @@ -17588,10 +17588,10 @@ i64.const 10 i64.lt_u if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 i64.const 48 @@ -17805,10 +17805,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $0 local.get $2 @@ -21858,19 +21858,19 @@ call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -21891,7 +21891,7 @@ i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $1 - local.set $2 + local.set $3 block $folding-inner0 i32.const 4316 i32.load @@ -21899,7 +21899,7 @@ i32.load offset=8 i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $3 i32.load offset=4 local.set $9 i32.const 4308 @@ -21922,14 +21922,14 @@ i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $2 + local.get $3 i32.const 255 - local.get $2 + local.get $3 i32.sub i32.const 31 i32.shr_s @@ -22101,9 +22101,19 @@ call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $0 call $~lib/rt/pure/__release + local.get $2 + i32.load offset=8 local.get $1 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + i32.load offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + call $~lib/memory/memory.copy local.get $1 local.get $8 i32.const 4 @@ -22141,14 +22151,14 @@ local.get $10 i32.add i32.load8_s - local.tee $2 + local.tee $3 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $2 + local.get $3 i32.const 255 - local.get $2 + local.get $3 i32.sub i32.const 31 i32.shr_s @@ -22175,7 +22185,7 @@ call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $3 + local.get $2 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release @@ -23100,22 +23110,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - i32.const 0 - i32.lt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - i32.load offset=12 - i32.add + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + i32.const 4316 + i32.load local.get $0 i32.load offset=8 i32.const 2 @@ -23131,14 +23128,10 @@ end local.get $0 i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 + i32.const 4308 + i32.load + i32.const 4312 + i32.load call $~lib/memory/memory.copy ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) @@ -23491,8 +23484,6 @@ i32.const 10 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.const 4304 - i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $0 i32.const 10 @@ -23816,8 +23807,6 @@ i32.const 10 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.const 4304 - i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $0 i32.const 10 @@ -25100,10 +25089,25 @@ call $~lib/rt/pure/__retain local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $1 - i32.const 4368 + i32.const 4380 + i32.load i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 12 + i32.add + i32.const 4372 + i32.load + i32.const 4376 + i32.load + call $~lib/memory/memory.copy local.get $1 i32.const 10 i32.const 2 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 096cde7e8f..56a04d6cac 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -239,6 +239,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -257,6 +259,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -309,6 +313,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -448,6 +454,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -461,6 +469,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -554,6 +564,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -610,6 +622,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -629,6 +643,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -683,6 +699,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -793,6 +811,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -830,6 +850,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -861,6 +883,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -881,7 +905,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1075,6 +1103,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1176,6 +1206,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1248,6 +1280,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1306,6 +1340,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1390,6 +1426,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1412,7 +1450,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1481,6 +1521,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1504,9 +1546,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1523,6 +1569,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1542,6 +1590,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1554,9 +1604,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1585,6 +1639,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1613,6 +1669,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1812,12 +1872,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1834,8 +1898,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2221,7 +2289,7 @@ local.get $1 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2266,7 +2334,7 @@ local.get $2 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2311,7 +2379,7 @@ local.get $3 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2356,7 +2424,7 @@ local.get $4 i32.load offset=8 local.get $0 - i32.const 2 + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2401,7 +2469,7 @@ local.get $5 i32.load offset=8 local.get $0 - i32.const 2 + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2446,7 +2514,7 @@ local.get $6 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2491,7 +2559,7 @@ local.get $7 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2536,7 +2604,7 @@ local.get $8 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2581,7 +2649,7 @@ local.get $9 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2626,7 +2694,7 @@ local.get $10 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2671,7 +2739,7 @@ local.get $11 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -3127,7 +3195,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -3157,6 +3227,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3519,6 +3591,8 @@ local.set $9 local.get $2 local.set $8 + i32.const 0 + drop local.get $9 i32.const 256 i32.lt_s @@ -3579,6 +3653,14 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop i32.const 1 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -3756,6 +3838,10 @@ select end local.set $4 + i32.const 1 + i32.const 1 + i32.eq + drop local.get $5 local.get $4 i32.lt_s @@ -4814,6 +4900,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -4839,6 +4929,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -4934,6 +5028,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -5112,6 +5210,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) @@ -5365,6 +5465,10 @@ select end local.set $4 + i32.const 4 + i32.const 1 + i32.eq + drop loop $for-loop|0 local.get $5 local.get $4 @@ -5419,6 +5523,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) @@ -10514,7 +10620,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -10609,6 +10717,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -24500,7 +24610,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int8Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -24515,7 +24627,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -24575,7 +24689,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25183,7 +25299,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint8Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25198,7 +25316,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25258,7 +25378,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25866,7 +25988,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25881,7 +26005,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25941,7 +26067,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26555,7 +26683,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int16Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26570,7 +26700,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26630,7 +26762,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27238,7 +27372,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint16Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27253,7 +27389,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27313,7 +27451,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27915,7 +28055,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27930,7 +28072,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27990,7 +28134,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28592,7 +28738,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28607,7 +28755,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28667,7 +28817,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29270,7 +29422,9 @@ i64.const 4 i32.const 0 call $~lib/typedarray/Int64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29285,7 +29439,9 @@ i64.const 5 i32.const 0 call $~lib/typedarray/Int64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29345,7 +29501,9 @@ i64.const 5 i32.const 1 call $~lib/typedarray/Int64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29948,7 +30106,9 @@ i64.const 4 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29963,7 +30123,9 @@ i64.const 5 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30023,7 +30185,9 @@ i64.const 5 i32.const 1 call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30626,7 +30790,9 @@ f32.const 4 i32.const 0 call $~lib/typedarray/Float32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30641,7 +30807,9 @@ f32.const 5 i32.const 0 call $~lib/typedarray/Float32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30701,7 +30869,9 @@ f32.const 5 i32.const 1 call $~lib/typedarray/Float32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31304,7 +31474,9 @@ f64.const 4 i32.const 0 call $~lib/typedarray/Float64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31319,7 +31491,9 @@ f64.const 5 i32.const 0 call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31379,7 +31553,9 @@ f64.const 5 i32.const 1 call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31432,6 +31608,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 1 + drop local.get $3 local.set $6 local.get $5 @@ -31543,6 +31721,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 1 + drop local.get $3 local.set $6 local.get $5 @@ -31872,6 +32052,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -31886,6 +32070,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 24 i32.shl @@ -31916,6 +32109,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 24 i32.shl @@ -31934,6 +32129,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 24 i32.shl @@ -31962,6 +32167,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 24 @@ -31981,6 +32190,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -32278,6 +32491,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -32484,6 +32701,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Int8Array#join @@ -32549,6 +32768,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -32557,6 +32780,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 255 i32.and @@ -32577,6 +32809,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 255 i32.and @@ -32595,6 +32835,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 255 @@ -32610,6 +32854,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -32811,6 +33059,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Uint8Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Uint8Array#join @@ -32901,6 +33151,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Uint8ClampedArray#join @@ -32940,6 +33192,15 @@ call $~lib/rt/pure/__release ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 16 i32.shl @@ -32962,6 +33223,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 16 i32.shl @@ -32980,6 +33243,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 16 i32.shl @@ -33008,6 +33281,10 @@ end local.get $3 local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 16 @@ -33027,6 +33304,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -33228,6 +33509,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Int16Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Int16Array#join @@ -33267,6 +33550,15 @@ call $~lib/rt/pure/__release ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 65535 i32.and @@ -33287,6 +33579,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 65535 i32.and @@ -33305,6 +33605,10 @@ end local.get $3 local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 65535 @@ -33320,6 +33624,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -33521,6 +33829,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Uint16Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Uint16Array#join @@ -33560,6 +33870,15 @@ call $~lib/rt/pure/__release ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -33578,6 +33897,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 0 i32.lt_s @@ -33592,6 +33913,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 10 i32.lt_u @@ -33612,6 +33943,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -33623,6 +33958,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -33824,6 +34163,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Int32Array#join @@ -33863,6 +34204,15 @@ call $~lib/rt/pure/__release ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa32 return @@ -33881,6 +34231,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 10 i32.lt_u @@ -33895,6 +34253,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -33906,6 +34268,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -34107,6 +34473,8 @@ i32.const 4 i32.const 5 call $~lib/typedarray/Uint32Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Uint32Array#join @@ -34357,7 +34725,8 @@ local.set $0 end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -34380,6 +34749,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -34402,6 +34775,10 @@ local.set $8 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $8 local.get $5 @@ -34417,6 +34794,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa64 return @@ -34437,6 +34823,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i64.const 0 i64.lt_s @@ -34451,6 +34839,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 i64.const 10 i64.lt_u @@ -34471,8 +34869,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -34489,6 +34892,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -34505,6 +34912,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -34707,6 +35118,8 @@ i32.const 4 i64.const 5 call $~lib/typedarray/Int64Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Int64Array#join @@ -34762,7 +35175,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -34783,6 +35197,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -34803,6 +35221,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -34812,6 +35234,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -34832,6 +35263,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i64.const 10 i64.lt_u @@ -34846,8 +35285,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -34864,6 +35308,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -34880,6 +35328,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -35082,6 +35534,8 @@ i32.const 4 i64.const 5 call $~lib/typedarray/Uint64Array#__set + i32.const 0 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Uint64Array#join @@ -35842,6 +36296,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -35914,6 +36372,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -36703,6 +37165,8 @@ i32.const 4 f32.const 5 call $~lib/typedarray/Float32Array#__set + i32.const 1 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Float32Array#join @@ -36936,6 +37400,8 @@ i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set + i32.const 1 + drop local.get $1 i32.const 2368 call $~lib/typedarray/Float64Array#join @@ -37436,6 +37902,8 @@ i32.const 0 local.set $7 i32.const 1 + drop + i32.const 1 global.set $~argumentsLength local.get $6 i32.const 0 @@ -37547,6 +38015,10 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -37803,6 +38275,12 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -38061,6 +38539,14 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -38317,6 +38803,16 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -38571,6 +39067,18 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -38825,6 +39333,20 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -39080,6 +39602,22 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -39335,6 +39873,24 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -39590,6 +40146,26 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -39845,6 +40421,28 @@ local.set $6 i32.const 0 local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $~argumentsLength local.get $6 @@ -39919,6 +40517,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -39953,6 +40553,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -39975,6 +40597,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -40109,6 +40749,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40143,6 +40785,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40165,6 +40829,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -40223,6 +40897,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40257,6 +40933,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40279,6 +40977,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -40330,6 +41046,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40364,6 +41082,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40386,6 +41126,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -40439,6 +41189,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40473,6 +41225,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40511,6 +41285,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40545,6 +41321,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40567,6 +41365,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -40608,6 +41424,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40642,6 +41460,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40768,6 +41608,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -40795,6 +41637,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 0 @@ -40843,6 +41687,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -40877,6 +41723,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -40899,6 +41767,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -41042,6 +41928,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41076,6 +41964,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41098,6 +42008,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -41156,6 +42076,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41190,6 +42112,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41212,6 +42156,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -41259,6 +42221,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41293,6 +42257,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41315,6 +42301,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -41368,6 +42364,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41402,6 +42400,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41440,6 +42460,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41474,6 +42496,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41496,6 +42540,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 0 @@ -41537,6 +42599,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41571,6 +42635,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41697,6 +42783,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -41724,6 +42812,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 0 @@ -41773,6 +42863,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -41807,6 +42899,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -41829,6 +42943,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 2 @@ -41836,6 +42954,13 @@ i32.add i32.load local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $6 local.get $9 i32.const 0 @@ -41973,6 +43098,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42007,6 +43134,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42029,6 +43178,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 1 + drop local.get $7 local.get $9 i32.const 2 @@ -42092,6 +43245,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42126,6 +43281,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42148,6 +43325,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 3 @@ -42155,6 +43336,13 @@ i32.add i64.load local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $6 local.get $9 i32.const 0 @@ -42213,6 +43401,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42247,6 +43437,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42269,6 +43481,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 1 + drop local.get $7 local.get $9 i32.const 3 @@ -42326,6 +43542,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42360,6 +43578,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42399,6 +43639,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42433,6 +43675,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42455,6 +43719,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 1 @@ -42462,6 +43730,13 @@ i32.add i32.load16_s local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $6 local.get $9 i32.const 0 @@ -42516,6 +43791,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42550,6 +43827,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42572,6 +43871,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 0 @@ -42579,6 +43882,13 @@ i32.add i32.load8_s local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $6 local.get $9 i32.const 0 @@ -42720,6 +44030,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -42747,6 +44059,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + i32.const 1 + drop local.get $4 i32.const 10 i32.const 0 @@ -42795,6 +44109,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -42829,6 +44145,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -42851,6 +44189,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -42994,6 +44350,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43028,6 +44386,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43050,6 +44430,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -43108,6 +44498,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43142,6 +44534,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43164,6 +44578,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -43211,6 +44643,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43245,6 +44679,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43267,6 +44723,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -43325,6 +44791,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43359,6 +44827,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43381,6 +44871,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -43422,6 +44930,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43456,6 +44966,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43494,6 +45026,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43528,6 +45062,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43550,6 +45106,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -43684,6 +45258,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -43711,6 +45287,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 1 @@ -43759,6 +45337,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43793,6 +45373,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -43815,6 +45417,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -43958,6 +45578,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -43992,6 +45614,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44014,6 +45658,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -44072,6 +45726,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44106,6 +45762,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44128,6 +45806,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -44175,6 +45871,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44209,6 +45907,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44231,6 +45951,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -44289,6 +46019,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44323,6 +46055,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44345,6 +46099,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -44386,6 +46158,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44420,6 +46194,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44458,6 +46254,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44492,6 +46290,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44514,6 +46334,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 1 @@ -44648,6 +46486,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -44675,6 +46515,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 1 @@ -44718,6 +46560,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44752,6 +46596,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44874,6 +46740,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -44908,6 +46776,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -44930,6 +46820,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -44988,6 +46888,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45022,6 +46924,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45044,6 +46968,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -45091,6 +47033,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45125,6 +47069,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45147,6 +47113,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -45205,6 +47181,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45239,6 +47217,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45261,6 +47261,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -45307,6 +47325,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45341,6 +47361,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45363,6 +47405,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -45409,6 +47469,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45443,6 +47505,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45465,6 +47549,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -45599,6 +47701,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -45626,6 +47730,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 2 @@ -45669,6 +47775,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45703,6 +47811,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45838,6 +47968,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45872,6 +48004,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -45894,6 +48048,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -45952,6 +48116,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -45986,6 +48152,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46008,6 +48196,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -46055,6 +48261,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46089,6 +48297,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46111,6 +48341,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -46169,6 +48409,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46203,6 +48445,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46225,6 +48489,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -46271,6 +48553,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46305,6 +48589,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46327,6 +48633,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -46373,6 +48697,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46407,6 +48733,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46429,6 +48777,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -46563,6 +48929,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -46590,6 +48958,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 2 @@ -46638,6 +49008,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46672,6 +49044,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46694,6 +49088,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -46837,6 +49249,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46871,6 +49285,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -46893,6 +49329,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -46946,6 +49392,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -46980,6 +49428,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47019,6 +49489,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47053,6 +49525,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47075,6 +49569,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -47133,6 +49637,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47167,6 +49673,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47189,6 +49717,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -47235,6 +49781,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47269,6 +49817,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47291,6 +49861,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -47337,6 +49925,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47371,6 +49961,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47393,6 +50005,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -47527,6 +50157,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -47554,6 +50186,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 3 @@ -47602,6 +50236,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47636,6 +50272,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47658,6 +50316,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -47801,6 +50477,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47835,6 +50513,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47857,6 +50557,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 2 @@ -47910,6 +50620,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -47944,6 +50656,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -47983,6 +50717,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48017,6 +50753,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48039,6 +50797,16 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 local.get $9 i32.const 3 @@ -48097,6 +50865,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48131,6 +50901,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48153,6 +50945,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -48199,6 +51009,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48233,6 +51045,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48255,6 +51089,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -48301,6 +51153,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48335,6 +51189,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48357,6 +51233,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -48491,6 +51385,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + i32.const 1 + drop local.get $4 global.get $std/typedarray/setSource3 i32.const 2 @@ -48518,6 +51414,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 3 @@ -48566,6 +51464,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48600,6 +51500,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48622,6 +51544,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -48756,6 +51696,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48790,6 +51732,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48828,6 +51792,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48862,6 +51828,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48884,6 +51872,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -48931,6 +51937,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -48965,6 +51973,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -48987,6 +52017,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -49034,6 +52082,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49068,6 +52118,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49090,6 +52162,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -49137,6 +52227,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49171,6 +52263,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49193,6 +52307,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 2 @@ -49328,6 +52460,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.const 0 + drop local.get $4 local.get $1 i32.const 0 @@ -49340,6 +52474,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Float32Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 2 @@ -49388,6 +52524,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49422,6 +52560,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49444,6 +52604,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -49581,6 +52759,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49615,6 +52795,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49637,6 +52839,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -49684,6 +52904,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49718,6 +52940,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49740,6 +52984,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -49787,6 +53049,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49821,6 +53085,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49843,6 +53129,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -49890,6 +53194,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -49924,6 +53230,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -49946,6 +53274,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -49993,6 +53339,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -50027,6 +53375,28 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -50049,6 +53419,24 @@ local.set $10 local.get $10 if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 local.get $9 i32.const 3 @@ -50184,6 +53572,8 @@ call $~lib/rt/pure/__retain local.tee $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + drop local.get $4 local.get $1 i32.const 0 @@ -50196,6 +53586,8 @@ global.get $std/typedarray/setSource7 i32.const 7 call $~lib/typedarray/Float64Array#set<~lib/array/Array> + i32.const 0 + drop local.get $4 i32.const 10 i32.const 3 @@ -50245,6 +53637,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -50279,6 +53673,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -50301,6 +53717,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 1 + drop local.get $7 local.get $9 i32.const 2 @@ -50364,6 +53784,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -50398,6 +53820,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -50420,6 +53864,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 2 @@ -50427,6 +53875,13 @@ i32.add i32.load local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $6 local.get $9 i32.const 0 @@ -50483,6 +53938,8 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s @@ -50517,6 +53974,28 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 local.get $3 @@ -50539,6 +54018,10 @@ local.set $10 local.get $10 if + i32.const 1 + drop + i32.const 0 + drop local.get $7 local.get $9 i32.const 2 @@ -50546,6 +54029,9 @@ i32.add i32.load local.set $11 + i32.const 0 + i32.eqz + drop local.get $6 local.get $9 i32.const 0 @@ -50602,6 +54088,50 @@ (local $24 i32) (local $25 i32) (local $26 i32) + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop i32.const 0 call $std/typedarray/testInstantiate i32.const 5 @@ -50650,7 +54180,9 @@ end local.get $0 i32.load offset=8 - i32.const 12 + i32.const 3 + i32.const 4 + i32.mul i32.eq i32.eqz if @@ -50727,7 +54259,9 @@ end local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -50740,7 +54274,9 @@ end local.get $0 i32.load offset=8 + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -50827,7 +54363,9 @@ end local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 + i32.const 2 + i32.const 8 + i32.mul i32.eq i32.eqz if @@ -50840,7 +54378,9 @@ end local.get $0 i32.load offset=8 - i32.const 32 + i32.const 4 + i32.const 8 + i32.mul i32.eq i32.eqz if @@ -51378,7 +54918,9 @@ end local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -51391,7 +54933,9 @@ end local.get $8 i32.load offset=8 - i32.const 12 + i32.const 3 + i32.const 4 + i32.mul i32.eq i32.eqz if @@ -51698,7 +55242,7 @@ local.get $3 i32.const 0 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $0 i32.const 5 @@ -51730,7 +55274,7 @@ local.get $3 i32.const 1 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $2 i32.const 5 @@ -51762,7 +55306,7 @@ local.get $3 i32.const 1 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $9 i32.const 5 @@ -51794,7 +55338,7 @@ local.get $3 i32.const 2 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $1 i32.const 5 @@ -51922,7 +55466,7 @@ local.get $3 i32.const 0 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $15 i32.const 5 @@ -52050,7 +55594,7 @@ local.get $3 i32.const -4 i32.const -3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $23 i32.const 5 @@ -52834,6 +56378,8 @@ call $start:std/typedarray ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -52846,8 +56392,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -52871,6 +56421,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -52888,6 +56442,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -52900,6 +56456,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -52920,6 +56478,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -52938,60 +56500,80 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/tablebase.untouched.wat b/tests/compiler/tablebase.untouched.wat index 8d8e75f304..3245a33c27 100644 --- a/tests/compiler/tablebase.untouched.wat +++ b/tests/compiler/tablebase.untouched.wat @@ -6,7 +6,21 @@ (global $tablebase/staticFunction i32 (i32.const 32)) (global $~lib/ASC_TABLE_BASE i32 (i32.const 32)) (export "memory" (memory $0)) + (start $~start) (func $tablebase/foo nop ) + (func $start:tablebase + i32.const 32 + i32.const 32 + i32.eq + drop + global.get $tablebase/staticFunction + i32.const 32 + i32.eq + drop + ) + (func $~start + call $start:tablebase + ) ) diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index ceaa8022d0..bfbf5d1517 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -72,6 +72,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -341,6 +345,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -365,6 +371,12 @@ local.get $0 ) (func $start:typeof + i32.const 1 + drop + i32.const 32 + i32.const 32 + i32.eq + drop i32.const 64 i32.const 64 call $~lib/string/String.__eq @@ -425,6 +437,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop i32.const 176 i32.const 176 call $~lib/string/String.__eq @@ -449,6 +463,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -461,6 +477,8 @@ call $~lib/builtins/abort unreachable end + f64.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -473,6 +491,8 @@ call $~lib/builtins/abort unreachable end + i64.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -485,6 +505,8 @@ call $~lib/builtins/abort unreachable end + i32.const 208 + drop i32.const 240 i32.const 240 call $~lib/string/String.__eq @@ -497,6 +519,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/b + drop i32.const 176 i32.const 176 call $~lib/string/String.__eq @@ -509,6 +533,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/i + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -521,6 +547,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/f + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -533,6 +561,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/I + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -545,6 +575,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/F + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -557,6 +589,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/s + drop i32.const 240 i32.const 240 call $~lib/string/String.__eq @@ -569,6 +603,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/fn + drop i32.const 144 i32.const 144 call $~lib/string/String.__eq @@ -594,6 +630,8 @@ i32.const 0 call $typeof/SomeClass#constructor global.set $typeof/c + global.get $typeof/c + drop i32.const 64 i32.const 64 call $~lib/string/String.__eq @@ -630,6 +668,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/c + drop i32.const 272 i32.const 272 call $~lib/string/String.__eq @@ -642,6 +682,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/c + drop i32.const 272 i32.const 272 call $~lib/string/String.__eq diff --git a/tests/compiler/wasi/snapshot_preview1.untouched.wat b/tests/compiler/wasi/snapshot_preview1.untouched.wat index fbd9e6e7ba..0f7cccfc5b 100644 --- a/tests/compiler/wasi/snapshot_preview1.untouched.wat +++ b/tests/compiler/wasi/snapshot_preview1.untouched.wat @@ -10,6 +10,182 @@ (export "memory" (memory $0)) (start $~start) (func $start:wasi/snapshot_preview1 + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 20 + i32.const 20 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 10 + i32.const 10 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 56 + i32.const 56 + i32.eq + drop + i32.const 64 + i32.const 64 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 20 + i32.const 20 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop i32.const 9 global.set $wasi/snapshot_preview1/sig ) diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index a4af6da21a..c1b5d27963 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -247,6 +247,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -2083,6 +2085,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2108,6 +2114,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2203,6 +2213,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2643,6 +2657,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2715,6 +2733,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3437,6 +3459,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 9736ff2cbb..76367f1ad1 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -311,6 +311,8 @@ (local $0 i32) i32.const 0 local.set $0 + i32.const 0 + drop local.get $0 i32.const 0 i32.eq @@ -494,6 +496,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -512,6 +516,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -564,6 +570,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -703,6 +711,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -716,6 +726,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -809,6 +821,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -865,6 +879,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -884,6 +900,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -938,6 +956,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1048,6 +1068,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1085,6 +1107,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1116,6 +1140,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1136,7 +1162,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1330,6 +1360,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1431,6 +1463,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1503,6 +1537,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1561,6 +1597,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1645,6 +1683,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1667,7 +1707,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1736,6 +1778,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1759,9 +1803,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1778,6 +1826,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1797,6 +1847,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1809,9 +1861,13 @@ end end end + i32.const 1 + drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1840,6 +1896,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1858,12 +1916,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1880,8 +1942,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2256,6 +2322,8 @@ call $start:while ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2271,6 +2339,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2284,8 +2354,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2309,6 +2383,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2326,6 +2404,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2338,6 +2418,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2358,6 +2440,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq