diff options
-rwxr-xr-x | build-js.sh | 1 | ||||
-rwxr-xr-x | scripts/gen-s-parser.py | 1 | ||||
-rw-r--r-- | src/binaryen-c.cpp | 1 | ||||
-rw-r--r-- | src/binaryen-c.h | 1 | ||||
-rw-r--r-- | src/gen-s-parser.inc | 14 | ||||
-rw-r--r-- | src/ir/cost.h | 3 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 4 | ||||
-rw-r--r-- | src/literal.h | 1 | ||||
-rw-r--r-- | src/passes/Print.cpp | 4 | ||||
-rw-r--r-- | src/tools/fuzzing.h | 3 | ||||
-rw-r--r-- | src/wasm-binary.h | 1 | ||||
-rw-r--r-- | src/wasm-interpreter.h | 3 | ||||
-rw-r--r-- | src/wasm.h | 3 | ||||
-rw-r--r-- | src/wasm/literal.cpp | 11 | ||||
-rw-r--r-- | src/wasm/wasm-binary.cpp | 4 | ||||
-rw-r--r-- | src/wasm/wasm-stack.cpp | 5 | ||||
-rw-r--r-- | src/wasm/wasm-validator.cpp | 3 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js | 1 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js.txt | 619 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 1 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 437 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt.txt | 6 | ||||
-rw-r--r-- | test/simd.wast | 6 | ||||
-rw-r--r-- | test/simd.wast.from-wast | 6 | ||||
-rw-r--r-- | test/simd.wast.fromBinary | 6 | ||||
-rw-r--r-- | test/simd.wast.fromBinary.noDebugInfo | 6 | ||||
-rw-r--r-- | test/spec/simd.wast | 8 |
27 files changed, 653 insertions, 506 deletions
diff --git a/build-js.sh b/build-js.sh index 19cbbb5e3..606fe6c50 100755 --- a/build-js.sh +++ b/build-js.sh @@ -574,6 +574,7 @@ export_function "_BinaryenWidenLowSVecI16x8ToVecI32x4" export_function "_BinaryenWidenHighSVecI16x8ToVecI32x4" export_function "_BinaryenWidenLowUVecI16x8ToVecI32x4" export_function "_BinaryenWidenHighUVecI16x8ToVecI32x4" +export_function "_BinaryenSwizzleVec8x16" # Expression creation export_function "_BinaryenBlock" diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py index ccc641c52..9085633fc 100755 --- a/scripts/gen-s-parser.py +++ b/scripts/gen-s-parser.py @@ -452,6 +452,7 @@ instructions = [ ("i32x4.widen_high_i16x8_s", "makeUnary(s, UnaryOp::WidenHighSVecI16x8ToVecI32x4)"), ("i32x4.widen_low_i16x8_u", "makeUnary(s, UnaryOp::WidenLowUVecI16x8ToVecI32x4)"), ("i32x4.widen_high_i16x8_u", "makeUnary(s, UnaryOp::WidenHighUVecI16x8ToVecI32x4)"), + ("v8x16.swizzle", "makeBinary(s, BinaryOp::SwizzleVec8x16)"), # exception handling instructions ("try", "makeTry(s)"), ("throw", "makeThrow(s)"), diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index a4b3e9b5b..7b4ee2bc5 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -942,6 +942,7 @@ BinaryenOp BinaryenWidenLowUVecI16x8ToVecI32x4(void) { BinaryenOp BinaryenWidenHighUVecI16x8ToVecI32x4(void) { return WidenHighUVecI16x8ToVecI32x4; } +BinaryenOp BinaryenSwizzleVec8x16(void) { return SwizzleVec8x16; } BinaryenExpressionRef BinaryenBlock(BinaryenModuleRef module, const char* name, diff --git a/src/binaryen-c.h b/src/binaryen-c.h index a31df8cae..3d15a7efe 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -546,6 +546,7 @@ BINARYEN_API BinaryenOp BinaryenWidenLowSVecI16x8ToVecI32x4(void); BINARYEN_API BinaryenOp BinaryenWidenHighSVecI16x8ToVecI32x4(void); BINARYEN_API BinaryenOp BinaryenWidenLowUVecI16x8ToVecI32x4(void); BINARYEN_API BinaryenOp BinaryenWidenHighUVecI16x8ToVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenSwizzleVec8x16(void); typedef void* BinaryenExpressionRef; diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc index bab468e2a..7f1958582 100644 --- a/src/gen-s-parser.inc +++ b/src/gen-s-parser.inc @@ -2509,9 +2509,17 @@ switch (op[0]) { case 'l': if (strcmp(op, "v8x16.load_splat") == 0) { return makeSIMDLoad(s, SIMDLoadOp::LoadSplatVec8x16); } goto parse_error; - case 's': - if (strcmp(op, "v8x16.shuffle") == 0) { return makeSIMDShuffle(s); } - goto parse_error; + case 's': { + switch (op[7]) { + case 'h': + if (strcmp(op, "v8x16.shuffle") == 0) { return makeSIMDShuffle(s); } + goto parse_error; + case 'w': + if (strcmp(op, "v8x16.swizzle") == 0) { return makeBinary(s, BinaryOp::SwizzleVec8x16); } + goto parse_error; + default: goto parse_error; + } + } default: goto parse_error; } } diff --git a/src/ir/cost.h b/src/ir/cost.h index a4d9a0d40..a3d9f8584 100644 --- a/src/ir/cost.h +++ b/src/ir/cost.h @@ -666,6 +666,9 @@ struct CostAnalyzer : public Visitor<CostAnalyzer, Index> { case NarrowUVecI32x4ToVecI16x8: ret = 1; break; + case SwizzleVec8x16: + ret = 1; + break; case InvalidBinary: WASM_UNREACHABLE(); } diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 8769e1c9e..b11d2769b 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -418,6 +418,7 @@ Module['WidenLowSVecI16x8ToVecI32x4'] = Module['_BinaryenWidenLowSVecI16x8ToVecI Module['WidenHighSVecI16x8ToVecI32x4'] = Module['_BinaryenWidenHighSVecI16x8ToVecI32x4'](); Module['WidenLowUVecI16x8ToVecI32x4'] = Module['_BinaryenWidenLowUVecI16x8ToVecI32x4'](); Module['WidenHighUVecI16x8ToVecI32x4'] = Module['_BinaryenWidenHighUVecI16x8ToVecI32x4'](); +Module['SwizzleVec8x16'] = Module['_BinaryenSwizzleVec8x16'](); // The size of a single literal in memory as used in Const creation, // which is a little different: we don't want users to need to make @@ -1845,6 +1846,9 @@ function wrapModule(module, self) { return Module['_BinaryenSIMDShuffle'](module, left, right, i8sToStack(mask)); }); }, + 'swizzle': function(left, right) { + return Module['_BinaryenBinary'](module, Module['SwizzleVec8x16'], left, right); + }, 'load_splat': function(offset, align, ptr) { return Module['_BinaryenSIMDLoad'](module, Module['LoadSplatVec8x16'], offset, align, ptr); }, diff --git a/src/literal.h b/src/literal.h index 98bb1aa7b..19db6a1d6 100644 --- a/src/literal.h +++ b/src/literal.h @@ -398,6 +398,7 @@ public: Literal widenHighSToVecI32x4() const; Literal widenLowUToVecI32x4() const; Literal widenHighUToVecI32x4() const; + Literal swizzleVec8x16(const Literal& other) const; private: Literal addSatSI8(const Literal& other) const; diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index b856b2000..a5b5e3c2b 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -1243,6 +1243,10 @@ struct PrintExpressionContents o << "i16x8.narrow_i32x4_u"; break; + case SwizzleVec8x16: + o << "v8x16.swizzle"; + break; + case InvalidBinary: WASM_UNREACHABLE(); } diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h index 45ddc59b1..c4070427c 100644 --- a/src/tools/fuzzing.h +++ b/src/tools/fuzzing.h @@ -2174,7 +2174,8 @@ private: NarrowSVecI16x8ToVecI8x16, NarrowUVecI16x8ToVecI8x16, NarrowSVecI32x4ToVecI16x8, - NarrowUVecI32x4ToVecI16x8), + NarrowUVecI32x4ToVecI16x8, + SwizzleVec8x16), make(v128), make(v128)}); } diff --git a/src/wasm-binary.h b/src/wasm-binary.h index f299099b2..104e7b208 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -879,6 +879,7 @@ enum ASTNodes { I32x4LoadExtUVec16x4 = 0xd5, I64x2LoadExtSVec32x2 = 0xd6, I64x2LoadExtUVec32x2 = 0xd7, + V8x16Swizzle = 0xc0, // bulk memory opcodes diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 8c429caa9..5995808a5 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -816,6 +816,9 @@ public: case NarrowUVecI32x4ToVecI16x8: return left.narrowUToVecI16x8(right); + case SwizzleVec8x16: + return left.swizzleVec8x16(right); + case InvalidBinary: WASM_UNREACHABLE(); } diff --git a/src/wasm.h b/src/wasm.h index 8006bd319..d4b53f5bb 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -392,6 +392,9 @@ enum BinaryOp { NarrowSVecI32x4ToVecI16x8, NarrowUVecI32x4ToVecI16x8, + // SIMD Swizzle + SwizzleVec8x16, + InvalidBinary }; diff --git a/src/wasm/literal.cpp b/src/wasm/literal.cpp index b382d1a3d..7f0c9fa6b 100644 --- a/src/wasm/literal.cpp +++ b/src/wasm/literal.cpp @@ -1867,4 +1867,15 @@ Literal Literal::widenHighUToVecI32x4() const { return widen<4, &Literal::getLanesUI16x8, LaneOrder::High>(*this); } +Literal Literal::swizzleVec8x16(const Literal& other) const { + auto lanes = getLanesUI8x16(); + auto indices = other.getLanesUI8x16(); + LaneArray<16> result; + for (size_t i = 0; i < 16; ++i) { + size_t index = indices[i].geti32(); + result[i] = index >= 16 ? Literal(int32_t(0)) : lanes[index]; + } + return Literal(result); +} + } // namespace wasm diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 1606d74a1..8446f3c17 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -3963,6 +3963,10 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) { curr = allocator.alloc<Binary>(); curr->op = NarrowUVecI32x4ToVecI16x8; break; + case BinaryConsts::V8x16Swizzle: + curr = allocator.alloc<Binary>(); + curr->op = SwizzleVec8x16; + break; default: return false; } diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp index 8b7ccfb2e..949bf1364 100644 --- a/src/wasm/wasm-stack.cpp +++ b/src/wasm/wasm-stack.cpp @@ -1484,6 +1484,11 @@ void BinaryInstWriter::visitBinary(Binary* curr) { << U32LEB(BinaryConsts::I16x8NarrowUI32x4); break; + case SwizzleVec8x16: + o << int8_t(BinaryConsts::SIMDPrefix) + << U32LEB(BinaryConsts::V8x16Swizzle); + break; + case InvalidBinary: WASM_UNREACHABLE(); } diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index 1c30d0d2a..278ec4769 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -1366,7 +1366,8 @@ void FunctionValidator::visitBinary(Binary* curr) { case NarrowSVecI16x8ToVecI8x16: case NarrowUVecI16x8ToVecI8x16: case NarrowSVecI32x4ToVecI16x8: - case NarrowUVecI32x4ToVecI16x8: { + case NarrowUVecI32x4ToVecI16x8: + case SwizzleVec8x16: { shouldBeEqualOrFirstIsUnreachable( curr->left->type, v128, curr, "v128 op"); shouldBeEqualOrFirstIsUnreachable( diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js index 23c50b87f..9d947988a 100644 --- a/test/binaryen.js/kitchen-sink.js +++ b/test/binaryen.js/kitchen-sink.js @@ -353,6 +353,7 @@ function test_core() { module.i8x16.narrow_i16x8_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.narrow_i32x4_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.narrow_i32x4_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.v8x16.swizzle(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), // SIMD lane manipulation module.i8x16.extract_lane_s(module.v128.const(v128_bytes), 1), module.i8x16.extract_lane_u(module.v128.const(v128_bytes), 1), diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt index ee2b9bf82..c1b0b3782 100644 --- a/test/binaryen.js/kitchen-sink.js.txt +++ b/test/binaryen.js/kitchen-sink.js.txt @@ -1204,6 +1204,12 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 1 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) @@ -2801,6 +2807,12 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 1 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) @@ -4928,182 +4940,179 @@ int main() { uint8_t t197[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[532] = BinaryenConst(the_module, BinaryenLiteralVec128(t197)); } - expressions[533] = BinaryenSIMDExtract(the_module, 0, expressions[532], 1); { uint8_t t198[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[534] = BinaryenConst(the_module, BinaryenLiteralVec128(t198)); + expressions[533] = BinaryenConst(the_module, BinaryenLiteralVec128(t198)); } - expressions[535] = BinaryenSIMDExtract(the_module, 1, expressions[534], 1); + expressions[534] = BinaryenBinary(the_module, 157, expressions[532], expressions[533]); { uint8_t t199[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[536] = BinaryenConst(the_module, BinaryenLiteralVec128(t199)); + expressions[535] = BinaryenConst(the_module, BinaryenLiteralVec128(t199)); } - expressions[537] = BinaryenSIMDExtract(the_module, 2, expressions[536], 1); + expressions[536] = BinaryenSIMDExtract(the_module, 0, expressions[535], 1); { uint8_t t200[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[538] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); + expressions[537] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); } - expressions[539] = BinaryenSIMDExtract(the_module, 3, expressions[538], 1); + expressions[538] = BinaryenSIMDExtract(the_module, 1, expressions[537], 1); { uint8_t t201[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[540] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); + expressions[539] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); } - expressions[541] = BinaryenSIMDExtract(the_module, 4, expressions[540], 1); + expressions[540] = BinaryenSIMDExtract(the_module, 2, expressions[539], 1); { uint8_t t202[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[542] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); + expressions[541] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); } - expressions[543] = BinaryenSIMDExtract(the_module, 5, expressions[542], 1); + expressions[542] = BinaryenSIMDExtract(the_module, 3, expressions[541], 1); { uint8_t t203[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[544] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); + expressions[543] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); } - expressions[545] = BinaryenSIMDExtract(the_module, 6, expressions[544], 1); + expressions[544] = BinaryenSIMDExtract(the_module, 4, expressions[543], 1); { uint8_t t204[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[546] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); + expressions[545] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); } - expressions[547] = BinaryenSIMDExtract(the_module, 7, expressions[546], 1); + expressions[546] = BinaryenSIMDExtract(the_module, 5, expressions[545], 1); { uint8_t t205[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[548] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); + expressions[547] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); } - expressions[549] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[550] = BinaryenSIMDReplace(the_module, 1, expressions[548], 1, expressions[549]); + expressions[548] = BinaryenSIMDExtract(the_module, 6, expressions[547], 1); { uint8_t t206[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[551] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); + expressions[549] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); } - expressions[552] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[553] = BinaryenSIMDReplace(the_module, 0, expressions[551], 1, expressions[552]); + expressions[550] = BinaryenSIMDExtract(the_module, 7, expressions[549], 1); { uint8_t t207[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); + expressions[551] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); } - expressions[555] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[556] = BinaryenSIMDReplace(the_module, 2, expressions[554], 1, expressions[555]); + expressions[552] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[553] = BinaryenSIMDReplace(the_module, 1, expressions[551], 1, expressions[552]); { uint8_t t208[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); + expressions[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); } - expressions[558] = BinaryenConst(the_module, BinaryenLiteralInt64(184683593770)); - expressions[559] = BinaryenSIMDReplace(the_module, 3, expressions[557], 1, expressions[558]); + expressions[555] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[556] = BinaryenSIMDReplace(the_module, 0, expressions[554], 1, expressions[555]); { uint8_t t209[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); + expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); } - expressions[561] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); - expressions[562] = BinaryenSIMDReplace(the_module, 4, expressions[560], 1, expressions[561]); + expressions[558] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[559] = BinaryenSIMDReplace(the_module, 2, expressions[557], 1, expressions[558]); { uint8_t t210[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); + expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); } - expressions[564] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); - expressions[565] = BinaryenSIMDReplace(the_module, 5, expressions[563], 1, expressions[564]); + expressions[561] = BinaryenConst(the_module, BinaryenLiteralInt64(184683593770)); + expressions[562] = BinaryenSIMDReplace(the_module, 3, expressions[560], 1, expressions[561]); { uint8_t t211[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); + expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); } - expressions[567] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[568] = BinaryenSIMDShift(the_module, 0, expressions[566], expressions[567]); + expressions[564] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); + expressions[565] = BinaryenSIMDReplace(the_module, 4, expressions[563], 1, expressions[564]); { uint8_t t212[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[569] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); + expressions[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); } - expressions[570] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[571] = BinaryenSIMDShift(the_module, 1, expressions[569], expressions[570]); + expressions[567] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); + expressions[568] = BinaryenSIMDReplace(the_module, 5, expressions[566], 1, expressions[567]); { uint8_t t213[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[572] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); + expressions[569] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); } - expressions[573] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[574] = BinaryenSIMDShift(the_module, 2, expressions[572], expressions[573]); + expressions[570] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[571] = BinaryenSIMDShift(the_module, 0, expressions[569], expressions[570]); { uint8_t t214[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[575] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); + expressions[572] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); } - expressions[576] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[577] = BinaryenSIMDShift(the_module, 3, expressions[575], expressions[576]); + expressions[573] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[574] = BinaryenSIMDShift(the_module, 1, expressions[572], expressions[573]); { uint8_t t215[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[578] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); + expressions[575] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); } - expressions[579] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[580] = BinaryenSIMDShift(the_module, 4, expressions[578], expressions[579]); + expressions[576] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[577] = BinaryenSIMDShift(the_module, 2, expressions[575], expressions[576]); { uint8_t t216[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[581] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); + expressions[578] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); } - expressions[582] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[583] = BinaryenSIMDShift(the_module, 5, expressions[581], expressions[582]); + expressions[579] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[580] = BinaryenSIMDShift(the_module, 3, expressions[578], expressions[579]); { uint8_t t217[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[584] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); + expressions[581] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); } - expressions[585] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[586] = BinaryenSIMDShift(the_module, 6, expressions[584], expressions[585]); + expressions[582] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[583] = BinaryenSIMDShift(the_module, 4, expressions[581], expressions[582]); { uint8_t t218[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); + expressions[584] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); } - expressions[588] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[589] = BinaryenSIMDShift(the_module, 7, expressions[587], expressions[588]); + expressions[585] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[586] = BinaryenSIMDShift(the_module, 5, expressions[584], expressions[585]); { uint8_t t219[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); + expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); } - expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[592] = BinaryenSIMDShift(the_module, 8, expressions[590], expressions[591]); + expressions[588] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[589] = BinaryenSIMDShift(the_module, 6, expressions[587], expressions[588]); { uint8_t t220[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); + expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); } - expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[595] = BinaryenSIMDShift(the_module, 9, expressions[593], expressions[594]); + expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[592] = BinaryenSIMDShift(the_module, 7, expressions[590], expressions[591]); { uint8_t t221[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); + expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); } - expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[598] = BinaryenSIMDShift(the_module, 10, expressions[596], expressions[597]); + expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[595] = BinaryenSIMDShift(the_module, 8, expressions[593], expressions[594]); { uint8_t t222[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); + expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); } - expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[601] = BinaryenSIMDShift(the_module, 11, expressions[599], expressions[600]); - expressions[602] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[603] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[602]); - expressions[604] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[605] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[604]); - expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[607] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[606]); - expressions[608] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[609] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[608]); - expressions[610] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[611] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[610]); - expressions[612] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[613] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[612]); - expressions[614] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[615] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[614]); - expressions[616] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[617] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[616]); - expressions[618] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[619] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[618]); - expressions[620] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[621] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[620]); + expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[598] = BinaryenSIMDShift(the_module, 9, expressions[596], expressions[597]); { uint8_t t223[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[622] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); + expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); } + expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[601] = BinaryenSIMDShift(the_module, 10, expressions[599], expressions[600]); { uint8_t t224[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[623] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); - } - { - uint8_t mask[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[624] = BinaryenSIMDShuffle(the_module, expressions[622], expressions[623], mask); - } + expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); + } + expressions[603] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[604] = BinaryenSIMDShift(the_module, 11, expressions[602], expressions[603]); + expressions[605] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[606] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[605]); + expressions[607] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[608] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[607]); + expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[610] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[609]); + expressions[611] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[612] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[611]); + expressions[613] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[614] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[613]); + expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[616] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[615]); + expressions[617] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[618] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[617]); + expressions[619] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[620] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[619]); + expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[622] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[621]); + expressions[623] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[624] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[623]); { uint8_t t225[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[625] = BinaryenConst(the_module, BinaryenLiteralVec128(t225)); @@ -5113,10 +5122,13 @@ int main() { expressions[626] = BinaryenConst(the_module, BinaryenLiteralVec128(t226)); } { + uint8_t mask[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[627] = BinaryenSIMDShuffle(the_module, expressions[625], expressions[626], mask); + } + { uint8_t t227[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[627] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); + expressions[628] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); } - expressions[628] = BinaryenSIMDTernary(the_module, 0, expressions[625], expressions[626], expressions[627]); { uint8_t t228[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[629] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); @@ -5125,11 +5137,11 @@ int main() { uint8_t t229[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[630] = BinaryenConst(the_module, BinaryenLiteralVec128(t229)); } + expressions[631] = BinaryenSIMDTernary(the_module, 0, expressions[628], expressions[629], expressions[630]); { uint8_t t230[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[631] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); + expressions[632] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); } - expressions[632] = BinaryenSIMDTernary(the_module, 1, expressions[629], expressions[630], expressions[631]); { uint8_t t231[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[633] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); @@ -5138,11 +5150,11 @@ int main() { uint8_t t232[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[634] = BinaryenConst(the_module, BinaryenLiteralVec128(t232)); } + expressions[635] = BinaryenSIMDTernary(the_module, 1, expressions[632], expressions[633], expressions[634]); { uint8_t t233[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[635] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); + expressions[636] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); } - expressions[636] = BinaryenSIMDTernary(the_module, 2, expressions[633], expressions[634], expressions[635]); { uint8_t t234[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[637] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); @@ -5151,11 +5163,11 @@ int main() { uint8_t t235[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[638] = BinaryenConst(the_module, BinaryenLiteralVec128(t235)); } + expressions[639] = BinaryenSIMDTernary(the_module, 2, expressions[636], expressions[637], expressions[638]); { uint8_t t236[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[639] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); + expressions[640] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); } - expressions[640] = BinaryenSIMDTernary(the_module, 3, expressions[637], expressions[638], expressions[639]); { uint8_t t237[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[641] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); @@ -5164,161 +5176,170 @@ int main() { uint8_t t238[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[642] = BinaryenConst(the_module, BinaryenLiteralVec128(t238)); } + expressions[643] = BinaryenSIMDTernary(the_module, 3, expressions[640], expressions[641], expressions[642]); { uint8_t t239[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[643] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); - } - expressions[644] = BinaryenSIMDTernary(the_module, 4, expressions[641], expressions[642], expressions[643]); - expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[646] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[647] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); - expressions[648] = BinaryenMemoryInit(the_module, 0, expressions[645], expressions[646], expressions[647]); - expressions[649] = BinaryenDataDrop(the_module, 0); - expressions[650] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); - expressions[651] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[652] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); - expressions[653] = BinaryenMemoryCopy(the_module, expressions[650], expressions[651], expressions[652]); - expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[655] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[656] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[657] = BinaryenMemoryFill(the_module, expressions[654], expressions[655], expressions[656]); + expressions[644] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); + } + { + uint8_t t240[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[645] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); + } + { + uint8_t t241[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[646] = BinaryenConst(the_module, BinaryenLiteralVec128(t241)); + } + expressions[647] = BinaryenSIMDTernary(the_module, 4, expressions[644], expressions[645], expressions[646]); + expressions[648] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[650] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[651] = BinaryenMemoryInit(the_module, 0, expressions[648], expressions[649], expressions[650]); + expressions[652] = BinaryenDataDrop(the_module, 0); + expressions[653] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); + expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[655] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[656] = BinaryenMemoryCopy(the_module, expressions[653], expressions[654], expressions[655]); + expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[658] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[659] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[660] = BinaryenMemoryFill(the_module, expressions[657], expressions[658], expressions[659]); { BinaryenExpressionRef children[] = { 0 }; - expressions[658] = BinaryenBlock(the_module, NULL, children, 0, 0); - } - expressions[659] = BinaryenIf(the_module, expressions[7], expressions[8], expressions[9]); - expressions[660] = BinaryenIf(the_module, expressions[10], expressions[11], expressions[0]); - expressions[661] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[662] = BinaryenLoop(the_module, "in", expressions[661]); - expressions[663] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[664] = BinaryenLoop(the_module, NULL, expressions[663]); - expressions[665] = BinaryenBreak(the_module, "the-value", expressions[12], expressions[13]); - expressions[666] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); - expressions[667] = BinaryenBreak(the_module, "the-nothing", expressions[666], expressions[0]); - expressions[668] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); - expressions[669] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[668]); - expressions[670] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); + expressions[661] = BinaryenBlock(the_module, NULL, children, 0, 0); + } + expressions[662] = BinaryenIf(the_module, expressions[7], expressions[8], expressions[9]); + expressions[663] = BinaryenIf(the_module, expressions[10], expressions[11], expressions[0]); + expressions[664] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[665] = BinaryenLoop(the_module, "in", expressions[664]); + expressions[666] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[667] = BinaryenLoop(the_module, NULL, expressions[666]); + expressions[668] = BinaryenBreak(the_module, "the-value", expressions[12], expressions[13]); + expressions[669] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[670] = BinaryenBreak(the_module, "the-nothing", expressions[669], expressions[0]); + expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); + expressions[672] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[671]); + expressions[673] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); { const char* names[] = { "the-value" }; - expressions[671] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]); + expressions[674] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]); } - expressions[672] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[675] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); { const char* names[] = { "the-nothing" }; - expressions[673] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[672], expressions[0]); - } - expressions[674] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); - expressions[675] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); - expressions[676] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); - expressions[677] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); - { - BinaryenExpressionRef operands[] = { expressions[674], expressions[675], expressions[676], expressions[677] }; - expressions[678] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); - } - expressions[679] = BinaryenUnary(the_module, 20, expressions[678]); - expressions[680] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); - expressions[681] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); - { - BinaryenExpressionRef operands[] = { expressions[680], expressions[681] }; - expressions[682] = BinaryenCall(the_module, "an-imported", operands, 2, 3); - } - expressions[683] = BinaryenUnary(the_module, 25, expressions[682]); - expressions[684] = BinaryenUnary(the_module, 20, expressions[683]); - expressions[685] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); - expressions[686] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); - expressions[687] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); - expressions[688] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); - expressions[689] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); - { - BinaryenExpressionRef operands[] = { expressions[686], expressions[687], expressions[688], expressions[689] }; - expressions[690] = BinaryenCallIndirect(the_module, expressions[685], operands, 4, "iiIfF"); - } - expressions[691] = BinaryenUnary(the_module, 20, expressions[690]); - expressions[692] = BinaryenLocalGet(the_module, 0, 1); - expressions[693] = BinaryenDrop(the_module, expressions[692]); - expressions[694] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); - expressions[695] = BinaryenLocalSet(the_module, 0, expressions[694]); - expressions[696] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); - expressions[697] = BinaryenLocalTee(the_module, 0, expressions[696]); - expressions[698] = BinaryenDrop(the_module, expressions[697]); - expressions[699] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[700] = BinaryenLoad(the_module, 4, 1, 0, 0, 1, expressions[699]); - expressions[701] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); - expressions[702] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[701]); - expressions[703] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); - expressions[704] = BinaryenLoad(the_module, 4, 1, 0, 0, 3, expressions[703]); - expressions[705] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); - expressions[706] = BinaryenLoad(the_module, 8, 1, 2, 8, 4, expressions[705]); - expressions[707] = BinaryenStore(the_module, 4, 0, 0, expressions[19], expressions[20], 1); - expressions[708] = BinaryenStore(the_module, 8, 2, 4, expressions[21], expressions[22], 2); - expressions[709] = BinaryenSelect(the_module, expressions[16], expressions[17], expressions[18]); - expressions[710] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); - expressions[711] = BinaryenReturn(the_module, expressions[710]); - expressions[712] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); - expressions[713] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); - expressions[714] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); - expressions[715] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); - { - BinaryenExpressionRef operands[] = { expressions[712], expressions[713], expressions[714], expressions[715] }; - expressions[716] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); - } - expressions[717] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); - expressions[718] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); - expressions[719] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); - expressions[720] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); - expressions[721] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); - { - BinaryenExpressionRef operands[] = { expressions[718], expressions[719], expressions[720], expressions[721] }; - expressions[722] = BinaryenReturnCallIndirect(the_module, expressions[717], operands, 4, "iiIfF"); - } - expressions[723] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - { - BinaryenExpressionRef operands[] = { expressions[723] }; - expressions[724] = BinaryenThrow(the_module, "a-event", operands, 1); - } - expressions[725] = BinaryenPop(the_module, 7); - expressions[726] = BinaryenLocalSet(the_module, 5, expressions[725]); - expressions[727] = BinaryenLocalGet(the_module, 5, 7); - expressions[728] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[727]); - expressions[729] = BinaryenRethrow(the_module, expressions[728]); - { - BinaryenExpressionRef children[] = { expressions[729] }; - expressions[730] = BinaryenBlock(the_module, "try-block", children, 1, 1); - } - expressions[731] = BinaryenDrop(the_module, expressions[730]); - { - BinaryenExpressionRef children[] = { expressions[726], expressions[731] }; - expressions[732] = BinaryenBlock(the_module, NULL, children, 2, 0); - } - expressions[733] = BinaryenTry(the_module, expressions[724], expressions[732]); - expressions[734] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[735] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[736] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[735]); - expressions[737] = BinaryenAtomicStore(the_module, 4, 0, expressions[734], expressions[736], 1); + expressions[676] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[675], expressions[0]); + } + expressions[677] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[678] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[679] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[680] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[677], expressions[678], expressions[679], expressions[680] }; + expressions[681] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); + } + expressions[682] = BinaryenUnary(the_module, 20, expressions[681]); + expressions[683] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[684] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[683], expressions[684] }; + expressions[685] = BinaryenCall(the_module, "an-imported", operands, 2, 3); + } + expressions[686] = BinaryenUnary(the_module, 25, expressions[685]); + expressions[687] = BinaryenUnary(the_module, 20, expressions[686]); + expressions[688] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[689] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[691] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[692] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[689], expressions[690], expressions[691], expressions[692] }; + expressions[693] = BinaryenCallIndirect(the_module, expressions[688], operands, 4, "iiIfF"); + } + expressions[694] = BinaryenUnary(the_module, 20, expressions[693]); + expressions[695] = BinaryenLocalGet(the_module, 0, 1); + expressions[696] = BinaryenDrop(the_module, expressions[695]); + expressions[697] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); + expressions[698] = BinaryenLocalSet(the_module, 0, expressions[697]); + expressions[699] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); + expressions[700] = BinaryenLocalTee(the_module, 0, expressions[699]); + expressions[701] = BinaryenDrop(the_module, expressions[700]); + expressions[702] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[703] = BinaryenLoad(the_module, 4, 1, 0, 0, 1, expressions[702]); + expressions[704] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); + expressions[705] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[704]); + expressions[706] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[707] = BinaryenLoad(the_module, 4, 1, 0, 0, 3, expressions[706]); + expressions[708] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); + expressions[709] = BinaryenLoad(the_module, 8, 1, 2, 8, 4, expressions[708]); + expressions[710] = BinaryenStore(the_module, 4, 0, 0, expressions[19], expressions[20], 1); + expressions[711] = BinaryenStore(the_module, 8, 2, 4, expressions[21], expressions[22], 2); + expressions[712] = BinaryenSelect(the_module, expressions[16], expressions[17], expressions[18]); + expressions[713] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); + expressions[714] = BinaryenReturn(the_module, expressions[713]); + expressions[715] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[716] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[717] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[718] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[715], expressions[716], expressions[717], expressions[718] }; + expressions[719] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); + } + expressions[720] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[721] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[722] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[723] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[724] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[721], expressions[722], expressions[723], expressions[724] }; + expressions[725] = BinaryenReturnCallIndirect(the_module, expressions[720], operands, 4, "iiIfF"); + } + expressions[726] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + { + BinaryenExpressionRef operands[] = { expressions[726] }; + expressions[727] = BinaryenThrow(the_module, "a-event", operands, 1); + } + expressions[728] = BinaryenPop(the_module, 7); + expressions[729] = BinaryenLocalSet(the_module, 5, expressions[728]); + expressions[730] = BinaryenLocalGet(the_module, 5, 7); + expressions[731] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[730]); + expressions[732] = BinaryenRethrow(the_module, expressions[731]); + { + BinaryenExpressionRef children[] = { expressions[732] }; + expressions[733] = BinaryenBlock(the_module, "try-block", children, 1, 1); + } + expressions[734] = BinaryenDrop(the_module, expressions[733]); + { + BinaryenExpressionRef children[] = { expressions[729], expressions[734] }; + expressions[735] = BinaryenBlock(the_module, NULL, children, 2, 0); + } + expressions[736] = BinaryenTry(the_module, expressions[727], expressions[735]); + expressions[737] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); expressions[738] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[739] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[740] = BinaryenConst(the_module, BinaryenLiteralInt64(0)); - expressions[741] = BinaryenAtomicWait(the_module, expressions[738], expressions[739], expressions[740], 1); - expressions[742] = BinaryenDrop(the_module, expressions[741]); - expressions[743] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[744] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[745] = BinaryenAtomicNotify(the_module, expressions[743], expressions[744]); - expressions[746] = BinaryenDrop(the_module, expressions[745]); - expressions[747] = BinaryenAtomicFence(the_module); - expressions[748] = BinaryenPop(the_module, 1); - expressions[749] = BinaryenPush(the_module, expressions[748]); - expressions[750] = BinaryenPop(the_module, 2); - expressions[751] = BinaryenPush(the_module, expressions[750]); - expressions[752] = BinaryenPop(the_module, 3); - expressions[753] = BinaryenPush(the_module, expressions[752]); - expressions[754] = BinaryenPop(the_module, 4); - expressions[755] = BinaryenPush(the_module, expressions[754]); - expressions[756] = BinaryenPop(the_module, 5); - expressions[757] = BinaryenPush(the_module, expressions[756]); - expressions[758] = BinaryenPop(the_module, 7); - expressions[759] = BinaryenPush(the_module, expressions[758]); - expressions[760] = BinaryenNop(the_module); - expressions[761] = BinaryenUnreachable(the_module); + expressions[739] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[738]); + expressions[740] = BinaryenAtomicStore(the_module, 4, 0, expressions[737], expressions[739], 1); + expressions[741] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[742] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[743] = BinaryenConst(the_module, BinaryenLiteralInt64(0)); + expressions[744] = BinaryenAtomicWait(the_module, expressions[741], expressions[742], expressions[743], 1); + expressions[745] = BinaryenDrop(the_module, expressions[744]); + expressions[746] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[747] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[748] = BinaryenAtomicNotify(the_module, expressions[746], expressions[747]); + expressions[749] = BinaryenDrop(the_module, expressions[748]); + expressions[750] = BinaryenAtomicFence(the_module); + expressions[751] = BinaryenPop(the_module, 1); + expressions[752] = BinaryenPush(the_module, expressions[751]); + expressions[753] = BinaryenPop(the_module, 2); + expressions[754] = BinaryenPush(the_module, expressions[753]); + expressions[755] = BinaryenPop(the_module, 3); + expressions[756] = BinaryenPush(the_module, expressions[755]); + expressions[757] = BinaryenPop(the_module, 4); + expressions[758] = BinaryenPush(the_module, expressions[757]); + expressions[759] = BinaryenPop(the_module, 5); + expressions[760] = BinaryenPush(the_module, expressions[759]); + expressions[761] = BinaryenPop(the_module, 7); + expressions[762] = BinaryenPush(the_module, expressions[761]); + expressions[763] = BinaryenNop(the_module); + expressions[764] = BinaryenUnreachable(the_module); BinaryenExpressionGetId(expressions[30]); BinaryenExpressionGetType(expressions[30]); BinaryenUnaryGetOp(expressions[30]); @@ -5329,26 +5350,26 @@ getExpressionInfo={"id":15,"type":3,"op":6} (f32.const -33.61199951171875) ) - expressions[762] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); - BinaryenExpressionGetId(expressions[762]); - BinaryenExpressionGetType(expressions[762]); - BinaryenConstGetValueI32(expressions[762]); + expressions[765] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); + BinaryenExpressionGetId(expressions[765]); + BinaryenExpressionGetType(expressions[765]); + BinaryenConstGetValueI32(expressions[765]); getExpressionInfo(i32.const)={"id":14,"type":1,"value":5} - expressions[763] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078)); - BinaryenExpressionGetId(expressions[763]); - BinaryenExpressionGetType(expressions[763]); - BinaryenConstGetValueI64Low(expressions[763]); - BinaryenConstGetValueI64High(expressions[763]); + expressions[766] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078)); + BinaryenExpressionGetId(expressions[766]); + BinaryenExpressionGetType(expressions[766]); + BinaryenConstGetValueI64Low(expressions[766]); + BinaryenConstGetValueI64High(expressions[766]); getExpressionInfo(i64.const)={"id":14,"type":2,"value":{"low":6,"high":7}} - expressions[764] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5)); - BinaryenExpressionGetId(expressions[764]); - BinaryenExpressionGetType(expressions[764]); - BinaryenConstGetValueF32(expressions[764]); + expressions[767] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5)); + BinaryenExpressionGetId(expressions[767]); + BinaryenExpressionGetType(expressions[767]); + BinaryenConstGetValueF32(expressions[767]); getExpressionInfo(f32.const)={"id":14,"type":3,"value":8.5} - expressions[765] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5)); - BinaryenExpressionGetId(expressions[765]); - BinaryenExpressionGetType(expressions[765]); - BinaryenConstGetValueF64(expressions[765]); + expressions[768] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5)); + BinaryenExpressionGetId(expressions[768]); + BinaryenExpressionGetType(expressions[768]); + BinaryenConstGetValueF64(expressions[768]); getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} { BinaryenExpressionRef children[] = { expressions[24], expressions[26], expressions[28], expressions[30], expressions[32], @@ -5384,39 +5405,39 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} expressions[477], expressions[480], expressions[483], expressions[486], expressions[489], expressions[492], expressions[495], expressions[498], expressions[501], expressions[504], expressions[507], expressions[510], expressions[513], expressions[516], expressions[519], expressions[522], expressions[525], expressions[528], - expressions[531], expressions[533], expressions[535], expressions[537], expressions[539], expressions[541], - expressions[543], expressions[545], expressions[547], expressions[550], expressions[553], expressions[556], + expressions[531], expressions[534], expressions[536], expressions[538], expressions[540], expressions[542], + expressions[544], expressions[546], expressions[548], expressions[550], expressions[553], expressions[556], expressions[559], expressions[562], expressions[565], expressions[568], expressions[571], expressions[574], expressions[577], expressions[580], expressions[583], expressions[586], expressions[589], expressions[592], - expressions[595], expressions[598], expressions[601], expressions[603], expressions[605], expressions[607], - expressions[609], expressions[611], expressions[613], expressions[615], expressions[617], expressions[619], - expressions[621], expressions[624], expressions[628], expressions[632], expressions[636], expressions[640], - expressions[644], expressions[648], expressions[649], expressions[653], expressions[657], expressions[658], - expressions[659], expressions[660], expressions[662], expressions[664], expressions[665], expressions[667], - expressions[669], expressions[670], expressions[671], expressions[673], expressions[679], expressions[684], - expressions[691], expressions[693], expressions[695], expressions[698], expressions[700], expressions[702], - expressions[704], expressions[706], expressions[707], expressions[708], expressions[709], expressions[711], - expressions[716], expressions[722], expressions[733], expressions[737], expressions[742], expressions[746], - expressions[747], expressions[749], expressions[751], expressions[753], expressions[755], expressions[757], - expressions[759], expressions[760], expressions[761] }; - expressions[766] = BinaryenBlock(the_module, "the-value", children, 284, 0); + expressions[595], expressions[598], expressions[601], expressions[604], expressions[606], expressions[608], + expressions[610], expressions[612], expressions[614], expressions[616], expressions[618], expressions[620], + expressions[622], expressions[624], expressions[627], expressions[631], expressions[635], expressions[639], + expressions[643], expressions[647], expressions[651], expressions[652], expressions[656], expressions[660], + expressions[661], expressions[662], expressions[663], expressions[665], expressions[667], expressions[668], + expressions[670], expressions[672], expressions[673], expressions[674], expressions[676], expressions[682], + expressions[687], expressions[694], expressions[696], expressions[698], expressions[701], expressions[703], + expressions[705], expressions[707], expressions[709], expressions[710], expressions[711], expressions[712], + expressions[714], expressions[719], expressions[725], expressions[736], expressions[740], expressions[745], + expressions[749], expressions[750], expressions[752], expressions[754], expressions[756], expressions[758], + expressions[760], expressions[762], expressions[763], expressions[764] }; + expressions[769] = BinaryenBlock(the_module, "the-value", children, 285, 0); } - expressions[767] = BinaryenDrop(the_module, expressions[766]); + expressions[770] = BinaryenDrop(the_module, expressions[769]); { - BinaryenExpressionRef children[] = { expressions[767] }; - expressions[768] = BinaryenBlock(the_module, "the-nothing", children, 1, 0); + BinaryenExpressionRef children[] = { expressions[770] }; + expressions[771] = BinaryenBlock(the_module, "the-nothing", children, 1, 0); } - expressions[769] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[772] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { - BinaryenExpressionRef children[] = { expressions[768], expressions[769] }; - expressions[770] = BinaryenBlock(the_module, "the-body", children, 2, 0); + BinaryenExpressionRef children[] = { expressions[771], expressions[772] }; + expressions[773] = BinaryenBlock(the_module, "the-body", children, 2, 0); } { BinaryenType varTypes[] = { 1, 7 }; - functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[770]); + functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[773]); } - expressions[771] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[771]); + expressions[774] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[774]); { BinaryenType paramTypes[] = { 1, 4 }; functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2); @@ -5446,13 +5467,13 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} const char* funcNames[] = { "kitchen()sinker" }; BinaryenSetFunctionTable(the_module, 1, 4294967295, funcNames, 1); } - expressions[772] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); + expressions[775] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); { const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 }; const char segment1[] = { 73, 32, 97, 109, 32, 112, 97, 115, 115, 105, 118, 101 }; const char* segments[] = { segment0, segment1 }; int8_t segmentPassive[] = { 0, 1 }; - BinaryenExpressionRef segmentOffsets[] = { expressions[772], expressions[0] }; + BinaryenExpressionRef segmentOffsets[] = { expressions[775], expressions[0] }; BinaryenIndex segmentSizes[] = { 12, 12 }; BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1); } @@ -5460,10 +5481,10 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} BinaryenType paramTypes[] = { 0 }; functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); } - expressions[773] = BinaryenNop(the_module); + expressions[776] = BinaryenNop(the_module); { BinaryenType varTypes[] = { 0 }; - functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[773]); + functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[776]); } BinaryenSetStart(the_module, functions[1]); { @@ -6607,6 +6628,12 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 1 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) @@ -8206,6 +8233,12 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 1 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index 689adcae0..742c88b76 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -454,6 +454,7 @@ void test_core() { makeBinary(module, BinaryenNarrowUVecI16x8ToVecI8x16(), 5), makeBinary(module, BinaryenNarrowSVecI32x4ToVecI16x8(), 5), makeBinary(module, BinaryenNarrowUVecI32x4ToVecI16x8(), 5), + makeBinary(module, BinaryenSwizzleVec8x16(), 5), // SIMD lane manipulation makeSIMDExtract(module, BinaryenExtractLaneSVecI8x16()), makeSIMDExtract(module, BinaryenExtractLaneUVecI8x16()), diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 4848ec3bf..72645ea68 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -1151,6 +1151,12 @@ BinaryenFeatureAll: 511 ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 0 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) @@ -3311,182 +3317,179 @@ int main() { uint8_t t198[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[553] = BinaryenConst(the_module, BinaryenLiteralVec128(t198)); } - expressions[554] = BinaryenSIMDExtract(the_module, 0, expressions[553], 0); { uint8_t t199[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[555] = BinaryenConst(the_module, BinaryenLiteralVec128(t199)); + expressions[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t199)); } - expressions[556] = BinaryenSIMDExtract(the_module, 1, expressions[555], 0); + expressions[555] = BinaryenBinary(the_module, 157, expressions[554], expressions[553]); { uint8_t t200[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); + expressions[556] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); } - expressions[558] = BinaryenSIMDExtract(the_module, 2, expressions[557], 0); + expressions[557] = BinaryenSIMDExtract(the_module, 0, expressions[556], 0); { uint8_t t201[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[559] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); + expressions[558] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); } - expressions[560] = BinaryenSIMDExtract(the_module, 3, expressions[559], 0); + expressions[559] = BinaryenSIMDExtract(the_module, 1, expressions[558], 0); { uint8_t t202[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[561] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); + expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); } - expressions[562] = BinaryenSIMDExtract(the_module, 4, expressions[561], 0); + expressions[561] = BinaryenSIMDExtract(the_module, 2, expressions[560], 0); { uint8_t t203[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); + expressions[562] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); } - expressions[564] = BinaryenSIMDExtract(the_module, 5, expressions[563], 0); + expressions[563] = BinaryenSIMDExtract(the_module, 3, expressions[562], 0); { uint8_t t204[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[565] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); + expressions[564] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); } - expressions[566] = BinaryenSIMDExtract(the_module, 6, expressions[565], 0); + expressions[565] = BinaryenSIMDExtract(the_module, 4, expressions[564], 0); { uint8_t t205[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[567] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); + expressions[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); } - expressions[568] = BinaryenSIMDExtract(the_module, 7, expressions[567], 0); - expressions[569] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[567] = BinaryenSIMDExtract(the_module, 5, expressions[566], 0); { uint8_t t206[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[570] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); + expressions[568] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); } - expressions[571] = BinaryenSIMDReplace(the_module, 0, expressions[570], 0, expressions[569]); - expressions[572] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[569] = BinaryenSIMDExtract(the_module, 6, expressions[568], 0); { uint8_t t207[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[573] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); + expressions[570] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); } - expressions[574] = BinaryenSIMDReplace(the_module, 1, expressions[573], 0, expressions[572]); - expressions[575] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[571] = BinaryenSIMDExtract(the_module, 7, expressions[570], 0); + expressions[572] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { uint8_t t208[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[576] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); + expressions[573] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); } - expressions[577] = BinaryenSIMDReplace(the_module, 2, expressions[576], 0, expressions[575]); - expressions[578] = BinaryenConst(the_module, BinaryenLiteralInt64(42)); + expressions[574] = BinaryenSIMDReplace(the_module, 0, expressions[573], 0, expressions[572]); + expressions[575] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { uint8_t t209[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[579] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); + expressions[576] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); } - expressions[580] = BinaryenSIMDReplace(the_module, 3, expressions[579], 0, expressions[578]); - expressions[581] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); + expressions[577] = BinaryenSIMDReplace(the_module, 1, expressions[576], 0, expressions[575]); + expressions[578] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { uint8_t t210[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[582] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); + expressions[579] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); } - expressions[583] = BinaryenSIMDReplace(the_module, 4, expressions[582], 0, expressions[581]); - expressions[584] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); + expressions[580] = BinaryenSIMDReplace(the_module, 2, expressions[579], 0, expressions[578]); + expressions[581] = BinaryenConst(the_module, BinaryenLiteralInt64(42)); { uint8_t t211[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[585] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); + expressions[582] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); } - expressions[586] = BinaryenSIMDReplace(the_module, 5, expressions[585], 0, expressions[584]); + expressions[583] = BinaryenSIMDReplace(the_module, 3, expressions[582], 0, expressions[581]); + expressions[584] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); { uint8_t t212[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); + expressions[585] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); } - expressions[588] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[589] = BinaryenSIMDShift(the_module, 0, expressions[587], expressions[588]); + expressions[586] = BinaryenSIMDReplace(the_module, 4, expressions[585], 0, expressions[584]); + expressions[587] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); { uint8_t t213[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); + expressions[588] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); } - expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[592] = BinaryenSIMDShift(the_module, 1, expressions[590], expressions[591]); + expressions[589] = BinaryenSIMDReplace(the_module, 5, expressions[588], 0, expressions[587]); { uint8_t t214[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); + expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); } - expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[595] = BinaryenSIMDShift(the_module, 2, expressions[593], expressions[594]); + expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[592] = BinaryenSIMDShift(the_module, 0, expressions[590], expressions[591]); { uint8_t t215[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); + expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); } - expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[598] = BinaryenSIMDShift(the_module, 3, expressions[596], expressions[597]); + expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[595] = BinaryenSIMDShift(the_module, 1, expressions[593], expressions[594]); { uint8_t t216[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); + expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); } - expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[601] = BinaryenSIMDShift(the_module, 4, expressions[599], expressions[600]); + expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[598] = BinaryenSIMDShift(the_module, 2, expressions[596], expressions[597]); { uint8_t t217[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); + expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); } - expressions[603] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[604] = BinaryenSIMDShift(the_module, 5, expressions[602], expressions[603]); + expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[601] = BinaryenSIMDShift(the_module, 3, expressions[599], expressions[600]); { uint8_t t218[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[605] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); + expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); } - expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[607] = BinaryenSIMDShift(the_module, 6, expressions[605], expressions[606]); + expressions[603] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[604] = BinaryenSIMDShift(the_module, 4, expressions[602], expressions[603]); { uint8_t t219[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); + expressions[605] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); } - expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[610] = BinaryenSIMDShift(the_module, 7, expressions[608], expressions[609]); + expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[607] = BinaryenSIMDShift(the_module, 5, expressions[605], expressions[606]); { uint8_t t220[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); + expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); } - expressions[612] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[613] = BinaryenSIMDShift(the_module, 8, expressions[611], expressions[612]); + expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[610] = BinaryenSIMDShift(the_module, 6, expressions[608], expressions[609]); { uint8_t t221[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); + expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); } - expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[616] = BinaryenSIMDShift(the_module, 9, expressions[614], expressions[615]); + expressions[612] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[613] = BinaryenSIMDShift(the_module, 7, expressions[611], expressions[612]); { uint8_t t222[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[617] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); + expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); } - expressions[618] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[619] = BinaryenSIMDShift(the_module, 10, expressions[617], expressions[618]); + expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[616] = BinaryenSIMDShift(the_module, 8, expressions[614], expressions[615]); { uint8_t t223[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); + expressions[617] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); } - expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[622] = BinaryenSIMDShift(the_module, 11, expressions[620], expressions[621]); - expressions[623] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[624] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[623]); - expressions[625] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[626] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[625]); - expressions[627] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[628] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[627]); - expressions[629] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[630] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[629]); - expressions[631] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[632] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[631]); - expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[634] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[633]); - expressions[635] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[636] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[635]); - expressions[637] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[638] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[637]); - expressions[639] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[640] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[639]); - expressions[641] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); - expressions[642] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[641]); + expressions[618] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[619] = BinaryenSIMDShift(the_module, 9, expressions[617], expressions[618]); { uint8_t t224[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[643] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); + expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); } + expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[622] = BinaryenSIMDShift(the_module, 10, expressions[620], expressions[621]); { uint8_t t225[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[644] = BinaryenConst(the_module, BinaryenLiteralVec128(t225)); - } - { - uint8_t mask[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - expressions[645] = BinaryenSIMDShuffle(the_module, expressions[643], expressions[644], mask); - } + expressions[623] = BinaryenConst(the_module, BinaryenLiteralVec128(t225)); + } + expressions[624] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[625] = BinaryenSIMDShift(the_module, 11, expressions[623], expressions[624]); + expressions[626] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[627] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[626]); + expressions[628] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[629] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[628]); + expressions[630] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[631] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[630]); + expressions[632] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[633] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[632]); + expressions[634] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[635] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[634]); + expressions[636] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[637] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[636]); + expressions[638] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[639] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[638]); + expressions[640] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[641] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[640]); + expressions[642] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[643] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[642]); + expressions[644] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[645] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[644]); { uint8_t t226[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[646] = BinaryenConst(the_module, BinaryenLiteralVec128(t226)); @@ -3496,10 +3499,13 @@ int main() { expressions[647] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); } { + uint8_t mask[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + expressions[648] = BinaryenSIMDShuffle(the_module, expressions[646], expressions[647], mask); + } + { uint8_t t228[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[648] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); + expressions[649] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); } - expressions[649] = BinaryenSIMDTernary(the_module, 0, expressions[646], expressions[647], expressions[648]); { uint8_t t229[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[650] = BinaryenConst(the_module, BinaryenLiteralVec128(t229)); @@ -3508,11 +3514,11 @@ int main() { uint8_t t230[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[651] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); } + expressions[652] = BinaryenSIMDTernary(the_module, 0, expressions[649], expressions[650], expressions[651]); { uint8_t t231[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[652] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); + expressions[653] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); } - expressions[653] = BinaryenSIMDTernary(the_module, 1, expressions[650], expressions[651], expressions[652]); { uint8_t t232[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[654] = BinaryenConst(the_module, BinaryenLiteralVec128(t232)); @@ -3521,11 +3527,11 @@ int main() { uint8_t t233[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[655] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); } + expressions[656] = BinaryenSIMDTernary(the_module, 1, expressions[653], expressions[654], expressions[655]); { uint8_t t234[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[656] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); + expressions[657] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); } - expressions[657] = BinaryenSIMDTernary(the_module, 2, expressions[654], expressions[655], expressions[656]); { uint8_t t235[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[658] = BinaryenConst(the_module, BinaryenLiteralVec128(t235)); @@ -3534,11 +3540,11 @@ int main() { uint8_t t236[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[659] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); } + expressions[660] = BinaryenSIMDTernary(the_module, 2, expressions[657], expressions[658], expressions[659]); { uint8_t t237[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[660] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); + expressions[661] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); } - expressions[661] = BinaryenSIMDTernary(the_module, 3, expressions[658], expressions[659], expressions[660]); { uint8_t t238[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[662] = BinaryenConst(the_module, BinaryenLiteralVec128(t238)); @@ -3547,105 +3553,114 @@ int main() { uint8_t t239[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[663] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); } + expressions[664] = BinaryenSIMDTernary(the_module, 3, expressions[661], expressions[662], expressions[663]); { uint8_t t240[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[664] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); - } - expressions[665] = BinaryenSIMDTernary(the_module, 4, expressions[662], expressions[663], expressions[664]); - expressions[666] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[667] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[668] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); - expressions[669] = BinaryenMemoryInit(the_module, 0, expressions[666], expressions[667], expressions[668]); - expressions[670] = BinaryenDataDrop(the_module, 0); - expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); - expressions[672] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[673] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); - expressions[674] = BinaryenMemoryCopy(the_module, expressions[671], expressions[672], expressions[673]); - expressions[675] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[676] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[677] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); - expressions[678] = BinaryenMemoryFill(the_module, expressions[675], expressions[676], expressions[677]); + expressions[665] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); + } + { + uint8_t t241[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[666] = BinaryenConst(the_module, BinaryenLiteralVec128(t241)); + } + { + uint8_t t242[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[667] = BinaryenConst(the_module, BinaryenLiteralVec128(t242)); + } + expressions[668] = BinaryenSIMDTernary(the_module, 4, expressions[665], expressions[666], expressions[667]); + expressions[669] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[670] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[672] = BinaryenMemoryInit(the_module, 0, expressions[669], expressions[670], expressions[671]); + expressions[673] = BinaryenDataDrop(the_module, 0); + expressions[674] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); + expressions[675] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[676] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[677] = BinaryenMemoryCopy(the_module, expressions[674], expressions[675], expressions[676]); + expressions[678] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[679] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[680] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[681] = BinaryenMemoryFill(the_module, expressions[678], expressions[679], expressions[680]); { BinaryenExpressionRef children[] = { 0 }; - expressions[679] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto()); - } - expressions[680] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]); - expressions[681] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]); - expressions[682] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[683] = BinaryenLoop(the_module, "in", expressions[682]); - expressions[684] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[685] = BinaryenLoop(the_module, NULL, expressions[684]); - expressions[686] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]); - expressions[687] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); - expressions[688] = BinaryenBreak(the_module, "the-nothing", expressions[687], expressions[0]); - expressions[689] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); - expressions[690] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[689]); - expressions[691] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); + expressions[682] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto()); + } + expressions[683] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]); + expressions[684] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]); + expressions[685] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[686] = BinaryenLoop(the_module, "in", expressions[685]); + expressions[687] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[688] = BinaryenLoop(the_module, NULL, expressions[687]); + expressions[689] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]); + expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[691] = BinaryenBreak(the_module, "the-nothing", expressions[690], expressions[0]); + expressions[692] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); + expressions[693] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[692]); + expressions[694] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); { const char* names[] = { "the-value" }; - expressions[692] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]); + expressions[695] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]); } - expressions[693] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[696] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); { const char* names[] = { "the-nothing" }; - expressions[694] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[693], expressions[0]); + expressions[697] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[696], expressions[0]); } { BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] }; - expressions[695] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); + expressions[698] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); } - expressions[696] = BinaryenUnary(the_module, 20, expressions[695]); + expressions[699] = BinaryenUnary(the_module, 20, expressions[698]); { BinaryenExpressionRef operands[] = { expressions[8], expressions[9] }; - expressions[697] = BinaryenCall(the_module, "an-imported", operands, 2, 3); + expressions[700] = BinaryenCall(the_module, "an-imported", operands, 2, 3); } - expressions[698] = BinaryenUnary(the_module, 25, expressions[697]); - expressions[699] = BinaryenUnary(the_module, 20, expressions[698]); - expressions[700] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[701] = BinaryenUnary(the_module, 25, expressions[700]); + expressions[702] = BinaryenUnary(the_module, 20, expressions[701]); + expressions[703] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); { BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] }; - expressions[701] = BinaryenCallIndirect(the_module, expressions[700], operands, 4, "iiIfF"); - } - expressions[702] = BinaryenUnary(the_module, 20, expressions[701]); - expressions[703] = BinaryenLocalGet(the_module, 0, 1); - expressions[704] = BinaryenDrop(the_module, expressions[703]); - expressions[705] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); - expressions[706] = BinaryenLocalSet(the_module, 0, expressions[705]); - expressions[707] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); - expressions[708] = BinaryenLocalTee(the_module, 0, expressions[707]); - expressions[709] = BinaryenDrop(the_module, expressions[708]); - expressions[710] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[711] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[710]); - expressions[712] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); - expressions[713] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[712]); - expressions[714] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); - expressions[715] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[714]); - expressions[716] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); - expressions[717] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[716]); - expressions[718] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1); - expressions[719] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2); - expressions[720] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]); - expressions[721] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); - expressions[722] = BinaryenReturn(the_module, expressions[721]); + expressions[704] = BinaryenCallIndirect(the_module, expressions[703], operands, 4, "iiIfF"); + } + expressions[705] = BinaryenUnary(the_module, 20, expressions[704]); + expressions[706] = BinaryenLocalGet(the_module, 0, 1); + expressions[707] = BinaryenDrop(the_module, expressions[706]); + expressions[708] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); + expressions[709] = BinaryenLocalSet(the_module, 0, expressions[708]); + expressions[710] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); + expressions[711] = BinaryenLocalTee(the_module, 0, expressions[710]); + expressions[712] = BinaryenDrop(the_module, expressions[711]); + expressions[713] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[714] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[713]); + expressions[715] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); + expressions[716] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[715]); + expressions[717] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[718] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[717]); + expressions[719] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); + expressions[720] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[719]); + expressions[721] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1); + expressions[722] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2); + expressions[723] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]); + expressions[724] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); + expressions[725] = BinaryenReturn(the_module, expressions[724]); { BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] }; - expressions[723] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); + expressions[726] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); } - expressions[724] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[727] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); { BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] }; - expressions[725] = BinaryenReturnCallIndirect(the_module, expressions[724], operands, 4, "iiIfF"); - } - expressions[726] = BinaryenTry(the_module, expressions[35], expressions[43]); - expressions[727] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[23]); - expressions[728] = BinaryenAtomicStore(the_module, 4, 0, expressions[23], expressions[727], 1); - expressions[729] = BinaryenAtomicWait(the_module, expressions[23], expressions[23], expressions[33], 1); - expressions[730] = BinaryenDrop(the_module, expressions[729]); - expressions[731] = BinaryenAtomicNotify(the_module, expressions[23], expressions[23]); - expressions[732] = BinaryenDrop(the_module, expressions[731]); - expressions[733] = BinaryenAtomicFence(the_module); - expressions[734] = BinaryenNop(the_module); - expressions[735] = BinaryenUnreachable(the_module); + expressions[728] = BinaryenReturnCallIndirect(the_module, expressions[727], operands, 4, "iiIfF"); + } + expressions[729] = BinaryenTry(the_module, expressions[35], expressions[43]); + expressions[730] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[23]); + expressions[731] = BinaryenAtomicStore(the_module, 4, 0, expressions[23], expressions[730], 1); + expressions[732] = BinaryenAtomicWait(the_module, expressions[23], expressions[23], expressions[33], 1); + expressions[733] = BinaryenDrop(the_module, expressions[732]); + expressions[734] = BinaryenAtomicNotify(the_module, expressions[23], expressions[23]); + expressions[735] = BinaryenDrop(the_module, expressions[734]); + expressions[736] = BinaryenAtomicFence(the_module); + expressions[737] = BinaryenNop(the_module); + expressions[738] = BinaryenUnreachable(the_module); BinaryenExpressionPrint(expressions[51]); (f32.neg (f32.const -33.61199951171875) @@ -3684,40 +3699,40 @@ int main() { expressions[498], expressions[501], expressions[504], expressions[507], expressions[510], expressions[513], expressions[516], expressions[519], expressions[522], expressions[525], expressions[528], expressions[531], expressions[534], expressions[537], expressions[540], expressions[543], expressions[546], expressions[549], - expressions[552], expressions[554], expressions[556], expressions[558], expressions[560], expressions[562], - expressions[564], expressions[566], expressions[568], expressions[571], expressions[574], expressions[577], + expressions[552], expressions[555], expressions[557], expressions[559], expressions[561], expressions[563], + expressions[565], expressions[567], expressions[569], expressions[571], expressions[574], expressions[577], expressions[580], expressions[583], expressions[586], expressions[589], expressions[592], expressions[595], expressions[598], expressions[601], expressions[604], expressions[607], expressions[610], expressions[613], - expressions[616], expressions[619], expressions[622], expressions[624], expressions[626], expressions[628], - expressions[630], expressions[632], expressions[634], expressions[636], expressions[638], expressions[640], - expressions[642], expressions[645], expressions[649], expressions[653], expressions[657], expressions[661], - expressions[665], expressions[669], expressions[670], expressions[674], expressions[678], expressions[679], - expressions[680], expressions[681], expressions[683], expressions[685], expressions[686], expressions[688], - expressions[690], expressions[691], expressions[692], expressions[694], expressions[696], expressions[699], - expressions[702], expressions[704], expressions[706], expressions[709], expressions[711], expressions[713], - expressions[715], expressions[717], expressions[718], expressions[719], expressions[720], expressions[722], - expressions[723], expressions[725], expressions[726], expressions[728], expressions[730], expressions[732], - expressions[733], expressions[734], expressions[735] }; - expressions[736] = BinaryenBlock(the_module, "the-value", children, 278, BinaryenTypeAuto()); + expressions[616], expressions[619], expressions[622], expressions[625], expressions[627], expressions[629], + expressions[631], expressions[633], expressions[635], expressions[637], expressions[639], expressions[641], + expressions[643], expressions[645], expressions[648], expressions[652], expressions[656], expressions[660], + expressions[664], expressions[668], expressions[672], expressions[673], expressions[677], expressions[681], + expressions[682], expressions[683], expressions[684], expressions[686], expressions[688], expressions[689], + expressions[691], expressions[693], expressions[694], expressions[695], expressions[697], expressions[699], + expressions[702], expressions[705], expressions[707], expressions[709], expressions[712], expressions[714], + expressions[716], expressions[718], expressions[720], expressions[721], expressions[722], expressions[723], + expressions[725], expressions[726], expressions[728], expressions[729], expressions[731], expressions[733], + expressions[735], expressions[736], expressions[737], expressions[738] }; + expressions[739] = BinaryenBlock(the_module, "the-value", children, 279, BinaryenTypeAuto()); } - expressions[737] = BinaryenDrop(the_module, expressions[736]); + expressions[740] = BinaryenDrop(the_module, expressions[739]); { - BinaryenExpressionRef children[] = { expressions[737] }; - expressions[738] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto()); + BinaryenExpressionRef children[] = { expressions[740] }; + expressions[741] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto()); } - expressions[739] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[742] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { - BinaryenExpressionRef children[] = { expressions[738], expressions[739] }; - expressions[740] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto()); + BinaryenExpressionRef children[] = { expressions[741], expressions[742] }; + expressions[743] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto()); } { BinaryenType varTypes[] = { 1, 7 }; - functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[740]); + functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[743]); } - expressions[741] = BinaryenConst(the_module, BinaryenLiteralInt32(7)); - globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[741]); - expressions[742] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5)); - globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[742]); + expressions[744] = BinaryenConst(the_module, BinaryenLiteralInt32(7)); + globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[744]); + expressions[745] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5)); + globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[745]); { BinaryenType paramTypes[] = { 1, 4 }; functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2); @@ -3729,13 +3744,13 @@ int main() { const char* funcNames[] = { "kitchen()sinker" }; BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1); } - expressions[743] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); + expressions[746] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); { const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 }; const char segment1[] = { 73, 32, 97, 109, 32, 112, 97, 115, 115, 105, 118, 101 }; const char* segments[] = { segment0, segment1 }; int8_t segmentPassive[] = { 0, 1 }; - BinaryenExpressionRef segmentOffsets[] = { expressions[743], expressions[0] }; + BinaryenExpressionRef segmentOffsets[] = { expressions[746], expressions[0] }; BinaryenIndex segmentSizes[] = { 12, 12 }; BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1); } @@ -3743,10 +3758,10 @@ int main() { BinaryenType paramTypes[] = { 0 }; functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); } - expressions[744] = BinaryenNop(the_module); + expressions[747] = BinaryenNop(the_module); { BinaryenType varTypes[] = { 0 }; - functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[744]); + functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[747]); } BinaryenSetStart(the_module, functions[1]); { @@ -4887,6 +4902,12 @@ int main() { ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 0 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt index 56602ef13..2f30c22df 100644 --- a/test/example/c-api-kitchen-sink.txt.txt +++ b/test/example/c-api-kitchen-sink.txt.txt @@ -1130,6 +1130,12 @@ ) ) (drop + (v8x16.swizzle + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i8x16.extract_lane_s 0 (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) ) diff --git a/test/simd.wast b/test/simd.wast index facaf0e83..364b9e798 100644 --- a/test/simd.wast +++ b/test/simd.wast @@ -954,4 +954,10 @@ (local.get $0) ) ) + (func $v8x16.swizzle (param $0 v128) (param $1 v128) (result v128) + (v8x16.swizzle + (local.get $0) + (local.get $1) + ) + ) ) diff --git a/test/simd.wast.from-wast b/test/simd.wast.from-wast index b02b77c4e..4fab1e544 100644 --- a/test/simd.wast.from-wast +++ b/test/simd.wast.from-wast @@ -970,4 +970,10 @@ (local.get $0) ) ) + (func $v8x16.swizzle (; 171 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (v8x16.swizzle + (local.get $0) + (local.get $1) + ) + ) ) diff --git a/test/simd.wast.fromBinary b/test/simd.wast.fromBinary index ae0c9828c..5a40e0607 100644 --- a/test/simd.wast.fromBinary +++ b/test/simd.wast.fromBinary @@ -970,5 +970,11 @@ (local.get $0) ) ) + (func $v8x16.swizzle (; 171 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (v8x16.swizzle + (local.get $0) + (local.get $1) + ) + ) ) diff --git a/test/simd.wast.fromBinary.noDebugInfo b/test/simd.wast.fromBinary.noDebugInfo index a59ca2e5d..2d20bdc97 100644 --- a/test/simd.wast.fromBinary.noDebugInfo +++ b/test/simd.wast.fromBinary.noDebugInfo @@ -970,5 +970,11 @@ (local.get $0) ) ) + (func $171 (; 171 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (v8x16.swizzle + (local.get $0) + (local.get $1) + ) + ) ) diff --git a/test/spec/simd.wast b/test/spec/simd.wast index 5655fba48..9ed7067b0 100644 --- a/test/spec/simd.wast +++ b/test/spec/simd.wast @@ -198,6 +198,7 @@ (func (export "i32x4.load16x4_s") (param $0 i32) (result v128) (i32x4.load16x4_s (local.get $0))) (func (export "i64x2.load32x2_u") (param $0 i32) (result v128) (i64x2.load32x2_u (local.get $0))) (func (export "i64x2.load32x2_s") (param $0 i32) (result v128) (i64x2.load32x2_s (local.get $0))) + (func (export "v8x16.swizzle") (param $0 v128) (param $1 v128) (result v128) (v8x16.swizzle (local.get $0) (local.get $1))) ) ;; Basic v128 manipulation @@ -766,3 +767,10 @@ (assert_return (invoke "i32x4.load16x4_u" (i32.const 256)) (v128.const i32x4 0x00009080 0x0000b0a0 0x0000d0c0 0x0000f0e0)) (assert_return (invoke "i64x2.load32x2_s" (i32.const 256)) (v128.const i64x2 0xffffffffb0a09080 0xfffffffff0e0d0c0)) (assert_return (invoke "i64x2.load32x2_u" (i32.const 256)) (v128.const i64x2 0x00000000b0a09080 0x00000000f0e0d0c0)) +(assert_return + (invoke "v8x16.swizzle" + (v128.const i8x16 0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 0xf6 0xf7 0xf8 0xf9 0xfa 0xfb 0xfc 0xfd 0xfe 0xff) + (v128.const i8x16 0 4 8 12 16 255 129 128 127 17 15 13 12 8 4 0) + ) + (v128.const i8x16 0xf0 0xf4 0xf8 0xfc 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xfd 0xfc 0xf8 0xf4 0xf0) +) |