diff options
-rw-r--r-- | Contributing.md | 2 | ||||
-rwxr-xr-x | build-js.sh | 12 | ||||
-rwxr-xr-x | scripts/gen-s-parser.py | 12 | ||||
-rw-r--r-- | src/binaryen-c.cpp | 12 | ||||
-rw-r--r-- | src/binaryen-c.h | 12 | ||||
-rw-r--r-- | src/gen-s-parser.inc | 99 | ||||
-rw-r--r-- | src/ir/cost.h | 36 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 48 | ||||
-rw-r--r-- | src/literal.h | 16 | ||||
-rw-r--r-- | src/passes/Print.cpp | 36 | ||||
-rw-r--r-- | src/tools/fuzzing.h | 12 | ||||
-rw-r--r-- | src/wasm-binary.h | 12 | ||||
-rw-r--r-- | src/wasm-interpreter.h | 24 | ||||
-rw-r--r-- | src/wasm.h | 12 | ||||
-rw-r--r-- | src/wasm/literal.cpp | 49 | ||||
-rw-r--r-- | src/wasm/wasm-binary.cpp | 48 | ||||
-rw-r--r-- | src/wasm/wasm-stack.cpp | 36 | ||||
-rw-r--r-- | src/wasm/wasm-validator.cpp | 12 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js | 12 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js.txt | 1026 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 12 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 786 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt.txt | 72 | ||||
-rw-r--r-- | test/simd.wast | 72 | ||||
-rw-r--r-- | test/simd.wast.from-wast | 238 | ||||
-rw-r--r-- | test/simd.wast.fromBinary | 238 | ||||
-rw-r--r-- | test/simd.wast.fromBinary.noDebugInfo | 238 | ||||
-rw-r--r-- | test/spec/simd.wast | 84 |
28 files changed, 2429 insertions, 839 deletions
diff --git a/Contributing.md b/Contributing.md index e76ccda85..74039e858 100644 --- a/Contributing.md +++ b/Contributing.md @@ -21,7 +21,7 @@ Use this handy checklist to make sure your new instructions are fully supported: - [ ] Hashing and comparing in src/ir/ExpressionAnalyzer.cpp - [ ] Parsing added in scripts/gen-s-parser.py and src/wasm/wasm-s-parser.cpp - [ ] Printing added in src/passes/Print.cpp - - [ ] Decoding added in src/wasm/wasm-binary.cpp + - [ ] Decoding added in src/wasm-binary.h and src/wasm/wasm-binary.cpp - [ ] Binary writing added in src/wasm-stack.h and src/wasm/wasm-stack.cpp - [ ] Support added to src/tools/fuzzing.h - [ ] C API support added in src/binaryen-c.h and src/binaryen-c.cpp diff --git a/build-js.sh b/build-js.sh index 1e0127d1c..5fce27497 100755 --- a/build-js.sh +++ b/build-js.sh @@ -492,6 +492,10 @@ export_function "_BinaryenSubVecI8x16" export_function "_BinaryenSubSatSVecI8x16" export_function "_BinaryenSubSatUVecI8x16" export_function "_BinaryenMulVecI8x16" +export_function "_BinaryenMinSVecI8x16" +export_function "_BinaryenMinUVecI8x16" +export_function "_BinaryenMaxSVecI8x16" +export_function "_BinaryenMaxUVecI8x16" export_function "_BinaryenNegVecI16x8" export_function "_BinaryenAnyTrueVecI16x8" export_function "_BinaryenAllTrueVecI16x8" @@ -505,6 +509,10 @@ export_function "_BinaryenSubVecI16x8" export_function "_BinaryenSubSatSVecI16x8" export_function "_BinaryenSubSatUVecI16x8" export_function "_BinaryenMulVecI16x8" +export_function "_BinaryenMinSVecI16x8" +export_function "_BinaryenMinUVecI16x8" +export_function "_BinaryenMaxSVecI16x8" +export_function "_BinaryenMaxUVecI16x8" export_function "_BinaryenNegVecI32x4" export_function "_BinaryenAnyTrueVecI32x4" export_function "_BinaryenAllTrueVecI32x4" @@ -514,6 +522,10 @@ export_function "_BinaryenShrUVecI32x4" export_function "_BinaryenAddVecI32x4" export_function "_BinaryenSubVecI32x4" export_function "_BinaryenMulVecI32x4" +export_function "_BinaryenMinSVecI32x4" +export_function "_BinaryenMinUVecI32x4" +export_function "_BinaryenMaxSVecI32x4" +export_function "_BinaryenMaxUVecI32x4" export_function "_BinaryenNegVecI64x2" export_function "_BinaryenAnyTrueVecI64x2" export_function "_BinaryenAllTrueVecI64x2" diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py index 133e70d03..0b841f220 100755 --- a/scripts/gen-s-parser.py +++ b/scripts/gen-s-parser.py @@ -371,6 +371,10 @@ instructions = [ ("i8x16.sub_saturate_s", "makeBinary(s, BinaryOp::SubSatSVecI8x16)"), ("i8x16.sub_saturate_u", "makeBinary(s, BinaryOp::SubSatUVecI8x16)"), ("i8x16.mul", "makeBinary(s, BinaryOp::MulVecI8x16)"), + ("i8x16.min_s", "makeBinary(s, BinaryOp::MinSVecI8x16)"), + ("i8x16.min_u", "makeBinary(s, BinaryOp::MinUVecI8x16)"), + ("i8x16.max_s", "makeBinary(s, BinaryOp::MaxSVecI8x16)"), + ("i8x16.max_u", "makeBinary(s, BinaryOp::MaxUVecI8x16)"), ("i16x8.neg", "makeUnary(s, UnaryOp::NegVecI16x8)"), ("i16x8.any_true", "makeUnary(s, UnaryOp::AnyTrueVecI16x8)"), ("i16x8.all_true", "makeUnary(s, UnaryOp::AllTrueVecI16x8)"), @@ -384,6 +388,10 @@ instructions = [ ("i16x8.sub_saturate_s", "makeBinary(s, BinaryOp::SubSatSVecI16x8)"), ("i16x8.sub_saturate_u", "makeBinary(s, BinaryOp::SubSatUVecI16x8)"), ("i16x8.mul", "makeBinary(s, BinaryOp::MulVecI16x8)"), + ("i16x8.min_s", "makeBinary(s, BinaryOp::MinSVecI16x8)"), + ("i16x8.min_u", "makeBinary(s, BinaryOp::MinUVecI16x8)"), + ("i16x8.max_s", "makeBinary(s, BinaryOp::MaxSVecI16x8)"), + ("i16x8.max_u", "makeBinary(s, BinaryOp::MaxUVecI16x8)"), ("i32x4.neg", "makeUnary(s, UnaryOp::NegVecI32x4)"), ("i32x4.any_true", "makeUnary(s, UnaryOp::AnyTrueVecI32x4)"), ("i32x4.all_true", "makeUnary(s, UnaryOp::AllTrueVecI32x4)"), @@ -393,6 +401,10 @@ instructions = [ ("i32x4.add", "makeBinary(s, BinaryOp::AddVecI32x4)"), ("i32x4.sub", "makeBinary(s, BinaryOp::SubVecI32x4)"), ("i32x4.mul", "makeBinary(s, BinaryOp::MulVecI32x4)"), + ("i32x4.min_s", "makeBinary(s, BinaryOp::MinSVecI32x4)"), + ("i32x4.min_u", "makeBinary(s, BinaryOp::MinUVecI32x4)"), + ("i32x4.max_s", "makeBinary(s, BinaryOp::MaxSVecI32x4)"), + ("i32x4.max_u", "makeBinary(s, BinaryOp::MaxUVecI32x4)"), ("i64x2.neg", "makeUnary(s, UnaryOp::NegVecI64x2)"), ("i64x2.any_true", "makeUnary(s, UnaryOp::AnyTrueVecI64x2)"), ("i64x2.all_true", "makeUnary(s, UnaryOp::AllTrueVecI64x2)"), diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 018b5b861..2b9b9d2ae 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -808,6 +808,10 @@ BinaryenOp BinaryenSubVecI8x16(void) { return SubVecI8x16; } BinaryenOp BinaryenSubSatSVecI8x16(void) { return SubSatSVecI8x16; } BinaryenOp BinaryenSubSatUVecI8x16(void) { return SubSatUVecI8x16; } BinaryenOp BinaryenMulVecI8x16(void) { return MulVecI8x16; } +BinaryenOp BinaryenMinSVecI8x16(void) { return MinSVecI8x16; } +BinaryenOp BinaryenMinUVecI8x16(void) { return MinUVecI8x16; } +BinaryenOp BinaryenMaxSVecI8x16(void) { return MaxSVecI8x16; } +BinaryenOp BinaryenMaxUVecI8x16(void) { return MaxUVecI8x16; } BinaryenOp BinaryenNegVecI16x8(void) { return NegVecI16x8; } BinaryenOp BinaryenAnyTrueVecI16x8(void) { return AnyTrueVecI16x8; } BinaryenOp BinaryenAllTrueVecI16x8(void) { return AllTrueVecI16x8; } @@ -821,6 +825,10 @@ BinaryenOp BinaryenSubVecI16x8(void) { return SubVecI16x8; } BinaryenOp BinaryenSubSatSVecI16x8(void) { return SubSatSVecI16x8; } BinaryenOp BinaryenSubSatUVecI16x8(void) { return SubSatUVecI16x8; } BinaryenOp BinaryenMulVecI16x8(void) { return MulVecI16x8; } +BinaryenOp BinaryenMinSVecI16x8(void) { return MinSVecI16x8; } +BinaryenOp BinaryenMinUVecI16x8(void) { return MinUVecI16x8; } +BinaryenOp BinaryenMaxSVecI16x8(void) { return MaxSVecI16x8; } +BinaryenOp BinaryenMaxUVecI16x8(void) { return MaxUVecI16x8; } BinaryenOp BinaryenNegVecI32x4(void) { return NegVecI32x4; } BinaryenOp BinaryenAnyTrueVecI32x4(void) { return AnyTrueVecI32x4; } BinaryenOp BinaryenAllTrueVecI32x4(void) { return AllTrueVecI32x4; } @@ -830,6 +838,10 @@ BinaryenOp BinaryenShrUVecI32x4(void) { return ShrUVecI32x4; } BinaryenOp BinaryenAddVecI32x4(void) { return AddVecI32x4; } BinaryenOp BinaryenSubVecI32x4(void) { return SubVecI32x4; } BinaryenOp BinaryenMulVecI32x4(void) { return MulVecI32x4; } +BinaryenOp BinaryenMinSVecI32x4(void) { return MinSVecI32x4; } +BinaryenOp BinaryenMinUVecI32x4(void) { return MinUVecI32x4; } +BinaryenOp BinaryenMaxSVecI32x4(void) { return MaxSVecI32x4; } +BinaryenOp BinaryenMaxUVecI32x4(void) { return MaxUVecI32x4; } BinaryenOp BinaryenNegVecI64x2(void) { return NegVecI64x2; } BinaryenOp BinaryenAnyTrueVecI64x2(void) { return AnyTrueVecI64x2; } BinaryenOp BinaryenAllTrueVecI64x2(void) { return AllTrueVecI64x2; } diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 1b7d3b10c..936cfb0f6 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -470,6 +470,10 @@ BINARYEN_API BinaryenOp BinaryenSubVecI8x16(void); BINARYEN_API BinaryenOp BinaryenSubSatSVecI8x16(void); BINARYEN_API BinaryenOp BinaryenSubSatUVecI8x16(void); BINARYEN_API BinaryenOp BinaryenMulVecI8x16(void); +BINARYEN_API BinaryenOp BinaryenMinSVecI8x16(void); +BINARYEN_API BinaryenOp BinaryenMinUVecI8x16(void); +BINARYEN_API BinaryenOp BinaryenMaxSVecI8x16(void); +BINARYEN_API BinaryenOp BinaryenMaxUVecI8x16(void); BINARYEN_API BinaryenOp BinaryenNegVecI16x8(void); BINARYEN_API BinaryenOp BinaryenAnyTrueVecI16x8(void); BINARYEN_API BinaryenOp BinaryenAllTrueVecI16x8(void); @@ -483,6 +487,10 @@ BINARYEN_API BinaryenOp BinaryenSubVecI16x8(void); BINARYEN_API BinaryenOp BinaryenSubSatSVecI16x8(void); BINARYEN_API BinaryenOp BinaryenSubSatUVecI16x8(void); BINARYEN_API BinaryenOp BinaryenMulVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenMinSVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenMinUVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenMaxSVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenMaxUVecI16x8(void); BINARYEN_API BinaryenOp BinaryenNegVecI32x4(void); BINARYEN_API BinaryenOp BinaryenAnyTrueVecI32x4(void); BINARYEN_API BinaryenOp BinaryenAllTrueVecI32x4(void); @@ -492,6 +500,10 @@ BINARYEN_API BinaryenOp BinaryenShrUVecI32x4(void); BINARYEN_API BinaryenOp BinaryenAddVecI32x4(void); BINARYEN_API BinaryenOp BinaryenSubVecI32x4(void); BINARYEN_API BinaryenOp BinaryenMulVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenMinSVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenMinUVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenMaxSVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenMaxUVecI32x4(void); BINARYEN_API BinaryenOp BinaryenNegVecI64x2(void); BINARYEN_API BinaryenOp BinaryenAnyTrueVecI64x2(void); BINARYEN_API BinaryenOp BinaryenAllTrueVecI64x2(void); diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc index 85702d326..9a8d9b88c 100644 --- a/src/gen-s-parser.inc +++ b/src/gen-s-parser.inc @@ -793,9 +793,36 @@ switch (op[0]) { default: goto parse_error; } } - case 'm': - if (strcmp(op, "i16x8.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI16x8); } - goto parse_error; + case 'm': { + switch (op[7]) { + case 'a': { + switch (op[10]) { + case 's': + if (strcmp(op, "i16x8.max_s") == 0) { return makeBinary(s, BinaryOp::MaxSVecI16x8); } + goto parse_error; + case 'u': + if (strcmp(op, "i16x8.max_u") == 0) { return makeBinary(s, BinaryOp::MaxUVecI16x8); } + goto parse_error; + default: goto parse_error; + } + } + case 'i': { + switch (op[10]) { + case 's': + if (strcmp(op, "i16x8.min_s") == 0) { return makeBinary(s, BinaryOp::MinSVecI16x8); } + goto parse_error; + case 'u': + if (strcmp(op, "i16x8.min_u") == 0) { return makeBinary(s, BinaryOp::MinUVecI16x8); } + goto parse_error; + default: goto parse_error; + } + } + case 'u': + if (strcmp(op, "i16x8.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI16x8); } + goto parse_error; + default: goto parse_error; + } + } case 'n': { switch (op[7]) { case 'a': { @@ -1458,9 +1485,36 @@ switch (op[0]) { default: goto parse_error; } } - case 'm': - if (strcmp(op, "i32x4.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI32x4); } - goto parse_error; + case 'm': { + switch (op[7]) { + case 'a': { + switch (op[10]) { + case 's': + if (strcmp(op, "i32x4.max_s") == 0) { return makeBinary(s, BinaryOp::MaxSVecI32x4); } + goto parse_error; + case 'u': + if (strcmp(op, "i32x4.max_u") == 0) { return makeBinary(s, BinaryOp::MaxUVecI32x4); } + goto parse_error; + default: goto parse_error; + } + } + case 'i': { + switch (op[10]) { + case 's': + if (strcmp(op, "i32x4.min_s") == 0) { return makeBinary(s, BinaryOp::MinSVecI32x4); } + goto parse_error; + case 'u': + if (strcmp(op, "i32x4.min_u") == 0) { return makeBinary(s, BinaryOp::MinUVecI32x4); } + goto parse_error; + default: goto parse_error; + } + } + case 'u': + if (strcmp(op, "i32x4.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI32x4); } + goto parse_error; + default: goto parse_error; + } + } case 'n': { switch (op[8]) { case '\0': @@ -2268,9 +2322,36 @@ switch (op[0]) { default: goto parse_error; } } - case 'm': - if (strcmp(op, "i8x16.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI8x16); } - goto parse_error; + case 'm': { + switch (op[7]) { + case 'a': { + switch (op[10]) { + case 's': + if (strcmp(op, "i8x16.max_s") == 0) { return makeBinary(s, BinaryOp::MaxSVecI8x16); } + goto parse_error; + case 'u': + if (strcmp(op, "i8x16.max_u") == 0) { return makeBinary(s, BinaryOp::MaxUVecI8x16); } + goto parse_error; + default: goto parse_error; + } + } + case 'i': { + switch (op[10]) { + case 's': + if (strcmp(op, "i8x16.min_s") == 0) { return makeBinary(s, BinaryOp::MinSVecI8x16); } + goto parse_error; + case 'u': + if (strcmp(op, "i8x16.min_u") == 0) { return makeBinary(s, BinaryOp::MinUVecI8x16); } + goto parse_error; + default: goto parse_error; + } + } + case 'u': + if (strcmp(op, "i8x16.mul") == 0) { return makeBinary(s, BinaryOp::MulVecI8x16); } + goto parse_error; + default: goto parse_error; + } + } case 'n': { switch (op[7]) { case 'a': { diff --git a/src/ir/cost.h b/src/ir/cost.h index a3d9f8584..26c120675 100644 --- a/src/ir/cost.h +++ b/src/ir/cost.h @@ -582,6 +582,18 @@ struct CostAnalyzer : public Visitor<CostAnalyzer, Index> { case MulVecI8x16: ret = 2; break; + case MinSVecI8x16: + ret = 1; + break; + case MinUVecI8x16: + ret = 1; + break; + case MaxSVecI8x16: + ret = 1; + break; + case MaxUVecI8x16: + ret = 1; + break; case AddVecI16x8: ret = 1; break; @@ -603,6 +615,18 @@ struct CostAnalyzer : public Visitor<CostAnalyzer, Index> { case MulVecI16x8: ret = 2; break; + case MinSVecI16x8: + ret = 1; + break; + case MinUVecI16x8: + ret = 1; + break; + case MaxSVecI16x8: + ret = 1; + break; + case MaxUVecI16x8: + ret = 1; + break; case AddVecI32x4: ret = 1; break; @@ -612,6 +636,18 @@ struct CostAnalyzer : public Visitor<CostAnalyzer, Index> { case MulVecI32x4: ret = 2; break; + case MinSVecI32x4: + ret = 1; + break; + case MinUVecI32x4: + ret = 1; + break; + case MaxSVecI32x4: + ret = 1; + break; + case MaxUVecI32x4: + ret = 1; + break; case AddVecI64x2: ret = 1; break; diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index b4cd5e482..f2d679900 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -336,6 +336,10 @@ Module['SubVecI8x16'] = Module['_BinaryenSubVecI8x16'](); Module['SubSatSVecI8x16'] = Module['_BinaryenSubSatSVecI8x16'](); Module['SubSatUVecI8x16'] = Module['_BinaryenSubSatUVecI8x16'](); Module['MulVecI8x16'] = Module['_BinaryenMulVecI8x16'](); +Module['MinSVecI8x16'] = Module['_BinaryenMinSVecI8x16'](); +Module['MinUVecI8x16'] = Module['_BinaryenMinUVecI8x16'](); +Module['MaxSVecI8x16'] = Module['_BinaryenMaxSVecI8x16'](); +Module['MaxUVecI8x16'] = Module['_BinaryenMaxUVecI8x16'](); Module['NegVecI16x8'] = Module['_BinaryenNegVecI16x8'](); Module['AnyTrueVecI16x8'] = Module['_BinaryenAnyTrueVecI16x8'](); Module['AllTrueVecI16x8'] = Module['_BinaryenAllTrueVecI16x8'](); @@ -349,6 +353,10 @@ Module['SubVecI16x8'] = Module['_BinaryenSubVecI16x8'](); Module['SubSatSVecI16x8'] = Module['_BinaryenSubSatSVecI16x8'](); Module['SubSatUVecI16x8'] = Module['_BinaryenSubSatUVecI16x8'](); Module['MulVecI16x8'] = Module['_BinaryenMulVecI16x8'](); +Module['MinSVecI16x8'] = Module['_BinaryenMinSVecI16x8'](); +Module['MinUVecI16x8'] = Module['_BinaryenMinUVecI16x8'](); +Module['MaxSVecI16x8'] = Module['_BinaryenMaxSVecI16x8'](); +Module['MaxUVecI16x8'] = Module['_BinaryenMaxUVecI16x8'](); Module['NegVecI32x4'] = Module['_BinaryenNegVecI32x4'](); Module['AnyTrueVecI32x4'] = Module['_BinaryenAnyTrueVecI32x4'](); Module['AllTrueVecI32x4'] = Module['_BinaryenAllTrueVecI32x4'](); @@ -358,6 +366,10 @@ Module['ShrUVecI32x4'] = Module['_BinaryenShrUVecI32x4'](); Module['AddVecI32x4'] = Module['_BinaryenAddVecI32x4'](); Module['SubVecI32x4'] = Module['_BinaryenSubVecI32x4'](); Module['MulVecI32x4'] = Module['_BinaryenMulVecI32x4'](); +Module['MinSVecI32x4'] = Module['_BinaryenMinSVecI32x4'](); +Module['MinUVecI32x4'] = Module['_BinaryenMinUVecI32x4'](); +Module['MaxSVecI32x4'] = Module['_BinaryenMaxSVecI32x4'](); +Module['MaxUVecI32x4'] = Module['_BinaryenMaxUVecI32x4'](); Module['NegVecI64x2'] = Module['_BinaryenNegVecI64x2'](); Module['AnyTrueVecI64x2'] = Module['_BinaryenAnyTrueVecI64x2'](); Module['AllTrueVecI64x2'] = Module['_BinaryenAllTrueVecI64x2'](); @@ -1445,6 +1457,18 @@ function wrapModule(module, self) { 'mul': function(left, right) { return Module['_BinaryenBinary'](module, Module['MulVecI8x16'], left, right); }, + 'min_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinSVecI8x16'], left, right); + }, + 'min_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinUVecI8x16'], left, right); + }, + 'max_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxSVecI8x16'], left, right); + }, + 'max_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxUVecI8x16'], left, right); + }, 'narrow_i16x8_s': function(left, right) { return Module['_BinaryenBinary'](module, Module['NarrowSVecI16x8ToVecI8x16'], left, right); }, @@ -1535,6 +1559,18 @@ function wrapModule(module, self) { 'mul': function(left, right) { return Module['_BinaryenBinary'](module, Module['MulVecI16x8'], left, right); }, + 'min_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinSVecI16x8'], left, right); + }, + 'min_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinUVecI16x8'], left, right); + }, + 'max_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxSVecI16x8'], left, right); + }, + 'max_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxUVecI16x8'], left, right); + }, 'narrow_i32x4_s': function(left, right) { return Module['_BinaryenBinary'](module, Module['NarrowSVecI32x4ToVecI16x8'], left, right); }, @@ -1628,6 +1664,18 @@ function wrapModule(module, self) { 'mul': function(left, right) { return Module['_BinaryenBinary'](module, Module['MulVecI32x4'], left, right); }, + 'min_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinSVecI32x4'], left, right); + }, + 'min_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MinUVecI32x4'], left, right); + }, + 'max_s': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxSVecI32x4'], left, right); + }, + 'max_u': function(left, right) { + return Module['_BinaryenBinary'](module, Module['MaxUVecI32x4'], left, right); + }, 'trunc_sat_f32x4_s': function(value) { return Module['_BinaryenUnary'](module, Module['TruncSatSVecF32x4ToVecI32x4'], value); }, diff --git a/src/literal.h b/src/literal.h index 19db6a1d6..007a2cde8 100644 --- a/src/literal.h +++ b/src/literal.h @@ -330,6 +330,10 @@ public: Literal subSaturateSI8x16(const Literal& other) const; Literal subSaturateUI8x16(const Literal& other) const; Literal mulI8x16(const Literal& other) const; + Literal minSI8x16(const Literal& other) const; + Literal minUI8x16(const Literal& other) const; + Literal maxSI8x16(const Literal& other) const; + Literal maxUI8x16(const Literal& other) const; Literal negI16x8() const; Literal anyTrueI16x8() const; Literal allTrueI16x8() const; @@ -343,6 +347,10 @@ public: Literal subSaturateSI16x8(const Literal& other) const; Literal subSaturateUI16x8(const Literal& other) const; Literal mulI16x8(const Literal& other) const; + Literal minSI16x8(const Literal& other) const; + Literal minUI16x8(const Literal& other) const; + Literal maxSI16x8(const Literal& other) const; + Literal maxUI16x8(const Literal& other) const; Literal negI32x4() const; Literal anyTrueI32x4() const; Literal allTrueI32x4() const; @@ -352,6 +360,10 @@ public: Literal addI32x4(const Literal& other) const; Literal subI32x4(const Literal& other) const; Literal mulI32x4(const Literal& other) const; + Literal minSI32x4(const Literal& other) const; + Literal minUI32x4(const Literal& other) const; + Literal maxSI32x4(const Literal& other) const; + Literal maxUI32x4(const Literal& other) const; Literal negI64x2() const; Literal anyTrueI64x2() const; Literal allTrueI64x2() const; @@ -409,6 +421,10 @@ private: Literal subSatUI8(const Literal& other) const; Literal subSatSI16(const Literal& other) const; Literal subSatUI16(const Literal& other) const; + Literal minInt(const Literal& other) const; + Literal maxInt(const Literal& other) const; + Literal minUInt(const Literal& other) const; + Literal maxUInt(const Literal& other) const; }; } // namespace wasm diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index 95c6a0568..e383974d6 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -1156,6 +1156,18 @@ struct PrintExpressionContents case MulVecI8x16: o << "i8x16.mul"; break; + case MinSVecI8x16: + o << "i8x16.min_s"; + break; + case MinUVecI8x16: + o << "i8x16.min_u"; + break; + case MaxSVecI8x16: + o << "i8x16.max_s"; + break; + case MaxUVecI8x16: + o << "i8x16.max_u"; + break; case AddVecI16x8: o << "i16x8.add"; break; @@ -1177,6 +1189,18 @@ struct PrintExpressionContents case MulVecI16x8: o << "i16x8.mul"; break; + case MinSVecI16x8: + o << "i16x8.min_s"; + break; + case MinUVecI16x8: + o << "i16x8.min_u"; + break; + case MaxSVecI16x8: + o << "i16x8.max_s"; + break; + case MaxUVecI16x8: + o << "i16x8.max_u"; + break; case AddVecI32x4: o << "i32x4.add"; break; @@ -1186,6 +1210,18 @@ struct PrintExpressionContents case MulVecI32x4: o << "i32x4.mul"; break; + case MinSVecI32x4: + o << "i32x4.min_s"; + break; + case MinUVecI32x4: + o << "i32x4.min_u"; + break; + case MaxSVecI32x4: + o << "i32x4.max_s"; + break; + case MaxUVecI32x4: + o << "i32x4.max_u"; + break; case AddVecI64x2: o << "i64x2.add"; break; diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h index c4070427c..c6cce4427 100644 --- a/src/tools/fuzzing.h +++ b/src/tools/fuzzing.h @@ -2147,6 +2147,10 @@ private: SubSatSVecI8x16, SubSatUVecI8x16, MulVecI8x16, + MinSVecI8x16, + MinUVecI8x16, + MaxSVecI8x16, + MaxUVecI8x16, AddVecI16x8, AddSatSVecI16x8, AddSatUVecI16x8, @@ -2154,9 +2158,17 @@ private: SubSatSVecI16x8, SubSatUVecI16x8, MulVecI16x8, + MinSVecI16x8, + MinUVecI16x8, + MaxSVecI16x8, + MaxUVecI16x8, AddVecI32x4, SubVecI32x4, MulVecI32x4, + MinSVecI32x4, + MinUVecI32x4, + MaxSVecI32x4, + MaxUVecI32x4, AddVecI64x2, SubVecI64x2, AddVecF32x4, diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 104e7b208..2a457f5a7 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -797,6 +797,10 @@ enum ASTNodes { I8x16SubSatS = 0x5b, I8x16SubSatU = 0x5c, I8x16Mul = 0x5d, + I8x16MinS = 0x5e, + I8x16MinU = 0x5f, + I8x16MaxS = 0x60, + I8x16MaxU = 0x61, I16x8Neg = 0x62, I16x8AnyTrue = 0x63, I16x8AllTrue = 0x64, @@ -810,6 +814,10 @@ enum ASTNodes { I16x8SubSatS = 0x6c, I16x8SubSatU = 0x6d, I16x8Mul = 0x6e, + I16x8MinS = 0x6f, + I16x8MinU = 0x70, + I16x8MaxS = 0x71, + I16x8MaxU = 0x72, I32x4Neg = 0x73, I32x4AnyTrue = 0x74, I32x4AllTrue = 0x75, @@ -819,6 +827,10 @@ enum ASTNodes { I32x4Add = 0x79, I32x4Sub = 0x7c, I32x4Mul = 0x7f, + I32x4MinS = 0x80, + I32x4MinU = 0x81, + I32x4MaxS = 0x82, + I32x4MaxU = 0x83, I64x2Neg = 0x84, I64x2AnyTrue = 0x85, I64x2AllTrue = 0x86, diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 5995808a5..f8cf3ae42 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -757,6 +757,14 @@ public: return left.subSaturateUI8x16(right); case MulVecI8x16: return left.mulI8x16(right); + case MinSVecI8x16: + return left.minSI8x16(right); + case MinUVecI8x16: + return left.minUI8x16(right); + case MaxSVecI8x16: + return left.maxSI8x16(right); + case MaxUVecI8x16: + return left.maxUI8x16(right); case AddVecI16x8: return left.addI16x8(right); case AddSatSVecI16x8: @@ -771,12 +779,28 @@ public: return left.subSaturateUI16x8(right); case MulVecI16x8: return left.mulI16x8(right); + case MinSVecI16x8: + return left.minSI16x8(right); + case MinUVecI16x8: + return left.minUI16x8(right); + case MaxSVecI16x8: + return left.maxSI16x8(right); + case MaxUVecI16x8: + return left.maxUI16x8(right); case AddVecI32x4: return left.addI32x4(right); case SubVecI32x4: return left.subI32x4(right); case MulVecI32x4: return left.mulI32x4(right); + case MinSVecI32x4: + return left.minSI32x4(right); + case MinUVecI32x4: + return left.minUI32x4(right); + case MaxSVecI32x4: + return left.maxSI32x4(right); + case MaxUVecI32x4: + return left.maxUI32x4(right); case AddVecI64x2: return left.addI64x2(right); case SubVecI64x2: diff --git a/src/wasm.h b/src/wasm.h index d4b53f5bb..ca1114182 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -361,6 +361,10 @@ enum BinaryOp { SubSatSVecI8x16, SubSatUVecI8x16, MulVecI8x16, + MinSVecI8x16, + MinUVecI8x16, + MaxSVecI8x16, + MaxUVecI8x16, AddVecI16x8, AddSatSVecI16x8, AddSatUVecI16x8, @@ -368,9 +372,17 @@ enum BinaryOp { SubSatSVecI16x8, SubSatUVecI16x8, MulVecI16x8, + MinSVecI16x8, + MinUVecI16x8, + MaxSVecI16x8, + MaxUVecI16x8, AddVecI32x4, SubVecI32x4, MulVecI32x4, + MinSVecI32x4, + MinUVecI32x4, + MaxSVecI32x4, + MaxUVecI32x4, AddVecI64x2, SubVecI64x2, AddVecF32x4, diff --git a/src/wasm/literal.cpp b/src/wasm/literal.cpp index 7f0c9fa6b..f4ddf69cc 100644 --- a/src/wasm/literal.cpp +++ b/src/wasm/literal.cpp @@ -847,6 +847,19 @@ Literal Literal::remU(const Literal& other) const { } } +Literal Literal::minInt(const Literal& other) const { + return geti32() < other.geti32() ? *this : other; +} +Literal Literal::maxInt(const Literal& other) const { + return geti32() > other.geti32() ? *this : other; +} +Literal Literal::minUInt(const Literal& other) const { + return uint32_t(geti32()) < uint32_t(other.geti32()) ? *this : other; +} +Literal Literal::maxUInt(const Literal& other) const { + return uint32_t(geti32()) > uint32_t(other.geti32()) ? *this : other; +} + Literal Literal::and_(const Literal& other) const { switch (type) { case Type::i32: @@ -1703,6 +1716,18 @@ Literal Literal::subSaturateUI8x16(const Literal& other) const { Literal Literal::mulI8x16(const Literal& other) const { return binary<16, &Literal::getLanesUI8x16, &Literal::mul>(*this, other); } +Literal Literal::minSI8x16(const Literal& other) const { + return binary<16, &Literal::getLanesSI8x16, &Literal::minInt>(*this, other); +} +Literal Literal::minUI8x16(const Literal& other) const { + return binary<16, &Literal::getLanesUI8x16, &Literal::minInt>(*this, other); +} +Literal Literal::maxSI8x16(const Literal& other) const { + return binary<16, &Literal::getLanesSI8x16, &Literal::maxInt>(*this, other); +} +Literal Literal::maxUI8x16(const Literal& other) const { + return binary<16, &Literal::getLanesUI8x16, &Literal::maxInt>(*this, other); +} Literal Literal::addI16x8(const Literal& other) const { return binary<8, &Literal::getLanesUI16x8, &Literal::add>(*this, other); } @@ -1728,6 +1753,18 @@ Literal Literal::subSaturateUI16x8(const Literal& other) const { Literal Literal::mulI16x8(const Literal& other) const { return binary<8, &Literal::getLanesUI16x8, &Literal::mul>(*this, other); } +Literal Literal::minSI16x8(const Literal& other) const { + return binary<8, &Literal::getLanesSI16x8, &Literal::minInt>(*this, other); +} +Literal Literal::minUI16x8(const Literal& other) const { + return binary<8, &Literal::getLanesUI16x8, &Literal::minInt>(*this, other); +} +Literal Literal::maxSI16x8(const Literal& other) const { + return binary<8, &Literal::getLanesSI16x8, &Literal::maxInt>(*this, other); +} +Literal Literal::maxUI16x8(const Literal& other) const { + return binary<8, &Literal::getLanesUI16x8, &Literal::maxInt>(*this, other); +} Literal Literal::addI32x4(const Literal& other) const { return binary<4, &Literal::getLanesI32x4, &Literal::add>(*this, other); } @@ -1737,6 +1774,18 @@ Literal Literal::subI32x4(const Literal& other) const { Literal Literal::mulI32x4(const Literal& other) const { return binary<4, &Literal::getLanesI32x4, &Literal::mul>(*this, other); } +Literal Literal::minSI32x4(const Literal& other) const { + return binary<4, &Literal::getLanesI32x4, &Literal::minInt>(*this, other); +} +Literal Literal::minUI32x4(const Literal& other) const { + return binary<4, &Literal::getLanesI32x4, &Literal::minUInt>(*this, other); +} +Literal Literal::maxSI32x4(const Literal& other) const { + return binary<4, &Literal::getLanesI32x4, &Literal::maxInt>(*this, other); +} +Literal Literal::maxUI32x4(const Literal& other) const { + return binary<4, &Literal::getLanesI32x4, &Literal::maxUInt>(*this, other); +} Literal Literal::addI64x2(const Literal& other) const { return binary<2, &Literal::getLanesI64x2, &Literal::add>(*this, other); } diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 8446f3c17..cb67d1556 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -3851,6 +3851,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) { curr = allocator.alloc<Binary>(); curr->op = MulVecI8x16; break; + case BinaryConsts::I8x16MinS: + curr = allocator.alloc<Binary>(); + curr->op = MinSVecI8x16; + break; + case BinaryConsts::I8x16MinU: + curr = allocator.alloc<Binary>(); + curr->op = MinUVecI8x16; + break; + case BinaryConsts::I8x16MaxS: + curr = allocator.alloc<Binary>(); + curr->op = MaxSVecI8x16; + break; + case BinaryConsts::I8x16MaxU: + curr = allocator.alloc<Binary>(); + curr->op = MaxUVecI8x16; + break; case BinaryConsts::I16x8Add: curr = allocator.alloc<Binary>(); curr->op = AddVecI16x8; @@ -3879,6 +3895,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) { curr = allocator.alloc<Binary>(); curr->op = MulVecI16x8; break; + case BinaryConsts::I16x8MinS: + curr = allocator.alloc<Binary>(); + curr->op = MinSVecI16x8; + break; + case BinaryConsts::I16x8MinU: + curr = allocator.alloc<Binary>(); + curr->op = MinUVecI16x8; + break; + case BinaryConsts::I16x8MaxS: + curr = allocator.alloc<Binary>(); + curr->op = MaxSVecI16x8; + break; + case BinaryConsts::I16x8MaxU: + curr = allocator.alloc<Binary>(); + curr->op = MaxUVecI16x8; + break; case BinaryConsts::I32x4Add: curr = allocator.alloc<Binary>(); curr->op = AddVecI32x4; @@ -3891,6 +3923,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) { curr = allocator.alloc<Binary>(); curr->op = MulVecI32x4; break; + case BinaryConsts::I32x4MinS: + curr = allocator.alloc<Binary>(); + curr->op = MinSVecI32x4; + break; + case BinaryConsts::I32x4MinU: + curr = allocator.alloc<Binary>(); + curr->op = MinUVecI32x4; + break; + case BinaryConsts::I32x4MaxS: + curr = allocator.alloc<Binary>(); + curr->op = MaxSVecI32x4; + break; + case BinaryConsts::I32x4MaxU: + curr = allocator.alloc<Binary>(); + curr->op = MaxUVecI32x4; + break; case BinaryConsts::I64x2Add: curr = allocator.alloc<Binary>(); curr->op = AddVecI64x2; diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp index 949bf1364..d4af126b7 100644 --- a/src/wasm/wasm-stack.cpp +++ b/src/wasm/wasm-stack.cpp @@ -1389,6 +1389,18 @@ void BinaryInstWriter::visitBinary(Binary* curr) { case MulVecI8x16: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I8x16Mul); break; + case MinSVecI8x16: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I8x16MinS); + break; + case MinUVecI8x16: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I8x16MinU); + break; + case MaxSVecI8x16: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I8x16MaxS); + break; + case MaxUVecI8x16: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I8x16MaxU); + break; case AddVecI16x8: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8Add); break; @@ -1414,6 +1426,18 @@ void BinaryInstWriter::visitBinary(Binary* curr) { case MulVecI16x8: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8Mul); break; + case MinSVecI16x8: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8MinS); + break; + case MinUVecI16x8: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8MinU); + break; + case MaxSVecI16x8: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8MaxS); + break; + case MaxUVecI16x8: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I16x8MaxU); + break; case AddVecI32x4: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4Add); break; @@ -1423,6 +1447,18 @@ void BinaryInstWriter::visitBinary(Binary* curr) { case MulVecI32x4: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4Mul); break; + case MinSVecI32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4MinS); + break; + case MinUVecI32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4MinU); + break; + case MaxSVecI32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4MaxS); + break; + case MaxUVecI32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4MaxU); + break; case AddVecI64x2: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I64x2Add); break; diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index 278ec4769..ed54173ed 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -1339,6 +1339,10 @@ void FunctionValidator::visitBinary(Binary* curr) { case SubSatSVecI8x16: case SubSatUVecI8x16: case MulVecI8x16: + case MinSVecI8x16: + case MinUVecI8x16: + case MaxSVecI8x16: + case MaxUVecI8x16: case AddVecI16x8: case AddSatSVecI16x8: case AddSatUVecI16x8: @@ -1346,9 +1350,17 @@ void FunctionValidator::visitBinary(Binary* curr) { case SubSatSVecI16x8: case SubSatUVecI16x8: case MulVecI16x8: + case MinSVecI16x8: + case MinUVecI16x8: + case MaxSVecI16x8: + case MaxUVecI16x8: case AddVecI32x4: case SubVecI32x4: case MulVecI32x4: + case MinSVecI32x4: + case MinUVecI32x4: + case MaxSVecI32x4: + case MaxUVecI32x4: case AddVecI64x2: case SubVecI64x2: case AddVecF32x4: diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js index 293208755..4c00c223a 100644 --- a/test/binaryen.js/kitchen-sink.js +++ b/test/binaryen.js/kitchen-sink.js @@ -325,6 +325,10 @@ function test_core() { module.i8x16.sub_saturate_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i8x16.sub_saturate_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i8x16.mul(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i8x16.min_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i8x16.min_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i8x16.max_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i8x16.max_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.add(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.add_saturate_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.add_saturate_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), @@ -332,9 +336,17 @@ function test_core() { module.i16x8.sub_saturate_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.sub_saturate_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i16x8.mul(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i16x8.min_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i16x8.min_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i16x8.max_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i16x8.max_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i32x4.add(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i32x4.sub(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i32x4.mul(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i32x4.min_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i32x4.min_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i32x4.max_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), + module.i32x4.max_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i64x2.add(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.i64x2.sub(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), module.f32x4.add(module.v128.const(v128_bytes), module.v128.const(v128_bytes)), diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt index f67b72662..d52413646 100644 --- a/test/binaryen.js/kitchen-sink.js.txt +++ b/test/binaryen.js/kitchen-sink.js.txt @@ -1036,6 +1036,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i16x8.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1078,6 +1102,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1096,6 +1144,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -2642,6 +2714,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i16x8.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -2684,6 +2780,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -2702,6 +2822,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -4955,399 +5099,507 @@ int main() { uint8_t t199[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[535] = BinaryenConst(the_module, BinaryenLiteralVec128(t199)); } - 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[537] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); + expressions[536] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); } - expressions[538] = BinaryenSIMDExtract(the_module, 1, expressions[537], 1); + expressions[537] = BinaryenBinary(the_module, 158, expressions[535], expressions[536]); { uint8_t t201[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[539] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); + expressions[538] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); } - 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[541] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); + expressions[539] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); } - expressions[542] = BinaryenSIMDExtract(the_module, 3, expressions[541], 1); + expressions[540] = BinaryenBinary(the_module, 159, expressions[538], expressions[539]); { uint8_t t203[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[543] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); + expressions[541] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); } - 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[545] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); + expressions[542] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); } - expressions[546] = BinaryenSIMDExtract(the_module, 5, expressions[545], 1); + expressions[543] = BinaryenBinary(the_module, 160, expressions[541], expressions[542]); { uint8_t t205[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[547] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); + expressions[544] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); } - 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[549] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); + expressions[545] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); } - expressions[550] = BinaryenSIMDExtract(the_module, 7, expressions[549], 1); + expressions[546] = BinaryenBinary(the_module, 161, expressions[544], expressions[545]); { uint8_t t207[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[551] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); + expressions[547] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); } - 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[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); + expressions[548] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); } - expressions[555] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - expressions[556] = BinaryenSIMDReplace(the_module, 0, expressions[554], 1, expressions[555]); + expressions[549] = BinaryenBinary(the_module, 162, expressions[547], expressions[548]); { uint8_t t209[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); + expressions[550] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); } - 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[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); + expressions[551] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); } - expressions[561] = BinaryenConst(the_module, BinaryenLiteralInt64(184683593770)); - expressions[562] = BinaryenSIMDReplace(the_module, 3, expressions[560], 1, expressions[561]); + expressions[552] = BinaryenBinary(the_module, 163, expressions[550], expressions[551]); { uint8_t t211[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); + expressions[553] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); } - 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[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); + expressions[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); } - expressions[567] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); - expressions[568] = BinaryenSIMDReplace(the_module, 5, expressions[566], 1, expressions[567]); + expressions[555] = BinaryenBinary(the_module, 164, expressions[553], expressions[554]); { uint8_t t213[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[569] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); + expressions[556] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); } - 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[572] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); + expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); } - expressions[573] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[574] = BinaryenSIMDShift(the_module, 1, expressions[572], expressions[573]); + expressions[558] = BinaryenBinary(the_module, 165, expressions[556], expressions[557]); { uint8_t t215[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[575] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); + expressions[559] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); } - 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[578] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); + expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); } - expressions[579] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[580] = BinaryenSIMDShift(the_module, 3, expressions[578], expressions[579]); + expressions[561] = BinaryenBinary(the_module, 166, expressions[559], expressions[560]); { uint8_t t217[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[581] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); + expressions[562] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); } - 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[584] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); + expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); } - expressions[585] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[586] = BinaryenSIMDShift(the_module, 5, expressions[584], expressions[585]); + expressions[564] = BinaryenBinary(the_module, 167, expressions[562], expressions[563]); { uint8_t t219[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); + expressions[565] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); } - 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[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); + expressions[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); } - expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[592] = BinaryenSIMDShift(the_module, 7, expressions[590], expressions[591]); + expressions[567] = BinaryenBinary(the_module, 168, expressions[565], expressions[566]); { uint8_t t221[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); + expressions[568] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); } - 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[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); + expressions[569] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); } - expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[598] = BinaryenSIMDShift(the_module, 9, expressions[596], expressions[597]); + expressions[570] = BinaryenBinary(the_module, 169, expressions[568], expressions[569]); { uint8_t t223[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); + expressions[571] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); } - expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[601] = BinaryenSIMDShift(the_module, 10, expressions[599], expressions[600]); + expressions[572] = BinaryenSIMDExtract(the_module, 0, expressions[571], 1); { uint8_t t224[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - 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]); + expressions[573] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); + } + expressions[574] = BinaryenSIMDExtract(the_module, 1, expressions[573], 1); { 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)); + expressions[575] = BinaryenConst(the_module, BinaryenLiteralVec128(t225)); } + expressions[576] = BinaryenSIMDExtract(the_module, 2, expressions[575], 1); { uint8_t t226[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - 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); + expressions[577] = BinaryenConst(the_module, BinaryenLiteralVec128(t226)); } + expressions[578] = BinaryenSIMDExtract(the_module, 3, expressions[577], 1); { uint8_t t227[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[628] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); + expressions[579] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); } + expressions[580] = BinaryenSIMDExtract(the_module, 4, expressions[579], 1); { 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)); + expressions[581] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); } + expressions[582] = BinaryenSIMDExtract(the_module, 5, expressions[581], 1); { 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[583] = BinaryenConst(the_module, BinaryenLiteralVec128(t229)); } - expressions[631] = BinaryenSIMDTernary(the_module, 0, expressions[628], expressions[629], expressions[630]); + expressions[584] = BinaryenSIMDExtract(the_module, 6, expressions[583], 1); { uint8_t t230[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[632] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); + expressions[585] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); } + expressions[586] = BinaryenSIMDExtract(the_module, 7, expressions[585], 1); { 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)); + expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); } + expressions[588] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[589] = BinaryenSIMDReplace(the_module, 1, expressions[587], 1, expressions[588]); { 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[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t232)); } - expressions[635] = BinaryenSIMDTernary(the_module, 1, expressions[632], expressions[633], expressions[634]); + expressions[591] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[592] = BinaryenSIMDReplace(the_module, 0, expressions[590], 1, expressions[591]); { uint8_t t233[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[636] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); + expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); } + expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[595] = BinaryenSIMDReplace(the_module, 2, expressions[593], 1, expressions[594]); { 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)); + expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); } + expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt64(184683593770)); + expressions[598] = BinaryenSIMDReplace(the_module, 3, expressions[596], 1, expressions[597]); { 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[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t235)); } - expressions[639] = BinaryenSIMDTernary(the_module, 2, expressions[636], expressions[637], expressions[638]); + expressions[600] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); + expressions[601] = BinaryenSIMDReplace(the_module, 4, expressions[599], 1, expressions[600]); { uint8_t t236[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[640] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); + expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); } + expressions[603] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); + expressions[604] = BinaryenSIMDReplace(the_module, 5, expressions[602], 1, expressions[603]); { 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)); + expressions[605] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); } + expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[607] = BinaryenSIMDShift(the_module, 0, expressions[605], expressions[606]); { 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[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t238)); } - expressions[643] = BinaryenSIMDTernary(the_module, 3, expressions[640], expressions[641], expressions[642]); + expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[610] = BinaryenSIMDShift(the_module, 1, expressions[608], expressions[609]); { uint8_t t239[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[644] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); + expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); } + expressions[612] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[613] = BinaryenSIMDShift(the_module, 2, expressions[611], expressions[612]); { 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)); + expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); } + expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[616] = BinaryenSIMDShift(the_module, 3, expressions[614], expressions[615]); { 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]); + expressions[617] = BinaryenConst(the_module, BinaryenLiteralVec128(t241)); + } + expressions[618] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[619] = BinaryenSIMDShift(the_module, 4, expressions[617], expressions[618]); + { + uint8_t t242[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t242)); + } + expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[622] = BinaryenSIMDShift(the_module, 5, expressions[620], expressions[621]); + { + uint8_t t243[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[623] = BinaryenConst(the_module, BinaryenLiteralVec128(t243)); + } + expressions[624] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[625] = BinaryenSIMDShift(the_module, 6, expressions[623], expressions[624]); + { + uint8_t t244[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[626] = BinaryenConst(the_module, BinaryenLiteralVec128(t244)); + } + expressions[627] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[628] = BinaryenSIMDShift(the_module, 7, expressions[626], expressions[627]); + { + uint8_t t245[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[629] = BinaryenConst(the_module, BinaryenLiteralVec128(t245)); + } + expressions[630] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[631] = BinaryenSIMDShift(the_module, 8, expressions[629], expressions[630]); + { + uint8_t t246[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[632] = BinaryenConst(the_module, BinaryenLiteralVec128(t246)); + } + expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[634] = BinaryenSIMDShift(the_module, 9, expressions[632], expressions[633]); + { + uint8_t t247[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[635] = BinaryenConst(the_module, BinaryenLiteralVec128(t247)); + } + expressions[636] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[637] = BinaryenSIMDShift(the_module, 10, expressions[635], expressions[636]); + { + uint8_t t248[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[638] = BinaryenConst(the_module, BinaryenLiteralVec128(t248)); + } + expressions[639] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[640] = BinaryenSIMDShift(the_module, 11, expressions[638], expressions[639]); + expressions[641] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[642] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[641]); + expressions[643] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[644] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[643]); + expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[646] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[645]); + expressions[647] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[648] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[647]); + expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[650] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[649]); + expressions[651] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[652] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[651]); + expressions[653] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[654] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[653]); + expressions[655] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[656] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[655]); + expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[658] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[657]); + expressions[659] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[660] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[659]); + { + uint8_t t249[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[661] = BinaryenConst(the_module, BinaryenLiteralVec128(t249)); + } + { + uint8_t t250[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[662] = BinaryenConst(the_module, BinaryenLiteralVec128(t250)); + } + { + uint8_t mask[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[663] = BinaryenSIMDShuffle(the_module, expressions[661], expressions[662], mask); + } + { + uint8_t t251[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[664] = BinaryenConst(the_module, BinaryenLiteralVec128(t251)); + } + { + uint8_t t252[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[665] = BinaryenConst(the_module, BinaryenLiteralVec128(t252)); + } + { + uint8_t t253[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[666] = BinaryenConst(the_module, BinaryenLiteralVec128(t253)); + } + expressions[667] = BinaryenSIMDTernary(the_module, 0, expressions[664], expressions[665], expressions[666]); + { + uint8_t t254[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[668] = BinaryenConst(the_module, BinaryenLiteralVec128(t254)); + } + { + uint8_t t255[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[669] = BinaryenConst(the_module, BinaryenLiteralVec128(t255)); + } + { + uint8_t t256[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[670] = BinaryenConst(the_module, BinaryenLiteralVec128(t256)); + } + expressions[671] = BinaryenSIMDTernary(the_module, 1, expressions[668], expressions[669], expressions[670]); + { + uint8_t t257[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[672] = BinaryenConst(the_module, BinaryenLiteralVec128(t257)); + } + { + uint8_t t258[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[673] = BinaryenConst(the_module, BinaryenLiteralVec128(t258)); + } + { + uint8_t t259[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[674] = BinaryenConst(the_module, BinaryenLiteralVec128(t259)); + } + expressions[675] = BinaryenSIMDTernary(the_module, 2, expressions[672], expressions[673], expressions[674]); + { + uint8_t t260[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[676] = BinaryenConst(the_module, BinaryenLiteralVec128(t260)); + } + { + uint8_t t261[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[677] = BinaryenConst(the_module, BinaryenLiteralVec128(t261)); + } + { + uint8_t t262[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[678] = BinaryenConst(the_module, BinaryenLiteralVec128(t262)); + } + expressions[679] = BinaryenSIMDTernary(the_module, 3, expressions[676], expressions[677], expressions[678]); + { + uint8_t t263[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[680] = BinaryenConst(the_module, BinaryenLiteralVec128(t263)); + } + { + uint8_t t264[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[681] = BinaryenConst(the_module, BinaryenLiteralVec128(t264)); + } + { + uint8_t t265[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[682] = BinaryenConst(the_module, BinaryenLiteralVec128(t265)); + } + expressions[683] = BinaryenSIMDTernary(the_module, 4, expressions[680], expressions[681], expressions[682]); + expressions[684] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[685] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[686] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[687] = BinaryenMemoryInit(the_module, 0, expressions[684], expressions[685], expressions[686]); + expressions[688] = BinaryenDataDrop(the_module, 0); + expressions[689] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); + expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[691] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[692] = BinaryenMemoryCopy(the_module, expressions[689], expressions[690], expressions[691]); + expressions[693] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[694] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[695] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[696] = BinaryenMemoryFill(the_module, expressions[693], expressions[694], expressions[695]); { BinaryenExpressionRef children[] = { 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]); + expressions[697] = BinaryenBlock(the_module, NULL, children, 0, 0); + } + expressions[698] = BinaryenIf(the_module, expressions[7], expressions[8], expressions[9]); + expressions[699] = BinaryenIf(the_module, expressions[10], expressions[11], expressions[0]); + expressions[700] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[701] = BinaryenLoop(the_module, "in", expressions[700]); + expressions[702] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[703] = BinaryenLoop(the_module, NULL, expressions[702]); + expressions[704] = BinaryenBreak(the_module, "the-value", expressions[12], expressions[13]); + expressions[705] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[706] = BinaryenBreak(the_module, "the-nothing", expressions[705], expressions[0]); + expressions[707] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); + expressions[708] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[707]); + expressions[709] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); { const char* names[] = { "the-value" }; - expressions[674] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]); + expressions[710] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]); } - expressions[675] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[711] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); { const char* names[] = { "the-nothing" }; - 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] = 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, 6); - expressions[762] = BinaryenPush(the_module, expressions[761]); - expressions[763] = BinaryenPop(the_module, 7); - expressions[764] = BinaryenPush(the_module, expressions[763]); - expressions[765] = BinaryenNop(the_module); - expressions[766] = BinaryenUnreachable(the_module); + expressions[712] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[711], expressions[0]); + } + expressions[713] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[714] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[715] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[716] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[713], expressions[714], expressions[715], expressions[716] }; + expressions[717] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); + } + expressions[718] = BinaryenUnary(the_module, 20, expressions[717]); + expressions[719] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[720] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[719], expressions[720] }; + expressions[721] = BinaryenCall(the_module, "an-imported", operands, 2, 3); + } + expressions[722] = BinaryenUnary(the_module, 25, expressions[721]); + expressions[723] = BinaryenUnary(the_module, 20, expressions[722]); + expressions[724] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[725] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[726] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[727] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[728] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[725], expressions[726], expressions[727], expressions[728] }; + expressions[729] = BinaryenCallIndirect(the_module, expressions[724], operands, 4, "iiIfF"); + } + expressions[730] = BinaryenUnary(the_module, 20, expressions[729]); + expressions[731] = BinaryenLocalGet(the_module, 0, 1); + expressions[732] = BinaryenDrop(the_module, expressions[731]); + expressions[733] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); + expressions[734] = BinaryenLocalSet(the_module, 0, expressions[733]); + expressions[735] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); + expressions[736] = BinaryenLocalTee(the_module, 0, expressions[735]); + expressions[737] = BinaryenDrop(the_module, expressions[736]); + expressions[738] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[739] = BinaryenLoad(the_module, 4, 1, 0, 0, 1, expressions[738]); + expressions[740] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); + expressions[741] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[740]); + expressions[742] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[743] = BinaryenLoad(the_module, 4, 1, 0, 0, 3, expressions[742]); + expressions[744] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); + expressions[745] = BinaryenLoad(the_module, 8, 1, 2, 8, 4, expressions[744]); + expressions[746] = BinaryenStore(the_module, 4, 0, 0, expressions[19], expressions[20], 1); + expressions[747] = BinaryenStore(the_module, 8, 2, 4, expressions[21], expressions[22], 2); + expressions[748] = BinaryenSelect(the_module, expressions[16], expressions[17], expressions[18]); + expressions[749] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); + expressions[750] = BinaryenReturn(the_module, expressions[749]); + expressions[751] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[752] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[753] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[754] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[751], expressions[752], expressions[753], expressions[754] }; + expressions[755] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); + } + expressions[756] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[757] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); + expressions[758] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); + expressions[759] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); + expressions[760] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); + { + BinaryenExpressionRef operands[] = { expressions[757], expressions[758], expressions[759], expressions[760] }; + expressions[761] = BinaryenReturnCallIndirect(the_module, expressions[756], operands, 4, "iiIfF"); + } + expressions[762] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + { + BinaryenExpressionRef operands[] = { expressions[762] }; + expressions[763] = BinaryenThrow(the_module, "a-event", operands, 1); + } + expressions[764] = BinaryenPop(the_module, 7); + expressions[765] = BinaryenLocalSet(the_module, 5, expressions[764]); + expressions[766] = BinaryenLocalGet(the_module, 5, 7); + expressions[767] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[766]); + expressions[768] = BinaryenRethrow(the_module, expressions[767]); + { + BinaryenExpressionRef children[] = { expressions[768] }; + expressions[769] = BinaryenBlock(the_module, "try-block", children, 1, 1); + } + expressions[770] = BinaryenDrop(the_module, expressions[769]); + { + BinaryenExpressionRef children[] = { expressions[765], expressions[770] }; + expressions[771] = BinaryenBlock(the_module, NULL, children, 2, 0); + } + expressions[772] = BinaryenTry(the_module, expressions[763], expressions[771]); + expressions[773] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[774] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[775] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[774]); + expressions[776] = BinaryenAtomicStore(the_module, 4, 0, expressions[773], expressions[775], 1); + expressions[777] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[778] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[779] = BinaryenConst(the_module, BinaryenLiteralInt64(0)); + expressions[780] = BinaryenAtomicWait(the_module, expressions[777], expressions[778], expressions[779], 1); + expressions[781] = BinaryenDrop(the_module, expressions[780]); + expressions[782] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[783] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[784] = BinaryenAtomicNotify(the_module, expressions[782], expressions[783]); + expressions[785] = BinaryenDrop(the_module, expressions[784]); + expressions[786] = BinaryenAtomicFence(the_module); + expressions[787] = BinaryenPop(the_module, 1); + expressions[788] = BinaryenPush(the_module, expressions[787]); + expressions[789] = BinaryenPop(the_module, 2); + expressions[790] = BinaryenPush(the_module, expressions[789]); + expressions[791] = BinaryenPop(the_module, 3); + expressions[792] = BinaryenPush(the_module, expressions[791]); + expressions[793] = BinaryenPop(the_module, 4); + expressions[794] = BinaryenPush(the_module, expressions[793]); + expressions[795] = BinaryenPop(the_module, 5); + expressions[796] = BinaryenPush(the_module, expressions[795]); + expressions[797] = BinaryenPop(the_module, 6); + expressions[798] = BinaryenPush(the_module, expressions[797]); + expressions[799] = BinaryenPop(the_module, 7); + expressions[800] = BinaryenPush(the_module, expressions[799]); + expressions[801] = BinaryenNop(the_module); + expressions[802] = BinaryenUnreachable(the_module); BinaryenExpressionGetId(expressions[30]); BinaryenExpressionGetType(expressions[30]); BinaryenUnaryGetOp(expressions[30]); @@ -5358,26 +5610,26 @@ getExpressionInfo={"id":15,"type":3,"op":6} (f32.const -33.61199951171875) ) - expressions[767] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); - BinaryenExpressionGetId(expressions[767]); - BinaryenExpressionGetType(expressions[767]); - BinaryenConstGetValueI32(expressions[767]); + expressions[803] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); + BinaryenExpressionGetId(expressions[803]); + BinaryenExpressionGetType(expressions[803]); + BinaryenConstGetValueI32(expressions[803]); getExpressionInfo(i32.const)={"id":14,"type":1,"value":5} - expressions[768] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078)); - BinaryenExpressionGetId(expressions[768]); - BinaryenExpressionGetType(expressions[768]); - BinaryenConstGetValueI64Low(expressions[768]); - BinaryenConstGetValueI64High(expressions[768]); + expressions[804] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078)); + BinaryenExpressionGetId(expressions[804]); + BinaryenExpressionGetType(expressions[804]); + BinaryenConstGetValueI64Low(expressions[804]); + BinaryenConstGetValueI64High(expressions[804]); getExpressionInfo(i64.const)={"id":14,"type":2,"value":{"low":6,"high":7}} - expressions[769] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5)); - BinaryenExpressionGetId(expressions[769]); - BinaryenExpressionGetType(expressions[769]); - BinaryenConstGetValueF32(expressions[769]); + expressions[805] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5)); + BinaryenExpressionGetId(expressions[805]); + BinaryenExpressionGetType(expressions[805]); + BinaryenConstGetValueF32(expressions[805]); getExpressionInfo(f32.const)={"id":14,"type":3,"value":8.5} - expressions[770] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5)); - BinaryenExpressionGetId(expressions[770]); - BinaryenExpressionGetType(expressions[770]); - BinaryenConstGetValueF64(expressions[770]); + expressions[806] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5)); + BinaryenExpressionGetId(expressions[806]); + BinaryenExpressionGetType(expressions[806]); + BinaryenConstGetValueF64(expressions[806]); getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} { BinaryenExpressionRef children[] = { expressions[24], expressions[26], expressions[28], expressions[30], expressions[32], @@ -5413,39 +5665,41 @@ 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[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[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[764], expressions[765], expressions[766] }; - expressions[771] = BinaryenBlock(the_module, "the-value", children, 286, 0); - } - expressions[772] = BinaryenDrop(the_module, expressions[771]); - { - BinaryenExpressionRef children[] = { expressions[772] }; - expressions[773] = BinaryenBlock(the_module, "the-nothing", children, 1, 0); - } - expressions[774] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - { - BinaryenExpressionRef children[] = { expressions[773], expressions[774] }; - expressions[775] = BinaryenBlock(the_module, "the-body", children, 2, 0); + expressions[531], expressions[534], expressions[537], expressions[540], expressions[543], expressions[546], + expressions[549], expressions[552], expressions[555], expressions[558], expressions[561], expressions[564], + expressions[567], expressions[570], expressions[572], expressions[574], expressions[576], expressions[578], + expressions[580], expressions[582], expressions[584], 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[625], expressions[628], + expressions[631], expressions[634], expressions[637], expressions[640], expressions[642], expressions[644], + expressions[646], expressions[648], expressions[650], expressions[652], expressions[654], expressions[656], + expressions[658], expressions[660], expressions[663], expressions[667], expressions[671], expressions[675], + expressions[679], expressions[683], expressions[687], expressions[688], expressions[692], expressions[696], + expressions[697], expressions[698], expressions[699], expressions[701], expressions[703], expressions[704], + expressions[706], expressions[708], expressions[709], expressions[710], expressions[712], expressions[718], + expressions[723], expressions[730], expressions[732], expressions[734], expressions[737], expressions[739], + expressions[741], expressions[743], expressions[745], expressions[746], expressions[747], expressions[748], + expressions[750], expressions[755], expressions[761], expressions[772], expressions[776], expressions[781], + expressions[785], expressions[786], expressions[788], expressions[790], expressions[792], expressions[794], + expressions[796], expressions[798], expressions[800], expressions[801], expressions[802] }; + expressions[807] = BinaryenBlock(the_module, "the-value", children, 298, 0); + } + expressions[808] = BinaryenDrop(the_module, expressions[807]); + { + BinaryenExpressionRef children[] = { expressions[808] }; + expressions[809] = BinaryenBlock(the_module, "the-nothing", children, 1, 0); + } + expressions[810] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + { + BinaryenExpressionRef children[] = { expressions[809], expressions[810] }; + expressions[811] = BinaryenBlock(the_module, "the-body", children, 2, 0); } { BinaryenType varTypes[] = { 1, 7 }; - functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[775]); + functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[811]); } - expressions[776] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[776]); + expressions[812] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[812]); { BinaryenType paramTypes[] = { 1, 4 }; functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2); @@ -5471,18 +5725,18 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} BinaryenFunctionGetVar(functions[0], 0); BinaryenFunctionGetVar(functions[0], 1); BinaryenFunctionGetBody(functions[0]); - expressions[777] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[813] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); { const char* funcNames[] = { "kitchen()sinker" }; - BinaryenSetFunctionTable(the_module, 1, 4294967295, funcNames, 1, expressions[777]); + BinaryenSetFunctionTable(the_module, 1, 4294967295, funcNames, 1, expressions[813]); } - expressions[778] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); + expressions[814] = 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[778], expressions[0] }; + BinaryenExpressionRef segmentOffsets[] = { expressions[814], expressions[0] }; BinaryenIndex segmentSizes[] = { 12, 12 }; BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1); } @@ -5490,10 +5744,10 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} BinaryenType paramTypes[] = { 0 }; functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); } - expressions[779] = BinaryenNop(the_module); + expressions[815] = BinaryenNop(the_module); { BinaryenType varTypes[] = { 0 }; - functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[779]); + functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[815]); } BinaryenSetStart(the_module, functions[1]); { @@ -6469,6 +6723,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i16x8.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -6511,6 +6789,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -6529,6 +6831,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -8077,6 +8403,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i16x8.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -8119,6 +8469,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -8137,6 +8511,30 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5} ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (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 6848ee805..a4a4c860d 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -434,14 +434,26 @@ void test_core() { makeBinary(module, BinaryenSubSatSVecI16x8(), 5), makeBinary(module, BinaryenSubSatUVecI16x8(), 5), makeBinary(module, BinaryenMulVecI16x8(), 5), + makeBinary(module, BinaryenMinSVecI16x8(), 5), + makeBinary(module, BinaryenMinUVecI16x8(), 5), + makeBinary(module, BinaryenMaxSVecI16x8(), 5), + makeBinary(module, BinaryenMaxUVecI16x8(), 5), makeBinary(module, BinaryenAddVecI32x4(), 5), makeBinary(module, BinaryenSubVecI32x4(), 5), makeBinary(module, BinaryenMulVecI32x4(), 5), + makeBinary(module, BinaryenMinSVecI8x16(), 5), + makeBinary(module, BinaryenMinUVecI8x16(), 5), + makeBinary(module, BinaryenMaxSVecI8x16(), 5), + makeBinary(module, BinaryenMaxUVecI8x16(), 5), makeBinary(module, BinaryenAddVecI64x2(), 5), makeBinary(module, BinaryenSubVecI64x2(), 5), makeBinary(module, BinaryenAddVecF32x4(), 5), makeBinary(module, BinaryenSubVecF32x4(), 5), makeBinary(module, BinaryenMulVecF32x4(), 5), + makeBinary(module, BinaryenMinSVecI32x4(), 5), + makeBinary(module, BinaryenMinUVecI32x4(), 5), + makeBinary(module, BinaryenMaxSVecI32x4(), 5), + makeBinary(module, BinaryenMaxUVecI32x4(), 5), makeBinary(module, BinaryenDivVecF32x4(), 5), makeBinary(module, BinaryenMinVecF32x4(), 5), makeBinary(module, BinaryenMaxVecF32x4(), 5), diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 6a8e50c91..c5cfd85ba 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -1025,6 +1025,30 @@ BinaryenFeatureAll: 511 ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1043,6 +1067,30 @@ BinaryenFeatureAll: 511 ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1073,6 +1121,30 @@ BinaryenFeatureAll: 511 ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (f32x4.div (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -3087,7 +3159,7 @@ int main() { uint8_t t143[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[470] = BinaryenConst(the_module, BinaryenLiteralVec128(t143)); } - expressions[471] = BinaryenBinary(the_module, 129, expressions[470], expressions[469]); + expressions[471] = BinaryenBinary(the_module, 133, expressions[470], expressions[469]); { uint8_t t144[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[472] = BinaryenConst(the_module, BinaryenLiteralVec128(t144)); @@ -3096,7 +3168,7 @@ int main() { uint8_t t145[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[473] = BinaryenConst(the_module, BinaryenLiteralVec128(t145)); } - expressions[474] = BinaryenBinary(the_module, 130, expressions[473], expressions[472]); + expressions[474] = BinaryenBinary(the_module, 134, expressions[473], expressions[472]); { uint8_t t146[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[475] = BinaryenConst(the_module, BinaryenLiteralVec128(t146)); @@ -3105,7 +3177,7 @@ int main() { uint8_t t147[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[476] = BinaryenConst(the_module, BinaryenLiteralVec128(t147)); } - expressions[477] = BinaryenBinary(the_module, 131, expressions[476], expressions[475]); + expressions[477] = BinaryenBinary(the_module, 135, expressions[476], expressions[475]); { uint8_t t148[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[478] = BinaryenConst(the_module, BinaryenLiteralVec128(t148)); @@ -3114,7 +3186,7 @@ int main() { uint8_t t149[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[479] = BinaryenConst(the_module, BinaryenLiteralVec128(t149)); } - expressions[480] = BinaryenBinary(the_module, 132, expressions[479], expressions[478]); + expressions[480] = BinaryenBinary(the_module, 136, expressions[479], expressions[478]); { uint8_t t150[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[481] = BinaryenConst(the_module, BinaryenLiteralVec128(t150)); @@ -3123,7 +3195,7 @@ int main() { uint8_t t151[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[482] = BinaryenConst(the_module, BinaryenLiteralVec128(t151)); } - expressions[483] = BinaryenBinary(the_module, 133, expressions[482], expressions[481]); + expressions[483] = BinaryenBinary(the_module, 137, expressions[482], expressions[481]); { uint8_t t152[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[484] = BinaryenConst(the_module, BinaryenLiteralVec128(t152)); @@ -3132,7 +3204,7 @@ int main() { uint8_t t153[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[485] = BinaryenConst(the_module, BinaryenLiteralVec128(t153)); } - expressions[486] = BinaryenBinary(the_module, 134, expressions[485], expressions[484]); + expressions[486] = BinaryenBinary(the_module, 138, expressions[485], expressions[484]); { uint8_t t154[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[487] = BinaryenConst(the_module, BinaryenLiteralVec128(t154)); @@ -3141,7 +3213,7 @@ int main() { uint8_t t155[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[488] = BinaryenConst(the_module, BinaryenLiteralVec128(t155)); } - expressions[489] = BinaryenBinary(the_module, 135, expressions[488], expressions[487]); + expressions[489] = BinaryenBinary(the_module, 139, expressions[488], expressions[487]); { uint8_t t156[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[490] = BinaryenConst(the_module, BinaryenLiteralVec128(t156)); @@ -3150,7 +3222,7 @@ int main() { uint8_t t157[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[491] = BinaryenConst(the_module, BinaryenLiteralVec128(t157)); } - expressions[492] = BinaryenBinary(the_module, 136, expressions[491], expressions[490]); + expressions[492] = BinaryenBinary(the_module, 140, expressions[491], expressions[490]); { uint8_t t158[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[493] = BinaryenConst(the_module, BinaryenLiteralVec128(t158)); @@ -3159,7 +3231,7 @@ int main() { uint8_t t159[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[494] = BinaryenConst(the_module, BinaryenLiteralVec128(t159)); } - expressions[495] = BinaryenBinary(the_module, 137, expressions[494], expressions[493]); + expressions[495] = BinaryenBinary(the_module, 141, expressions[494], expressions[493]); { uint8_t t160[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[496] = BinaryenConst(the_module, BinaryenLiteralVec128(t160)); @@ -3168,7 +3240,7 @@ int main() { uint8_t t161[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[497] = BinaryenConst(the_module, BinaryenLiteralVec128(t161)); } - expressions[498] = BinaryenBinary(the_module, 138, expressions[497], expressions[496]); + expressions[498] = BinaryenBinary(the_module, 142, expressions[497], expressions[496]); { uint8_t t162[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[499] = BinaryenConst(the_module, BinaryenLiteralVec128(t162)); @@ -3177,7 +3249,7 @@ int main() { uint8_t t163[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[500] = BinaryenConst(the_module, BinaryenLiteralVec128(t163)); } - expressions[501] = BinaryenBinary(the_module, 139, expressions[500], expressions[499]); + expressions[501] = BinaryenBinary(the_module, 143, expressions[500], expressions[499]); { uint8_t t164[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[502] = BinaryenConst(the_module, BinaryenLiteralVec128(t164)); @@ -3186,7 +3258,7 @@ int main() { uint8_t t165[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[503] = BinaryenConst(the_module, BinaryenLiteralVec128(t165)); } - expressions[504] = BinaryenBinary(the_module, 140, expressions[503], expressions[502]); + expressions[504] = BinaryenBinary(the_module, 144, expressions[503], expressions[502]); { uint8_t t166[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[505] = BinaryenConst(the_module, BinaryenLiteralVec128(t166)); @@ -3195,7 +3267,7 @@ int main() { uint8_t t167[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[506] = BinaryenConst(the_module, BinaryenLiteralVec128(t167)); } - expressions[507] = BinaryenBinary(the_module, 141, expressions[506], expressions[505]); + expressions[507] = BinaryenBinary(the_module, 145, expressions[506], expressions[505]); { uint8_t t168[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[508] = BinaryenConst(the_module, BinaryenLiteralVec128(t168)); @@ -3204,7 +3276,7 @@ int main() { uint8_t t169[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[509] = BinaryenConst(the_module, BinaryenLiteralVec128(t169)); } - expressions[510] = BinaryenBinary(the_module, 142, expressions[509], expressions[508]); + expressions[510] = BinaryenBinary(the_module, 146, expressions[509], expressions[508]); { uint8_t t170[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[511] = BinaryenConst(the_module, BinaryenLiteralVec128(t170)); @@ -3213,7 +3285,7 @@ int main() { uint8_t t171[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[512] = BinaryenConst(the_module, BinaryenLiteralVec128(t171)); } - expressions[513] = BinaryenBinary(the_module, 143, expressions[512], expressions[511]); + expressions[513] = BinaryenBinary(the_module, 129, expressions[512], expressions[511]); { uint8_t t172[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[514] = BinaryenConst(the_module, BinaryenLiteralVec128(t172)); @@ -3222,7 +3294,7 @@ int main() { uint8_t t173[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[515] = BinaryenConst(the_module, BinaryenLiteralVec128(t173)); } - expressions[516] = BinaryenBinary(the_module, 144, expressions[515], expressions[514]); + expressions[516] = BinaryenBinary(the_module, 130, expressions[515], expressions[514]); { uint8_t t174[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[517] = BinaryenConst(the_module, BinaryenLiteralVec128(t174)); @@ -3231,7 +3303,7 @@ int main() { uint8_t t175[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[518] = BinaryenConst(the_module, BinaryenLiteralVec128(t175)); } - expressions[519] = BinaryenBinary(the_module, 145, expressions[518], expressions[517]); + expressions[519] = BinaryenBinary(the_module, 131, expressions[518], expressions[517]); { uint8_t t176[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[520] = BinaryenConst(the_module, BinaryenLiteralVec128(t176)); @@ -3240,7 +3312,7 @@ int main() { uint8_t t177[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[521] = BinaryenConst(the_module, BinaryenLiteralVec128(t177)); } - expressions[522] = BinaryenBinary(the_module, 146, expressions[521], expressions[520]); + expressions[522] = BinaryenBinary(the_module, 132, expressions[521], expressions[520]); { uint8_t t178[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[523] = BinaryenConst(the_module, BinaryenLiteralVec128(t178)); @@ -3249,7 +3321,7 @@ int main() { uint8_t t179[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[524] = BinaryenConst(the_module, BinaryenLiteralVec128(t179)); } - expressions[525] = BinaryenBinary(the_module, 147, expressions[524], expressions[523]); + expressions[525] = BinaryenBinary(the_module, 151, expressions[524], expressions[523]); { uint8_t t180[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[526] = BinaryenConst(the_module, BinaryenLiteralVec128(t180)); @@ -3258,7 +3330,7 @@ int main() { uint8_t t181[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[527] = BinaryenConst(the_module, BinaryenLiteralVec128(t181)); } - expressions[528] = BinaryenBinary(the_module, 148, expressions[527], expressions[526]); + expressions[528] = BinaryenBinary(the_module, 152, expressions[527], expressions[526]); { uint8_t t182[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[529] = BinaryenConst(the_module, BinaryenLiteralVec128(t182)); @@ -3267,7 +3339,7 @@ int main() { uint8_t t183[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[530] = BinaryenConst(the_module, BinaryenLiteralVec128(t183)); } - expressions[531] = BinaryenBinary(the_module, 149, expressions[530], expressions[529]); + expressions[531] = BinaryenBinary(the_module, 153, expressions[530], expressions[529]); { uint8_t t184[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[532] = BinaryenConst(the_module, BinaryenLiteralVec128(t184)); @@ -3276,7 +3348,7 @@ int main() { uint8_t t185[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[533] = BinaryenConst(the_module, BinaryenLiteralVec128(t185)); } - expressions[534] = BinaryenBinary(the_module, 150, expressions[533], expressions[532]); + expressions[534] = BinaryenBinary(the_module, 154, expressions[533], expressions[532]); { uint8_t t186[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[535] = BinaryenConst(the_module, BinaryenLiteralVec128(t186)); @@ -3285,7 +3357,7 @@ int main() { uint8_t t187[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[536] = BinaryenConst(the_module, BinaryenLiteralVec128(t187)); } - expressions[537] = BinaryenBinary(the_module, 151, expressions[536], expressions[535]); + expressions[537] = BinaryenBinary(the_module, 155, expressions[536], expressions[535]); { uint8_t t188[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[538] = BinaryenConst(the_module, BinaryenLiteralVec128(t188)); @@ -3294,7 +3366,7 @@ int main() { uint8_t t189[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[539] = BinaryenConst(the_module, BinaryenLiteralVec128(t189)); } - expressions[540] = BinaryenBinary(the_module, 152, expressions[539], expressions[538]); + expressions[540] = BinaryenBinary(the_module, 147, expressions[539], expressions[538]); { uint8_t t190[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[541] = BinaryenConst(the_module, BinaryenLiteralVec128(t190)); @@ -3303,7 +3375,7 @@ int main() { uint8_t t191[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[542] = BinaryenConst(the_module, BinaryenLiteralVec128(t191)); } - expressions[543] = BinaryenBinary(the_module, 153, expressions[542], expressions[541]); + expressions[543] = BinaryenBinary(the_module, 148, expressions[542], expressions[541]); { uint8_t t192[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[544] = BinaryenConst(the_module, BinaryenLiteralVec128(t192)); @@ -3312,7 +3384,7 @@ int main() { uint8_t t193[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[545] = BinaryenConst(the_module, BinaryenLiteralVec128(t193)); } - expressions[546] = BinaryenBinary(the_module, 154, expressions[545], expressions[544]); + expressions[546] = BinaryenBinary(the_module, 149, expressions[545], expressions[544]); { uint8_t t194[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[547] = BinaryenConst(the_module, BinaryenLiteralVec128(t194)); @@ -3321,7 +3393,7 @@ int main() { uint8_t t195[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[548] = BinaryenConst(the_module, BinaryenLiteralVec128(t195)); } - expressions[549] = BinaryenBinary(the_module, 155, expressions[548], expressions[547]); + expressions[549] = BinaryenBinary(the_module, 150, expressions[548], expressions[547]); { uint8_t t196[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[550] = BinaryenConst(the_module, BinaryenLiteralVec128(t196)); @@ -3344,353 +3416,461 @@ int main() { uint8_t t200[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; expressions[556] = BinaryenConst(the_module, BinaryenLiteralVec128(t200)); } - 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[558] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); + expressions[557] = BinaryenConst(the_module, BinaryenLiteralVec128(t201)); } - expressions[559] = BinaryenSIMDExtract(the_module, 1, expressions[558], 0); + expressions[558] = BinaryenBinary(the_module, 158, expressions[557], expressions[556]); { uint8_t t202[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); + expressions[559] = BinaryenConst(the_module, BinaryenLiteralVec128(t202)); } - 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[562] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); + expressions[560] = BinaryenConst(the_module, BinaryenLiteralVec128(t203)); } - expressions[563] = BinaryenSIMDExtract(the_module, 3, expressions[562], 0); + expressions[561] = BinaryenBinary(the_module, 159, expressions[560], expressions[559]); { uint8_t t204[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[564] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); + expressions[562] = BinaryenConst(the_module, BinaryenLiteralVec128(t204)); } - 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[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); + expressions[563] = BinaryenConst(the_module, BinaryenLiteralVec128(t205)); } - expressions[567] = BinaryenSIMDExtract(the_module, 5, expressions[566], 0); + expressions[564] = BinaryenBinary(the_module, 160, expressions[563], expressions[562]); { uint8_t t206[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[568] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); + expressions[565] = BinaryenConst(the_module, BinaryenLiteralVec128(t206)); } - 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[570] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); + expressions[566] = BinaryenConst(the_module, BinaryenLiteralVec128(t207)); } - expressions[571] = BinaryenSIMDExtract(the_module, 7, expressions[570], 0); - expressions[572] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[567] = BinaryenBinary(the_module, 161, expressions[566], expressions[565]); { uint8_t t208[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[573] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); + expressions[568] = BinaryenConst(the_module, BinaryenLiteralVec128(t208)); } - 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[576] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); + expressions[569] = BinaryenConst(the_module, BinaryenLiteralVec128(t209)); } - expressions[577] = BinaryenSIMDReplace(the_module, 1, expressions[576], 0, expressions[575]); - expressions[578] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[570] = BinaryenBinary(the_module, 162, expressions[569], expressions[568]); { uint8_t t210[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[579] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); + expressions[571] = BinaryenConst(the_module, BinaryenLiteralVec128(t210)); } - 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[582] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); + expressions[572] = BinaryenConst(the_module, BinaryenLiteralVec128(t211)); } - expressions[583] = BinaryenSIMDReplace(the_module, 3, expressions[582], 0, expressions[581]); - expressions[584] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); + expressions[573] = BinaryenBinary(the_module, 163, expressions[572], expressions[571]); { uint8_t t212[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[585] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); + expressions[574] = BinaryenConst(the_module, BinaryenLiteralVec128(t212)); } - 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[588] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); + expressions[575] = BinaryenConst(the_module, BinaryenLiteralVec128(t213)); } - expressions[589] = BinaryenSIMDReplace(the_module, 5, expressions[588], 0, expressions[587]); + expressions[576] = BinaryenBinary(the_module, 164, expressions[575], expressions[574]); { uint8_t t214[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); + expressions[577] = BinaryenConst(the_module, BinaryenLiteralVec128(t214)); } - 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[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); + expressions[578] = BinaryenConst(the_module, BinaryenLiteralVec128(t215)); } - expressions[594] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[595] = BinaryenSIMDShift(the_module, 1, expressions[593], expressions[594]); + expressions[579] = BinaryenBinary(the_module, 165, expressions[578], expressions[577]); { uint8_t t216[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); + expressions[580] = BinaryenConst(the_module, BinaryenLiteralVec128(t216)); } - 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[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); + expressions[581] = BinaryenConst(the_module, BinaryenLiteralVec128(t217)); } - expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[601] = BinaryenSIMDShift(the_module, 3, expressions[599], expressions[600]); + expressions[582] = BinaryenBinary(the_module, 166, expressions[581], expressions[580]); { uint8_t t218[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); + expressions[583] = BinaryenConst(the_module, BinaryenLiteralVec128(t218)); } - 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[605] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); + expressions[584] = BinaryenConst(the_module, BinaryenLiteralVec128(t219)); } - expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[607] = BinaryenSIMDShift(the_module, 5, expressions[605], expressions[606]); + expressions[585] = BinaryenBinary(the_module, 167, expressions[584], expressions[583]); { uint8_t t220[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); + expressions[586] = BinaryenConst(the_module, BinaryenLiteralVec128(t220)); } - 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[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); + expressions[587] = BinaryenConst(the_module, BinaryenLiteralVec128(t221)); } - expressions[612] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[613] = BinaryenSIMDShift(the_module, 7, expressions[611], expressions[612]); + expressions[588] = BinaryenBinary(the_module, 168, expressions[587], expressions[586]); { uint8_t t222[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); + expressions[589] = BinaryenConst(the_module, BinaryenLiteralVec128(t222)); } - 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[617] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); + expressions[590] = BinaryenConst(the_module, BinaryenLiteralVec128(t223)); } - expressions[618] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[619] = BinaryenSIMDShift(the_module, 9, expressions[617], expressions[618]); + expressions[591] = BinaryenBinary(the_module, 169, expressions[590], expressions[589]); { uint8_t t224[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); + expressions[592] = BinaryenConst(the_module, BinaryenLiteralVec128(t224)); } - expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); - expressions[622] = BinaryenSIMDShift(the_module, 10, expressions[620], expressions[621]); + expressions[593] = BinaryenSIMDExtract(the_module, 0, expressions[592], 0); { uint8_t t225[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - 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]); + expressions[594] = BinaryenConst(the_module, BinaryenLiteralVec128(t225)); + } + expressions[595] = BinaryenSIMDExtract(the_module, 1, expressions[594], 0); { 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)); + expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t226)); } + expressions[597] = BinaryenSIMDExtract(the_module, 2, expressions[596], 0); { uint8_t t227[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - 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); + expressions[598] = BinaryenConst(the_module, BinaryenLiteralVec128(t227)); } + expressions[599] = BinaryenSIMDExtract(the_module, 3, expressions[598], 0); { uint8_t t228[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[649] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); + expressions[600] = BinaryenConst(the_module, BinaryenLiteralVec128(t228)); } + expressions[601] = BinaryenSIMDExtract(the_module, 4, expressions[600], 0); { 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)); + expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t229)); } + expressions[603] = BinaryenSIMDExtract(the_module, 5, expressions[602], 0); { 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[604] = BinaryenConst(the_module, BinaryenLiteralVec128(t230)); } - expressions[652] = BinaryenSIMDTernary(the_module, 0, expressions[649], expressions[650], expressions[651]); + expressions[605] = BinaryenSIMDExtract(the_module, 6, expressions[604], 0); { uint8_t t231[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[653] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); + expressions[606] = BinaryenConst(the_module, BinaryenLiteralVec128(t231)); } + expressions[607] = BinaryenSIMDExtract(the_module, 7, expressions[606], 0); + expressions[608] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { 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)); + expressions[609] = BinaryenConst(the_module, BinaryenLiteralVec128(t232)); } + expressions[610] = BinaryenSIMDReplace(the_module, 0, expressions[609], 0, expressions[608]); + expressions[611] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { 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[612] = BinaryenConst(the_module, BinaryenLiteralVec128(t233)); } - expressions[656] = BinaryenSIMDTernary(the_module, 1, expressions[653], expressions[654], expressions[655]); + expressions[613] = BinaryenSIMDReplace(the_module, 1, expressions[612], 0, expressions[611]); + expressions[614] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); { uint8_t t234[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[657] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); + expressions[615] = BinaryenConst(the_module, BinaryenLiteralVec128(t234)); } + expressions[616] = BinaryenSIMDReplace(the_module, 2, expressions[615], 0, expressions[614]); + expressions[617] = BinaryenConst(the_module, BinaryenLiteralInt64(42)); { 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)); + expressions[618] = BinaryenConst(the_module, BinaryenLiteralVec128(t235)); } + expressions[619] = BinaryenSIMDReplace(the_module, 3, expressions[618], 0, expressions[617]); + expressions[620] = BinaryenConst(the_module, BinaryenLiteralFloat32(42)); { 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[621] = BinaryenConst(the_module, BinaryenLiteralVec128(t236)); } - expressions[660] = BinaryenSIMDTernary(the_module, 2, expressions[657], expressions[658], expressions[659]); + expressions[622] = BinaryenSIMDReplace(the_module, 4, expressions[621], 0, expressions[620]); + expressions[623] = BinaryenConst(the_module, BinaryenLiteralFloat64(42)); { uint8_t t237[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[661] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); + expressions[624] = BinaryenConst(the_module, BinaryenLiteralVec128(t237)); } + expressions[625] = BinaryenSIMDReplace(the_module, 5, expressions[624], 0, expressions[623]); { 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)); + expressions[626] = BinaryenConst(the_module, BinaryenLiteralVec128(t238)); } + expressions[627] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[628] = BinaryenSIMDShift(the_module, 0, expressions[626], expressions[627]); { 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[629] = BinaryenConst(the_module, BinaryenLiteralVec128(t239)); } - expressions[664] = BinaryenSIMDTernary(the_module, 3, expressions[661], expressions[662], expressions[663]); + expressions[630] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[631] = BinaryenSIMDShift(the_module, 1, expressions[629], expressions[630]); { uint8_t t240[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - expressions[665] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); + expressions[632] = BinaryenConst(the_module, BinaryenLiteralVec128(t240)); } + expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[634] = BinaryenSIMDShift(the_module, 2, expressions[632], expressions[633]); { 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)); + expressions[635] = BinaryenConst(the_module, BinaryenLiteralVec128(t241)); } + expressions[636] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[637] = BinaryenSIMDShift(the_module, 3, expressions[635], expressions[636]); { 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]); + expressions[638] = BinaryenConst(the_module, BinaryenLiteralVec128(t242)); + } + expressions[639] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[640] = BinaryenSIMDShift(the_module, 4, expressions[638], expressions[639]); + { + uint8_t t243[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[641] = BinaryenConst(the_module, BinaryenLiteralVec128(t243)); + } + expressions[642] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[643] = BinaryenSIMDShift(the_module, 5, expressions[641], expressions[642]); + { + uint8_t t244[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[644] = BinaryenConst(the_module, BinaryenLiteralVec128(t244)); + } + expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[646] = BinaryenSIMDShift(the_module, 6, expressions[644], expressions[645]); + { + uint8_t t245[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[647] = BinaryenConst(the_module, BinaryenLiteralVec128(t245)); + } + expressions[648] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[649] = BinaryenSIMDShift(the_module, 7, expressions[647], expressions[648]); + { + uint8_t t246[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[650] = BinaryenConst(the_module, BinaryenLiteralVec128(t246)); + } + expressions[651] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[652] = BinaryenSIMDShift(the_module, 8, expressions[650], expressions[651]); + { + uint8_t t247[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[653] = BinaryenConst(the_module, BinaryenLiteralVec128(t247)); + } + expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[655] = BinaryenSIMDShift(the_module, 9, expressions[653], expressions[654]); + { + uint8_t t248[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[656] = BinaryenConst(the_module, BinaryenLiteralVec128(t248)); + } + expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[658] = BinaryenSIMDShift(the_module, 10, expressions[656], expressions[657]); + { + uint8_t t249[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[659] = BinaryenConst(the_module, BinaryenLiteralVec128(t249)); + } + expressions[660] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[661] = BinaryenSIMDShift(the_module, 11, expressions[659], expressions[660]); + expressions[662] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[663] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[662]); + expressions[664] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[665] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[664]); + expressions[666] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[667] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[666]); + expressions[668] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[669] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[668]); + expressions[670] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[671] = BinaryenSIMDLoad(the_module, 4, 0, 8, expressions[670]); + expressions[672] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[673] = BinaryenSIMDLoad(the_module, 5, 0, 8, expressions[672]); + expressions[674] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[675] = BinaryenSIMDLoad(the_module, 6, 0, 8, expressions[674]); + expressions[676] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[677] = BinaryenSIMDLoad(the_module, 7, 0, 8, expressions[676]); + expressions[678] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[679] = BinaryenSIMDLoad(the_module, 8, 0, 8, expressions[678]); + expressions[680] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); + expressions[681] = BinaryenSIMDLoad(the_module, 9, 0, 8, expressions[680]); + { + uint8_t t250[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[682] = BinaryenConst(the_module, BinaryenLiteralVec128(t250)); + } + { + uint8_t t251[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[683] = BinaryenConst(the_module, BinaryenLiteralVec128(t251)); + } + { + uint8_t mask[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + expressions[684] = BinaryenSIMDShuffle(the_module, expressions[682], expressions[683], mask); + } + { + uint8_t t252[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[685] = BinaryenConst(the_module, BinaryenLiteralVec128(t252)); + } + { + uint8_t t253[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[686] = BinaryenConst(the_module, BinaryenLiteralVec128(t253)); + } + { + uint8_t t254[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[687] = BinaryenConst(the_module, BinaryenLiteralVec128(t254)); + } + expressions[688] = BinaryenSIMDTernary(the_module, 0, expressions[685], expressions[686], expressions[687]); + { + uint8_t t255[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[689] = BinaryenConst(the_module, BinaryenLiteralVec128(t255)); + } + { + uint8_t t256[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[690] = BinaryenConst(the_module, BinaryenLiteralVec128(t256)); + } + { + uint8_t t257[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[691] = BinaryenConst(the_module, BinaryenLiteralVec128(t257)); + } + expressions[692] = BinaryenSIMDTernary(the_module, 1, expressions[689], expressions[690], expressions[691]); + { + uint8_t t258[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[693] = BinaryenConst(the_module, BinaryenLiteralVec128(t258)); + } + { + uint8_t t259[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[694] = BinaryenConst(the_module, BinaryenLiteralVec128(t259)); + } + { + uint8_t t260[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[695] = BinaryenConst(the_module, BinaryenLiteralVec128(t260)); + } + expressions[696] = BinaryenSIMDTernary(the_module, 2, expressions[693], expressions[694], expressions[695]); + { + uint8_t t261[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[697] = BinaryenConst(the_module, BinaryenLiteralVec128(t261)); + } + { + uint8_t t262[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[698] = BinaryenConst(the_module, BinaryenLiteralVec128(t262)); + } + { + uint8_t t263[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[699] = BinaryenConst(the_module, BinaryenLiteralVec128(t263)); + } + expressions[700] = BinaryenSIMDTernary(the_module, 3, expressions[697], expressions[698], expressions[699]); + { + uint8_t t264[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[701] = BinaryenConst(the_module, BinaryenLiteralVec128(t264)); + } + { + uint8_t t265[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[702] = BinaryenConst(the_module, BinaryenLiteralVec128(t265)); + } + { + uint8_t t266[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + expressions[703] = BinaryenConst(the_module, BinaryenLiteralVec128(t266)); + } + expressions[704] = BinaryenSIMDTernary(the_module, 4, expressions[701], expressions[702], expressions[703]); + expressions[705] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[706] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[707] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[708] = BinaryenMemoryInit(the_module, 0, expressions[705], expressions[706], expressions[707]); + expressions[709] = BinaryenDataDrop(the_module, 0); + expressions[710] = BinaryenConst(the_module, BinaryenLiteralInt32(2048)); + expressions[711] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[712] = BinaryenConst(the_module, BinaryenLiteralInt32(12)); + expressions[713] = BinaryenMemoryCopy(the_module, expressions[710], expressions[711], expressions[712]); + expressions[714] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[715] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + expressions[716] = BinaryenConst(the_module, BinaryenLiteralInt32(1024)); + expressions[717] = BinaryenMemoryFill(the_module, expressions[714], expressions[715], expressions[716]); { BinaryenExpressionRef children[] = { 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]); + expressions[718] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto()); + } + expressions[719] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]); + expressions[720] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]); + expressions[721] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[722] = BinaryenLoop(the_module, "in", expressions[721]); + expressions[723] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[724] = BinaryenLoop(the_module, NULL, expressions[723]); + expressions[725] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]); + expressions[726] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[727] = BinaryenBreak(the_module, "the-nothing", expressions[726], expressions[0]); + expressions[728] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); + expressions[729] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[728]); + expressions[730] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); { const char* names[] = { "the-value" }; - expressions[695] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]); + expressions[731] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]); } - expressions[696] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[732] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); { const char* names[] = { "the-nothing" }; - expressions[697] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[696], expressions[0]); + expressions[733] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[732], expressions[0]); } { BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] }; - expressions[698] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); + expressions[734] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); } - expressions[699] = BinaryenUnary(the_module, 20, expressions[698]); + expressions[735] = BinaryenUnary(the_module, 20, expressions[734]); { BinaryenExpressionRef operands[] = { expressions[8], expressions[9] }; - expressions[700] = BinaryenCall(the_module, "an-imported", operands, 2, 3); + expressions[736] = BinaryenCall(the_module, "an-imported", operands, 2, 3); } - expressions[701] = BinaryenUnary(the_module, 25, expressions[700]); - expressions[702] = BinaryenUnary(the_module, 20, expressions[701]); - expressions[703] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[737] = BinaryenUnary(the_module, 25, expressions[736]); + expressions[738] = BinaryenUnary(the_module, 20, expressions[737]); + expressions[739] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); { BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] }; - 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]); + expressions[740] = BinaryenCallIndirect(the_module, expressions[739], operands, 4, "iiIfF"); + } + expressions[741] = BinaryenUnary(the_module, 20, expressions[740]); + expressions[742] = BinaryenLocalGet(the_module, 0, 1); + expressions[743] = BinaryenDrop(the_module, expressions[742]); + expressions[744] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); + expressions[745] = BinaryenLocalSet(the_module, 0, expressions[744]); + expressions[746] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); + expressions[747] = BinaryenLocalTee(the_module, 0, expressions[746]); + expressions[748] = BinaryenDrop(the_module, expressions[747]); + expressions[749] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); + expressions[750] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[749]); + expressions[751] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); + expressions[752] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[751]); + expressions[753] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); + expressions[754] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[753]); + expressions[755] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); + expressions[756] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[755]); + expressions[757] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1); + expressions[758] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2); + expressions[759] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]); + expressions[760] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); + expressions[761] = BinaryenReturn(the_module, expressions[760]); { BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] }; - expressions[726] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); + expressions[762] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1); } - expressions[727] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); + expressions[763] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); { BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] }; - 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] = BinaryenPop(the_module, 1); - expressions[738] = BinaryenPush(the_module, expressions[737]); - expressions[739] = BinaryenPop(the_module, 2); - expressions[740] = BinaryenPush(the_module, expressions[739]); - expressions[741] = BinaryenPop(the_module, 3); - expressions[742] = BinaryenPush(the_module, expressions[741]); - expressions[743] = BinaryenPop(the_module, 4); - expressions[744] = BinaryenPush(the_module, expressions[743]); - expressions[745] = BinaryenPop(the_module, 6); - expressions[746] = BinaryenPush(the_module, expressions[745]); - expressions[747] = BinaryenPop(the_module, 7); - expressions[748] = BinaryenPush(the_module, expressions[747]); - expressions[749] = BinaryenNop(the_module); - expressions[750] = BinaryenUnreachable(the_module); + expressions[764] = BinaryenReturnCallIndirect(the_module, expressions[763], operands, 4, "iiIfF"); + } + expressions[765] = BinaryenTry(the_module, expressions[35], expressions[43]); + expressions[766] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[23]); + expressions[767] = BinaryenAtomicStore(the_module, 4, 0, expressions[23], expressions[766], 1); + expressions[768] = BinaryenAtomicWait(the_module, expressions[23], expressions[23], expressions[33], 1); + expressions[769] = BinaryenDrop(the_module, expressions[768]); + expressions[770] = BinaryenAtomicNotify(the_module, expressions[23], expressions[23]); + expressions[771] = BinaryenDrop(the_module, expressions[770]); + expressions[772] = BinaryenAtomicFence(the_module); + expressions[773] = BinaryenPop(the_module, 1); + expressions[774] = BinaryenPush(the_module, expressions[773]); + expressions[775] = BinaryenPop(the_module, 2); + expressions[776] = BinaryenPush(the_module, expressions[775]); + expressions[777] = BinaryenPop(the_module, 3); + expressions[778] = BinaryenPush(the_module, expressions[777]); + expressions[779] = BinaryenPop(the_module, 4); + expressions[780] = BinaryenPush(the_module, expressions[779]); + expressions[781] = BinaryenPop(the_module, 6); + expressions[782] = BinaryenPush(the_module, expressions[781]); + expressions[783] = BinaryenPop(the_module, 7); + expressions[784] = BinaryenPush(the_module, expressions[783]); + expressions[785] = BinaryenNop(the_module); + expressions[786] = BinaryenUnreachable(the_module); BinaryenExpressionPrint(expressions[51]); (f32.neg (f32.const -33.61199951171875) @@ -3729,41 +3909,43 @@ 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[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[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[738], expressions[740], expressions[742], expressions[744], - expressions[746], expressions[748], expressions[749], expressions[750] }; - expressions[751] = BinaryenBlock(the_module, "the-value", children, 285, BinaryenTypeAuto()); - } - expressions[752] = BinaryenDrop(the_module, expressions[751]); - { - BinaryenExpressionRef children[] = { expressions[752] }; - expressions[753] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto()); - } - expressions[754] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); - { - BinaryenExpressionRef children[] = { expressions[753], expressions[754] }; - expressions[755] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto()); + expressions[552], expressions[555], expressions[558], expressions[561], expressions[564], expressions[567], + expressions[570], expressions[573], expressions[576], expressions[579], expressions[582], expressions[585], + expressions[588], expressions[591], expressions[593], expressions[595], expressions[597], expressions[599], + expressions[601], expressions[603], expressions[605], expressions[607], expressions[610], expressions[613], + expressions[616], expressions[619], expressions[622], expressions[625], expressions[628], expressions[631], + expressions[634], expressions[637], expressions[640], expressions[643], expressions[646], expressions[649], + expressions[652], expressions[655], expressions[658], expressions[661], expressions[663], expressions[665], + expressions[667], expressions[669], expressions[671], expressions[673], expressions[675], expressions[677], + expressions[679], expressions[681], expressions[684], expressions[688], expressions[692], expressions[696], + expressions[700], expressions[704], expressions[708], expressions[709], expressions[713], expressions[717], + expressions[718], expressions[719], expressions[720], expressions[722], expressions[724], expressions[725], + expressions[727], expressions[729], expressions[730], expressions[731], expressions[733], expressions[735], + expressions[738], expressions[741], expressions[743], expressions[745], expressions[748], expressions[750], + expressions[752], expressions[754], expressions[756], expressions[757], expressions[758], expressions[759], + expressions[761], expressions[762], expressions[764], expressions[765], expressions[767], expressions[769], + expressions[771], expressions[772], expressions[774], expressions[776], expressions[778], expressions[780], + expressions[782], expressions[784], expressions[785], expressions[786] }; + expressions[787] = BinaryenBlock(the_module, "the-value", children, 297, BinaryenTypeAuto()); + } + expressions[788] = BinaryenDrop(the_module, expressions[787]); + { + BinaryenExpressionRef children[] = { expressions[788] }; + expressions[789] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto()); + } + expressions[790] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); + { + BinaryenExpressionRef children[] = { expressions[789], expressions[790] }; + expressions[791] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto()); } { BinaryenType varTypes[] = { 1, 7 }; - functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[755]); + functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[791]); } - expressions[756] = BinaryenConst(the_module, BinaryenLiteralInt32(7)); - globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[756]); - expressions[757] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5)); - globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[757]); + expressions[792] = BinaryenConst(the_module, BinaryenLiteralInt32(7)); + globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[792]); + expressions[793] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5)); + globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[793]); { BinaryenType paramTypes[] = { 1, 4 }; functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2); @@ -3771,18 +3953,18 @@ int main() { BinaryenAddFunctionImport(the_module, "an-imported", "module", "base", functionTypes[2]); exports[0] = BinaryenAddFunctionExport(the_module, "kitchen()sinker", "kitchen_sinker"); BinaryenFunctionGetName(functions[0]); - expressions[758] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); + expressions[794] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); { const char* funcNames[] = { "kitchen()sinker" }; - BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1, expressions[758]); + BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1, expressions[794]); } - expressions[759] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); + expressions[795] = 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[759], expressions[0] }; + BinaryenExpressionRef segmentOffsets[] = { expressions[795], expressions[0] }; BinaryenIndex segmentSizes[] = { 12, 12 }; BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1); } @@ -3790,10 +3972,10 @@ int main() { BinaryenType paramTypes[] = { 0 }; functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); } - expressions[760] = BinaryenNop(the_module); + expressions[796] = BinaryenNop(the_module); { BinaryenType varTypes[] = { 0 }; - functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[760]); + functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[796]); } BinaryenSetStart(the_module, functions[1]); { @@ -4808,6 +4990,30 @@ int main() { ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -4826,6 +5032,30 @@ int main() { ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -4856,6 +5086,30 @@ int main() { ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (f32x4.div (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (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 7c1959742..dd6016d71 100644 --- a/test/example/c-api-kitchen-sink.txt.txt +++ b/test/example/c-api-kitchen-sink.txt.txt @@ -1004,6 +1004,30 @@ ) ) (drop + (i16x8.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i16x8.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i32x4.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1022,6 +1046,30 @@ ) ) (drop + (i8x16.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i8x16.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (i64x2.add (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) @@ -1052,6 +1100,30 @@ ) ) (drop + (i32x4.min_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.min_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_s + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop + (i32x4.max_u + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) + ) + ) + (drop (f32x4.div (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d) diff --git a/test/simd.wast b/test/simd.wast index 364b9e798..334819538 100644 --- a/test/simd.wast +++ b/test/simd.wast @@ -499,6 +499,30 @@ (local.get $1) ) ) + (func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.min_u (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_s (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_u (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_u + (local.get $0) + (local.get $1) + ) + ) (func $i16x8.neg (param $0 v128) (result v128) (i16x8.neg (local.get $0) @@ -574,6 +598,30 @@ (local.get $1) ) ) + (func $i16x8.min_s (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.min_u (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_s (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_u (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_u + (local.get $0) + (local.get $1) + ) + ) (func $i32x4.neg (param $0 v128) (result v128) (i32x4.neg (local.get $0) @@ -625,6 +673,30 @@ (local.get $1) ) ) + (func $i32x4.min_s (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.min_u (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_s (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_u (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_u + (local.get $0) + (local.get $1) + ) + ) (func $i64x2.neg (param $0 v128) (result v128) (i64x2.neg (local.get $0) diff --git a/test/simd.wast.from-wast b/test/simd.wast.from-wast index 4fab1e544..9cbf42d71 100644 --- a/test/simd.wast.from-wast +++ b/test/simd.wast.from-wast @@ -515,462 +515,534 @@ (local.get $1) ) ) - (func $i16x8.neg (; 89 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i8x16.min_s (; 89 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.min_u (; 90 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_s (; 91 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_u (; 92 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.neg (; 93 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i16x8.neg (local.get $0) ) ) - (func $i16x8.any_true (; 90 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i16x8.any_true (; 94 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i16x8.any_true (local.get $0) ) ) - (func $i16x8.all_true (; 91 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i16x8.all_true (; 95 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i16x8.all_true (local.get $0) ) ) - (func $i16x8.shl (; 92 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shl (; 96 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i16x8.shl (local.get $0) (local.get $1) ) ) - (func $i16x8.shr_s (; 93 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shr_s (; 97 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_s (local.get $0) (local.get $1) ) ) - (func $i16x8.shr_u (; 94 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shr_u (; 98 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_u (local.get $0) (local.get $1) ) ) - (func $i16x8.add (; 95 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add (; 99 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.add (local.get $0) (local.get $1) ) ) - (func $i16x8.add_saturate_s (; 96 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add_saturate_s (; 100 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_s (local.get $0) (local.get $1) ) ) - (func $i16x8.add_saturate_u (; 97 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add_saturate_u (; 101 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_u (local.get $0) (local.get $1) ) ) - (func $i16x8.sub (; 98 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub (; 102 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub (local.get $0) (local.get $1) ) ) - (func $i16x8.sub_saturate_s (; 99 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub_saturate_s (; 103 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_s (local.get $0) (local.get $1) ) ) - (func $i16x8.sub_saturate_u (; 100 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub_saturate_u (; 104 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_u (local.get $0) (local.get $1) ) ) - (func $i16x8.mul (; 101 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.mul (; 105 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.mul (local.get $0) (local.get $1) ) ) - (func $i32x4.neg (; 102 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i16x8.min_s (; 106 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.min_u (; 107 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_s (; 108 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_u (; 109 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.neg (; 110 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.neg (local.get $0) ) ) - (func $i32x4.any_true (; 103 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i32x4.any_true (; 111 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i32x4.any_true (local.get $0) ) ) - (func $i32x4.all_true (; 104 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i32x4.all_true (; 112 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i32x4.all_true (local.get $0) ) ) - (func $i32x4.shl (; 105 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shl (; 113 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i32x4.shl (local.get $0) (local.get $1) ) ) - (func $i32x4.shr_s (; 106 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shr_s (; 114 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_s (local.get $0) (local.get $1) ) ) - (func $i32x4.shr_u (; 107 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shr_u (; 115 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_u (local.get $0) (local.get $1) ) ) - (func $i32x4.add (; 108 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.add (; 116 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i32x4.add (local.get $0) (local.get $1) ) ) - (func $i32x4.sub (; 109 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.sub (; 117 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i32x4.sub (local.get $0) (local.get $1) ) ) - (func $i32x4.mul (; 110 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.mul (; 118 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i32x4.mul (local.get $0) (local.get $1) ) ) - (func $i64x2.neg (; 111 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.min_s (; 119 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.min_u (; 120 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_s (; 121 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_u (; 122 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i64x2.neg (; 123 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i64x2.neg (local.get $0) ) ) - (func $i64x2.any_true (; 112 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i64x2.any_true (; 124 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i64x2.any_true (local.get $0) ) ) - (func $i64x2.all_true (; 113 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) + (func $i64x2.all_true (; 125 ;) (type $FUNCSIG$iV) (param $0 v128) (result i32) (i64x2.all_true (local.get $0) ) ) - (func $i64x2.shl (; 114 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shl (; 126 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i64x2.shl (local.get $0) (local.get $1) ) ) - (func $i64x2.shr_s (; 115 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shr_s (; 127 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_s (local.get $0) (local.get $1) ) ) - (func $i64x2.shr_u (; 116 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shr_u (; 128 ;) (type $FUNCSIG$VVi) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_u (local.get $0) (local.get $1) ) ) - (func $i64x2.add (; 117 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i64x2.add (; 129 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i64x2.add (local.get $0) (local.get $1) ) ) - (func $i64x2.sub (; 118 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i64x2.sub (; 130 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i64x2.sub (local.get $0) (local.get $1) ) ) - (func $f32x4.add (; 119 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.add (; 131 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.add (local.get $0) (local.get $1) ) ) - (func $f32x4.sub (; 120 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.sub (; 132 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.sub (local.get $0) (local.get $1) ) ) - (func $f32x4.mul (; 121 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.mul (; 133 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.mul (local.get $0) (local.get $1) ) ) - (func $f32x4.div (; 122 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.div (; 134 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.div (local.get $0) (local.get $1) ) ) - (func $f32x4.min (; 123 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.min (; 135 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.min (local.get $0) (local.get $1) ) ) - (func $f32x4.max (; 124 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.max (; 136 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f32x4.max (local.get $0) (local.get $1) ) ) - (func $f32x4.abs (; 125 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f32x4.abs (; 137 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f32x4.abs (local.get $0) ) ) - (func $f32x4.neg (; 126 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f32x4.neg (; 138 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f32x4.neg (local.get $0) ) ) - (func $f32x4.sqrt (; 127 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f32x4.sqrt (; 139 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f32x4.sqrt (local.get $0) ) ) - (func $f32x4.qfma (; 128 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f32x4.qfma (; 140 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f32x4.qfms (; 129 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f32x4.qfms (; 141 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f64x2.add (; 130 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.add (; 142 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.add (local.get $0) (local.get $1) ) ) - (func $f64x2.sub (; 131 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.sub (; 143 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.sub (local.get $0) (local.get $1) ) ) - (func $f64x2.mul (; 132 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.mul (; 144 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.mul (local.get $0) (local.get $1) ) ) - (func $f64x2.div (; 133 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.div (; 145 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.div (local.get $0) (local.get $1) ) ) - (func $f64x2.min (; 134 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.min (; 146 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.min (local.get $0) (local.get $1) ) ) - (func $f64x2.max (; 135 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.max (; 147 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (f64x2.max (local.get $0) (local.get $1) ) ) - (func $f64x2.abs (; 136 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f64x2.abs (; 148 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f64x2.abs (local.get $0) ) ) - (func $f64x2.neg (; 137 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f64x2.neg (; 149 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f64x2.neg (local.get $0) ) ) - (func $f64x2.sqrt (; 138 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f64x2.sqrt (; 150 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f64x2.sqrt (local.get $0) ) ) - (func $f64x2.qfma (; 139 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f64x2.qfma (; 151 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f64x2.qfms (; 140 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f64x2.qfms (; 152 ;) (type $FUNCSIG$VVVV) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $i32x4.trunc_sat_f32x4_s (; 141 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.trunc_sat_f32x4_s (; 153 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get $0) ) ) - (func $i32x4.trunc_sat_f32x4_u (; 142 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.trunc_sat_f32x4_u (; 154 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get $0) ) ) - (func $i64x2.trunc_sat_f64x2_s (; 143 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i64x2.trunc_sat_f64x2_s (; 155 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_s (local.get $0) ) ) - (func $i64x2.trunc_sat_f64x2_u (; 144 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i64x2.trunc_sat_f64x2_u (; 156 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_u (local.get $0) ) ) - (func $f32x4.convert_i32x4_s (; 145 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f32x4.convert_i32x4_s (; 157 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f32x4.convert_i32x4_s (local.get $0) ) ) - (func $f32x4.convert_i32x4_u (; 146 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f32x4.convert_i32x4_u (; 158 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f32x4.convert_i32x4_u (local.get $0) ) ) - (func $f64x2.convert_i64x2_s (; 147 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f64x2.convert_i64x2_s (; 159 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f64x2.convert_i64x2_s (local.get $0) ) ) - (func $f64x2.convert_i64x2_u (; 148 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $f64x2.convert_i64x2_u (; 160 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (f64x2.convert_i64x2_u (local.get $0) ) ) - (func $v8x16.load_splat (; 149 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $v8x16.load_splat (; 161 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (v8x16.load_splat (local.get $0) ) ) - (func $v16x8.load_splat (; 150 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $v16x8.load_splat (; 162 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (v16x8.load_splat (local.get $0) ) ) - (func $v32x4.load_splat (; 151 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $v32x4.load_splat (; 163 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (v32x4.load_splat (local.get $0) ) ) - (func $v64x2.load_splat (; 152 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $v64x2.load_splat (; 164 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (v64x2.load_splat (local.get $0) ) ) - (func $i8x16.narrow_i16x8_s (; 153 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i8x16.narrow_i16x8_s (; 165 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_s (local.get $0) (local.get $1) ) ) - (func $i8x16.narrow_i16x8_u (; 154 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i8x16.narrow_i16x8_u (; 166 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_u (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_s (; 155 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_s (; 167 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_s (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_u (; 156 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_u (; 168 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_u (local.get $0) (local.get $1) ) ) - (func $i16x8.widen_low_i8x16_s (; 157 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_s (; 169 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_s (; 158 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_s (; 170 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_low_i8x16_u (; 159 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_u (; 171 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_u (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_u (; 160 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_u (; 172 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_u (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_s (; 161 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_s (; 173 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_s (; 162 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_s (; 174 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_u (; 163 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_u (; 175 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_u (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_u (; 164 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_u (; 176 ;) (type $FUNCSIG$VV) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_u (local.get $0) ) ) - (func $i16x8.load8x8_u (; 165 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i16x8.load8x8_u (; 177 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i16x8.load8x8_u (local.get $0) ) ) - (func $i16x8.load8x8_s (; 166 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i16x8.load8x8_s (; 178 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i16x8.load8x8_s (local.get $0) ) ) - (func $i32x4.load16x4_s (; 167 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i32x4.load16x4_s (; 179 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i32x4.load16x4_s (local.get $0) ) ) - (func $i32x4.load16x4_u (; 168 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i32x4.load16x4_u (; 180 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i32x4.load16x4_u (local.get $0) ) ) - (func $i64x2.load32x2_s (; 169 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i64x2.load32x2_s (; 181 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i64x2.load32x2_s (local.get $0) ) ) - (func $i64x2.load32x2_u (; 170 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) + (func $i64x2.load32x2_u (; 182 ;) (type $FUNCSIG$Vi) (param $0 i32) (result v128) (i64x2.load32x2_u (local.get $0) ) ) - (func $v8x16.swizzle (; 171 ;) (type $FUNCSIG$VVV) (param $0 v128) (param $1 v128) (result v128) + (func $v8x16.swizzle (; 183 ;) (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 5a40e0607..5b17cdf1b 100644 --- a/test/simd.wast.fromBinary +++ b/test/simd.wast.fromBinary @@ -515,462 +515,534 @@ (local.get $1) ) ) - (func $i16x8.neg (; 89 ;) (type $14) (param $0 v128) (result v128) + (func $i8x16.min_s (; 89 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.min_u (; 90 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_s (; 91 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i8x16.max_u (; 92 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.neg (; 93 ;) (type $14) (param $0 v128) (result v128) (i16x8.neg (local.get $0) ) ) - (func $i16x8.any_true (; 90 ;) (type $4) (param $0 v128) (result i32) + (func $i16x8.any_true (; 94 ;) (type $4) (param $0 v128) (result i32) (i16x8.any_true (local.get $0) ) ) - (func $i16x8.all_true (; 91 ;) (type $4) (param $0 v128) (result i32) + (func $i16x8.all_true (; 95 ;) (type $4) (param $0 v128) (result i32) (i16x8.all_true (local.get $0) ) ) - (func $i16x8.shl (; 92 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shl (; 96 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shl (local.get $0) (local.get $1) ) ) - (func $i16x8.shr_s (; 93 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shr_s (; 97 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_s (local.get $0) (local.get $1) ) ) - (func $i16x8.shr_u (; 94 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i16x8.shr_u (; 98 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_u (local.get $0) (local.get $1) ) ) - (func $i16x8.add (; 95 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add (; 99 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add (local.get $0) (local.get $1) ) ) - (func $i16x8.add_saturate_s (; 96 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add_saturate_s (; 100 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_s (local.get $0) (local.get $1) ) ) - (func $i16x8.add_saturate_u (; 97 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.add_saturate_u (; 101 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_u (local.get $0) (local.get $1) ) ) - (func $i16x8.sub (; 98 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub (; 102 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub (local.get $0) (local.get $1) ) ) - (func $i16x8.sub_saturate_s (; 99 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub_saturate_s (; 103 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_s (local.get $0) (local.get $1) ) ) - (func $i16x8.sub_saturate_u (; 100 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.sub_saturate_u (; 104 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_u (local.get $0) (local.get $1) ) ) - (func $i16x8.mul (; 101 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.mul (; 105 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.mul (local.get $0) (local.get $1) ) ) - (func $i32x4.neg (; 102 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.min_s (; 106 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.min_u (; 107 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_s (; 108 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i16x8.max_u (; 109 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.neg (; 110 ;) (type $14) (param $0 v128) (result v128) (i32x4.neg (local.get $0) ) ) - (func $i32x4.any_true (; 103 ;) (type $4) (param $0 v128) (result i32) + (func $i32x4.any_true (; 111 ;) (type $4) (param $0 v128) (result i32) (i32x4.any_true (local.get $0) ) ) - (func $i32x4.all_true (; 104 ;) (type $4) (param $0 v128) (result i32) + (func $i32x4.all_true (; 112 ;) (type $4) (param $0 v128) (result i32) (i32x4.all_true (local.get $0) ) ) - (func $i32x4.shl (; 105 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shl (; 113 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shl (local.get $0) (local.get $1) ) ) - (func $i32x4.shr_s (; 106 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shr_s (; 114 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_s (local.get $0) (local.get $1) ) ) - (func $i32x4.shr_u (; 107 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i32x4.shr_u (; 115 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_u (local.get $0) (local.get $1) ) ) - (func $i32x4.add (; 108 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.add (; 116 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.add (local.get $0) (local.get $1) ) ) - (func $i32x4.sub (; 109 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.sub (; 117 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.sub (local.get $0) (local.get $1) ) ) - (func $i32x4.mul (; 110 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i32x4.mul (; 118 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.mul (local.get $0) (local.get $1) ) ) - (func $i64x2.neg (; 111 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.min_s (; 119 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.min_u (; 120 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_s (; 121 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $i32x4.max_u (; 122 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $i64x2.neg (; 123 ;) (type $14) (param $0 v128) (result v128) (i64x2.neg (local.get $0) ) ) - (func $i64x2.any_true (; 112 ;) (type $4) (param $0 v128) (result i32) + (func $i64x2.any_true (; 124 ;) (type $4) (param $0 v128) (result i32) (i64x2.any_true (local.get $0) ) ) - (func $i64x2.all_true (; 113 ;) (type $4) (param $0 v128) (result i32) + (func $i64x2.all_true (; 125 ;) (type $4) (param $0 v128) (result i32) (i64x2.all_true (local.get $0) ) ) - (func $i64x2.shl (; 114 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shl (; 126 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shl (local.get $0) (local.get $1) ) ) - (func $i64x2.shr_s (; 115 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shr_s (; 127 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_s (local.get $0) (local.get $1) ) ) - (func $i64x2.shr_u (; 116 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $i64x2.shr_u (; 128 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_u (local.get $0) (local.get $1) ) ) - (func $i64x2.add (; 117 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i64x2.add (; 129 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i64x2.add (local.get $0) (local.get $1) ) ) - (func $i64x2.sub (; 118 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i64x2.sub (; 130 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i64x2.sub (local.get $0) (local.get $1) ) ) - (func $f32x4.add (; 119 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.add (; 131 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.add (local.get $0) (local.get $1) ) ) - (func $f32x4.sub (; 120 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.sub (; 132 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.sub (local.get $0) (local.get $1) ) ) - (func $f32x4.mul (; 121 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.mul (; 133 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.mul (local.get $0) (local.get $1) ) ) - (func $f32x4.div (; 122 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.div (; 134 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.div (local.get $0) (local.get $1) ) ) - (func $f32x4.min (; 123 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.min (; 135 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.min (local.get $0) (local.get $1) ) ) - (func $f32x4.max (; 124 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f32x4.max (; 136 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.max (local.get $0) (local.get $1) ) ) - (func $f32x4.abs (; 125 ;) (type $14) (param $0 v128) (result v128) + (func $f32x4.abs (; 137 ;) (type $14) (param $0 v128) (result v128) (f32x4.abs (local.get $0) ) ) - (func $f32x4.neg (; 126 ;) (type $14) (param $0 v128) (result v128) + (func $f32x4.neg (; 138 ;) (type $14) (param $0 v128) (result v128) (f32x4.neg (local.get $0) ) ) - (func $f32x4.sqrt (; 127 ;) (type $14) (param $0 v128) (result v128) + (func $f32x4.sqrt (; 139 ;) (type $14) (param $0 v128) (result v128) (f32x4.sqrt (local.get $0) ) ) - (func $f32x4.qfma (; 128 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f32x4.qfma (; 140 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f32x4.qfms (; 129 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f32x4.qfms (; 141 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f64x2.add (; 130 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.add (; 142 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.add (local.get $0) (local.get $1) ) ) - (func $f64x2.sub (; 131 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.sub (; 143 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.sub (local.get $0) (local.get $1) ) ) - (func $f64x2.mul (; 132 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.mul (; 144 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.mul (local.get $0) (local.get $1) ) ) - (func $f64x2.div (; 133 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.div (; 145 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.div (local.get $0) (local.get $1) ) ) - (func $f64x2.min (; 134 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.min (; 146 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.min (local.get $0) (local.get $1) ) ) - (func $f64x2.max (; 135 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $f64x2.max (; 147 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.max (local.get $0) (local.get $1) ) ) - (func $f64x2.abs (; 136 ;) (type $14) (param $0 v128) (result v128) + (func $f64x2.abs (; 148 ;) (type $14) (param $0 v128) (result v128) (f64x2.abs (local.get $0) ) ) - (func $f64x2.neg (; 137 ;) (type $14) (param $0 v128) (result v128) + (func $f64x2.neg (; 149 ;) (type $14) (param $0 v128) (result v128) (f64x2.neg (local.get $0) ) ) - (func $f64x2.sqrt (; 138 ;) (type $14) (param $0 v128) (result v128) + (func $f64x2.sqrt (; 150 ;) (type $14) (param $0 v128) (result v128) (f64x2.sqrt (local.get $0) ) ) - (func $f64x2.qfma (; 139 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f64x2.qfma (; 151 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $f64x2.qfms (; 140 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $f64x2.qfms (; 152 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $i32x4.trunc_sat_f32x4_s (; 141 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.trunc_sat_f32x4_s (; 153 ;) (type $14) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get $0) ) ) - (func $i32x4.trunc_sat_f32x4_u (; 142 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.trunc_sat_f32x4_u (; 154 ;) (type $14) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get $0) ) ) - (func $i64x2.trunc_sat_f64x2_s (; 143 ;) (type $14) (param $0 v128) (result v128) + (func $i64x2.trunc_sat_f64x2_s (; 155 ;) (type $14) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_s (local.get $0) ) ) - (func $i64x2.trunc_sat_f64x2_u (; 144 ;) (type $14) (param $0 v128) (result v128) + (func $i64x2.trunc_sat_f64x2_u (; 156 ;) (type $14) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_u (local.get $0) ) ) - (func $f32x4.convert_i32x4_s (; 145 ;) (type $14) (param $0 v128) (result v128) + (func $f32x4.convert_i32x4_s (; 157 ;) (type $14) (param $0 v128) (result v128) (f32x4.convert_i32x4_s (local.get $0) ) ) - (func $f32x4.convert_i32x4_u (; 146 ;) (type $14) (param $0 v128) (result v128) + (func $f32x4.convert_i32x4_u (; 158 ;) (type $14) (param $0 v128) (result v128) (f32x4.convert_i32x4_u (local.get $0) ) ) - (func $f64x2.convert_i64x2_s (; 147 ;) (type $14) (param $0 v128) (result v128) + (func $f64x2.convert_i64x2_s (; 159 ;) (type $14) (param $0 v128) (result v128) (f64x2.convert_i64x2_s (local.get $0) ) ) - (func $f64x2.convert_i64x2_u (; 148 ;) (type $14) (param $0 v128) (result v128) + (func $f64x2.convert_i64x2_u (; 160 ;) (type $14) (param $0 v128) (result v128) (f64x2.convert_i64x2_u (local.get $0) ) ) - (func $v8x16.load_splat (; 149 ;) (type $0) (param $0 i32) (result v128) + (func $v8x16.load_splat (; 161 ;) (type $0) (param $0 i32) (result v128) (v8x16.load_splat (local.get $0) ) ) - (func $v16x8.load_splat (; 150 ;) (type $0) (param $0 i32) (result v128) + (func $v16x8.load_splat (; 162 ;) (type $0) (param $0 i32) (result v128) (v16x8.load_splat (local.get $0) ) ) - (func $v32x4.load_splat (; 151 ;) (type $0) (param $0 i32) (result v128) + (func $v32x4.load_splat (; 163 ;) (type $0) (param $0 i32) (result v128) (v32x4.load_splat (local.get $0) ) ) - (func $v64x2.load_splat (; 152 ;) (type $0) (param $0 i32) (result v128) + (func $v64x2.load_splat (; 164 ;) (type $0) (param $0 i32) (result v128) (v64x2.load_splat (local.get $0) ) ) - (func $i8x16.narrow_i16x8_s (; 153 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i8x16.narrow_i16x8_s (; 165 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_s (local.get $0) (local.get $1) ) ) - (func $i8x16.narrow_i16x8_u (; 154 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i8x16.narrow_i16x8_u (; 166 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_u (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_s (; 155 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_s (; 167 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_s (local.get $0) (local.get $1) ) ) - (func $i16x8.narrow_i32x4_u (; 156 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $i16x8.narrow_i32x4_u (; 168 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_u (local.get $0) (local.get $1) ) ) - (func $i16x8.widen_low_i8x16_s (; 157 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_s (; 169 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_s (; 158 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_s (; 170 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_s (local.get $0) ) ) - (func $i16x8.widen_low_i8x16_u (; 159 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_low_i8x16_u (; 171 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_u (local.get $0) ) ) - (func $i16x8.widen_high_i8x16_u (; 160 ;) (type $14) (param $0 v128) (result v128) + (func $i16x8.widen_high_i8x16_u (; 172 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_u (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_s (; 161 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_s (; 173 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_s (; 162 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_s (; 174 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_s (local.get $0) ) ) - (func $i32x4.widen_low_i16x8_u (; 163 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_low_i16x8_u (; 175 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_u (local.get $0) ) ) - (func $i32x4.widen_high_i16x8_u (; 164 ;) (type $14) (param $0 v128) (result v128) + (func $i32x4.widen_high_i16x8_u (; 176 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_u (local.get $0) ) ) - (func $i16x8.load8x8_u (; 165 ;) (type $0) (param $0 i32) (result v128) + (func $i16x8.load8x8_u (; 177 ;) (type $0) (param $0 i32) (result v128) (i16x8.load8x8_u (local.get $0) ) ) - (func $i16x8.load8x8_s (; 166 ;) (type $0) (param $0 i32) (result v128) + (func $i16x8.load8x8_s (; 178 ;) (type $0) (param $0 i32) (result v128) (i16x8.load8x8_s (local.get $0) ) ) - (func $i32x4.load16x4_s (; 167 ;) (type $0) (param $0 i32) (result v128) + (func $i32x4.load16x4_s (; 179 ;) (type $0) (param $0 i32) (result v128) (i32x4.load16x4_s (local.get $0) ) ) - (func $i32x4.load16x4_u (; 168 ;) (type $0) (param $0 i32) (result v128) + (func $i32x4.load16x4_u (; 180 ;) (type $0) (param $0 i32) (result v128) (i32x4.load16x4_u (local.get $0) ) ) - (func $i64x2.load32x2_s (; 169 ;) (type $0) (param $0 i32) (result v128) + (func $i64x2.load32x2_s (; 181 ;) (type $0) (param $0 i32) (result v128) (i64x2.load32x2_s (local.get $0) ) ) - (func $i64x2.load32x2_u (; 170 ;) (type $0) (param $0 i32) (result v128) + (func $i64x2.load32x2_u (; 182 ;) (type $0) (param $0 i32) (result v128) (i64x2.load32x2_u (local.get $0) ) ) - (func $v8x16.swizzle (; 171 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $v8x16.swizzle (; 183 ;) (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 2d20bdc97..767dc51ed 100644 --- a/test/simd.wast.fromBinary.noDebugInfo +++ b/test/simd.wast.fromBinary.noDebugInfo @@ -515,462 +515,534 @@ (local.get $1) ) ) - (func $89 (; 89 ;) (type $14) (param $0 v128) (result v128) + (func $89 (; 89 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $90 (; 90 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $91 (; 91 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $92 (; 92 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i8x16.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $93 (; 93 ;) (type $14) (param $0 v128) (result v128) (i16x8.neg (local.get $0) ) ) - (func $90 (; 90 ;) (type $4) (param $0 v128) (result i32) + (func $94 (; 94 ;) (type $4) (param $0 v128) (result i32) (i16x8.any_true (local.get $0) ) ) - (func $91 (; 91 ;) (type $4) (param $0 v128) (result i32) + (func $95 (; 95 ;) (type $4) (param $0 v128) (result i32) (i16x8.all_true (local.get $0) ) ) - (func $92 (; 92 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $96 (; 96 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shl (local.get $0) (local.get $1) ) ) - (func $93 (; 93 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $97 (; 97 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_s (local.get $0) (local.get $1) ) ) - (func $94 (; 94 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $98 (; 98 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_u (local.get $0) (local.get $1) ) ) - (func $95 (; 95 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $99 (; 99 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add (local.get $0) (local.get $1) ) ) - (func $96 (; 96 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $100 (; 100 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_s (local.get $0) (local.get $1) ) ) - (func $97 (; 97 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $101 (; 101 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_u (local.get $0) (local.get $1) ) ) - (func $98 (; 98 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $102 (; 102 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub (local.get $0) (local.get $1) ) ) - (func $99 (; 99 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $103 (; 103 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_s (local.get $0) (local.get $1) ) ) - (func $100 (; 100 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $104 (; 104 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_u (local.get $0) (local.get $1) ) ) - (func $101 (; 101 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $105 (; 105 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.mul (local.get $0) (local.get $1) ) ) - (func $102 (; 102 ;) (type $14) (param $0 v128) (result v128) + (func $106 (; 106 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $107 (; 107 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $108 (; 108 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $109 (; 109 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i16x8.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $110 (; 110 ;) (type $14) (param $0 v128) (result v128) (i32x4.neg (local.get $0) ) ) - (func $103 (; 103 ;) (type $4) (param $0 v128) (result i32) + (func $111 (; 111 ;) (type $4) (param $0 v128) (result i32) (i32x4.any_true (local.get $0) ) ) - (func $104 (; 104 ;) (type $4) (param $0 v128) (result i32) + (func $112 (; 112 ;) (type $4) (param $0 v128) (result i32) (i32x4.all_true (local.get $0) ) ) - (func $105 (; 105 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $113 (; 113 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shl (local.get $0) (local.get $1) ) ) - (func $106 (; 106 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $114 (; 114 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_s (local.get $0) (local.get $1) ) ) - (func $107 (; 107 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $115 (; 115 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_u (local.get $0) (local.get $1) ) ) - (func $108 (; 108 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $116 (; 116 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.add (local.get $0) (local.get $1) ) ) - (func $109 (; 109 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $117 (; 117 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.sub (local.get $0) (local.get $1) ) ) - (func $110 (; 110 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $118 (; 118 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i32x4.mul (local.get $0) (local.get $1) ) ) - (func $111 (; 111 ;) (type $14) (param $0 v128) (result v128) + (func $119 (; 119 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_s + (local.get $0) + (local.get $1) + ) + ) + (func $120 (; 120 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.min_u + (local.get $0) + (local.get $1) + ) + ) + (func $121 (; 121 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_s + (local.get $0) + (local.get $1) + ) + ) + (func $122 (; 122 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (i32x4.max_u + (local.get $0) + (local.get $1) + ) + ) + (func $123 (; 123 ;) (type $14) (param $0 v128) (result v128) (i64x2.neg (local.get $0) ) ) - (func $112 (; 112 ;) (type $4) (param $0 v128) (result i32) + (func $124 (; 124 ;) (type $4) (param $0 v128) (result i32) (i64x2.any_true (local.get $0) ) ) - (func $113 (; 113 ;) (type $4) (param $0 v128) (result i32) + (func $125 (; 125 ;) (type $4) (param $0 v128) (result i32) (i64x2.all_true (local.get $0) ) ) - (func $114 (; 114 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $126 (; 126 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shl (local.get $0) (local.get $1) ) ) - (func $115 (; 115 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $127 (; 127 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_s (local.get $0) (local.get $1) ) ) - (func $116 (; 116 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) + (func $128 (; 128 ;) (type $5) (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_u (local.get $0) (local.get $1) ) ) - (func $117 (; 117 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $129 (; 129 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i64x2.add (local.get $0) (local.get $1) ) ) - (func $118 (; 118 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $130 (; 130 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i64x2.sub (local.get $0) (local.get $1) ) ) - (func $119 (; 119 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $131 (; 131 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.add (local.get $0) (local.get $1) ) ) - (func $120 (; 120 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $132 (; 132 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.sub (local.get $0) (local.get $1) ) ) - (func $121 (; 121 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $133 (; 133 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.mul (local.get $0) (local.get $1) ) ) - (func $122 (; 122 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $134 (; 134 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.div (local.get $0) (local.get $1) ) ) - (func $123 (; 123 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $135 (; 135 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.min (local.get $0) (local.get $1) ) ) - (func $124 (; 124 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $136 (; 136 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f32x4.max (local.get $0) (local.get $1) ) ) - (func $125 (; 125 ;) (type $14) (param $0 v128) (result v128) + (func $137 (; 137 ;) (type $14) (param $0 v128) (result v128) (f32x4.abs (local.get $0) ) ) - (func $126 (; 126 ;) (type $14) (param $0 v128) (result v128) + (func $138 (; 138 ;) (type $14) (param $0 v128) (result v128) (f32x4.neg (local.get $0) ) ) - (func $127 (; 127 ;) (type $14) (param $0 v128) (result v128) + (func $139 (; 139 ;) (type $14) (param $0 v128) (result v128) (f32x4.sqrt (local.get $0) ) ) - (func $128 (; 128 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $140 (; 140 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $129 (; 129 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $141 (; 141 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $130 (; 130 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $142 (; 142 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.add (local.get $0) (local.get $1) ) ) - (func $131 (; 131 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $143 (; 143 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.sub (local.get $0) (local.get $1) ) ) - (func $132 (; 132 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $144 (; 144 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.mul (local.get $0) (local.get $1) ) ) - (func $133 (; 133 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $145 (; 145 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.div (local.get $0) (local.get $1) ) ) - (func $134 (; 134 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $146 (; 146 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.min (local.get $0) (local.get $1) ) ) - (func $135 (; 135 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $147 (; 147 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (f64x2.max (local.get $0) (local.get $1) ) ) - (func $136 (; 136 ;) (type $14) (param $0 v128) (result v128) + (func $148 (; 148 ;) (type $14) (param $0 v128) (result v128) (f64x2.abs (local.get $0) ) ) - (func $137 (; 137 ;) (type $14) (param $0 v128) (result v128) + (func $149 (; 149 ;) (type $14) (param $0 v128) (result v128) (f64x2.neg (local.get $0) ) ) - (func $138 (; 138 ;) (type $14) (param $0 v128) (result v128) + (func $150 (; 150 ;) (type $14) (param $0 v128) (result v128) (f64x2.sqrt (local.get $0) ) ) - (func $139 (; 139 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $151 (; 151 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfma (local.get $0) (local.get $1) (local.get $2) ) ) - (func $140 (; 140 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (func $152 (; 152 ;) (type $15) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfms (local.get $0) (local.get $1) (local.get $2) ) ) - (func $141 (; 141 ;) (type $14) (param $0 v128) (result v128) + (func $153 (; 153 ;) (type $14) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get $0) ) ) - (func $142 (; 142 ;) (type $14) (param $0 v128) (result v128) + (func $154 (; 154 ;) (type $14) (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get $0) ) ) - (func $143 (; 143 ;) (type $14) (param $0 v128) (result v128) + (func $155 (; 155 ;) (type $14) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_s (local.get $0) ) ) - (func $144 (; 144 ;) (type $14) (param $0 v128) (result v128) + (func $156 (; 156 ;) (type $14) (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_u (local.get $0) ) ) - (func $145 (; 145 ;) (type $14) (param $0 v128) (result v128) + (func $157 (; 157 ;) (type $14) (param $0 v128) (result v128) (f32x4.convert_i32x4_s (local.get $0) ) ) - (func $146 (; 146 ;) (type $14) (param $0 v128) (result v128) + (func $158 (; 158 ;) (type $14) (param $0 v128) (result v128) (f32x4.convert_i32x4_u (local.get $0) ) ) - (func $147 (; 147 ;) (type $14) (param $0 v128) (result v128) + (func $159 (; 159 ;) (type $14) (param $0 v128) (result v128) (f64x2.convert_i64x2_s (local.get $0) ) ) - (func $148 (; 148 ;) (type $14) (param $0 v128) (result v128) + (func $160 (; 160 ;) (type $14) (param $0 v128) (result v128) (f64x2.convert_i64x2_u (local.get $0) ) ) - (func $149 (; 149 ;) (type $0) (param $0 i32) (result v128) + (func $161 (; 161 ;) (type $0) (param $0 i32) (result v128) (v8x16.load_splat (local.get $0) ) ) - (func $150 (; 150 ;) (type $0) (param $0 i32) (result v128) + (func $162 (; 162 ;) (type $0) (param $0 i32) (result v128) (v16x8.load_splat (local.get $0) ) ) - (func $151 (; 151 ;) (type $0) (param $0 i32) (result v128) + (func $163 (; 163 ;) (type $0) (param $0 i32) (result v128) (v32x4.load_splat (local.get $0) ) ) - (func $152 (; 152 ;) (type $0) (param $0 i32) (result v128) + (func $164 (; 164 ;) (type $0) (param $0 i32) (result v128) (v64x2.load_splat (local.get $0) ) ) - (func $153 (; 153 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $165 (; 165 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_s (local.get $0) (local.get $1) ) ) - (func $154 (; 154 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $166 (; 166 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_u (local.get $0) (local.get $1) ) ) - (func $155 (; 155 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $167 (; 167 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_s (local.get $0) (local.get $1) ) ) - (func $156 (; 156 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $168 (; 168 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_u (local.get $0) (local.get $1) ) ) - (func $157 (; 157 ;) (type $14) (param $0 v128) (result v128) + (func $169 (; 169 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_s (local.get $0) ) ) - (func $158 (; 158 ;) (type $14) (param $0 v128) (result v128) + (func $170 (; 170 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_s (local.get $0) ) ) - (func $159 (; 159 ;) (type $14) (param $0 v128) (result v128) + (func $171 (; 171 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_low_i8x16_u (local.get $0) ) ) - (func $160 (; 160 ;) (type $14) (param $0 v128) (result v128) + (func $172 (; 172 ;) (type $14) (param $0 v128) (result v128) (i16x8.widen_high_i8x16_u (local.get $0) ) ) - (func $161 (; 161 ;) (type $14) (param $0 v128) (result v128) + (func $173 (; 173 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_s (local.get $0) ) ) - (func $162 (; 162 ;) (type $14) (param $0 v128) (result v128) + (func $174 (; 174 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_s (local.get $0) ) ) - (func $163 (; 163 ;) (type $14) (param $0 v128) (result v128) + (func $175 (; 175 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_low_i16x8_u (local.get $0) ) ) - (func $164 (; 164 ;) (type $14) (param $0 v128) (result v128) + (func $176 (; 176 ;) (type $14) (param $0 v128) (result v128) (i32x4.widen_high_i16x8_u (local.get $0) ) ) - (func $165 (; 165 ;) (type $0) (param $0 i32) (result v128) + (func $177 (; 177 ;) (type $0) (param $0 i32) (result v128) (i16x8.load8x8_u (local.get $0) ) ) - (func $166 (; 166 ;) (type $0) (param $0 i32) (result v128) + (func $178 (; 178 ;) (type $0) (param $0 i32) (result v128) (i16x8.load8x8_s (local.get $0) ) ) - (func $167 (; 167 ;) (type $0) (param $0 i32) (result v128) + (func $179 (; 179 ;) (type $0) (param $0 i32) (result v128) (i32x4.load16x4_s (local.get $0) ) ) - (func $168 (; 168 ;) (type $0) (param $0 i32) (result v128) + (func $180 (; 180 ;) (type $0) (param $0 i32) (result v128) (i32x4.load16x4_u (local.get $0) ) ) - (func $169 (; 169 ;) (type $0) (param $0 i32) (result v128) + (func $181 (; 181 ;) (type $0) (param $0 i32) (result v128) (i64x2.load32x2_s (local.get $0) ) ) - (func $170 (; 170 ;) (type $0) (param $0 i32) (result v128) + (func $182 (; 182 ;) (type $0) (param $0 i32) (result v128) (i64x2.load32x2_u (local.get $0) ) ) - (func $171 (; 171 ;) (type $3) (param $0 v128) (param $1 v128) (result v128) + (func $183 (; 183 ;) (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 9ed7067b0..8eacf76aa 100644 --- a/test/spec/simd.wast +++ b/test/spec/simd.wast @@ -116,6 +116,10 @@ (func (export "i8x16.sub_saturate_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.sub_saturate_s (local.get $0) (local.get $1))) (func (export "i8x16.sub_saturate_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.sub_saturate_u (local.get $0) (local.get $1))) (func (export "i8x16.mul") (param $0 v128) (param $1 v128) (result v128) (i8x16.mul (local.get $0) (local.get $1))) + (func (export "i8x16.min_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.min_s (local.get $0) (local.get $1))) + (func (export "i8x16.min_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.min_u (local.get $0) (local.get $1))) + (func (export "i8x16.max_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.max_s (local.get $0) (local.get $1))) + (func (export "i8x16.max_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.max_u (local.get $0) (local.get $1))) (func (export "i16x8.neg") (param $0 v128) (result v128) (i16x8.neg (local.get $0))) (func (export "i16x8.any_true") (param $0 v128) (result i32) (i16x8.any_true (local.get $0))) (func (export "i16x8.all_true") (param $0 v128) (result i32) (i16x8.all_true (local.get $0))) @@ -129,6 +133,10 @@ (func (export "i16x8.sub_saturate_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_s (local.get $0) (local.get $1))) (func (export "i16x8.sub_saturate_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_saturate_u (local.get $0) (local.get $1))) (func (export "i16x8.mul") (param $0 v128) (param $1 v128) (result v128) (i16x8.mul (local.get $0) (local.get $1))) + (func (export "i16x8.min_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.min_s (local.get $0) (local.get $1))) + (func (export "i16x8.min_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.min_u (local.get $0) (local.get $1))) + (func (export "i16x8.max_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.max_s (local.get $0) (local.get $1))) + (func (export "i16x8.max_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.max_u (local.get $0) (local.get $1))) (func (export "i32x4.neg") (param $0 v128) (result v128) (i32x4.neg (local.get $0))) (func (export "i32x4.any_true") (param $0 v128) (result i32) (i32x4.any_true (local.get $0))) (func (export "i32x4.all_true") (param $0 v128) (result i32) (i32x4.all_true (local.get $0))) @@ -138,6 +146,10 @@ (func (export "i32x4.add") (param $0 v128) (param $1 v128) (result v128) (i32x4.add (local.get $0) (local.get $1))) (func (export "i32x4.sub") (param $0 v128) (param $1 v128) (result v128) (i32x4.sub (local.get $0) (local.get $1))) (func (export "i32x4.mul") (param $0 v128) (param $1 v128) (result v128) (i32x4.mul (local.get $0) (local.get $1))) + (func (export "i32x4.min_s") (param $0 v128) (param $1 v128) (result v128) (i32x4.min_s (local.get $0) (local.get $1))) + (func (export "i32x4.min_u") (param $0 v128) (param $1 v128) (result v128) (i32x4.min_u (local.get $0) (local.get $1))) + (func (export "i32x4.max_s") (param $0 v128) (param $1 v128) (result v128) (i32x4.max_s (local.get $0) (local.get $1))) + (func (export "i32x4.max_u") (param $0 v128) (param $1 v128) (result v128) (i32x4.max_u (local.get $0) (local.get $1))) (func (export "i64x2.neg") (param $0 v128) (result v128) (i64x2.neg (local.get $0))) (func (export "i64x2.any_true") (param $0 v128) (result i32) (i64x2.any_true (local.get $0))) (func (export "i64x2.all_true") (param $0 v128) (result i32) (i64x2.all_true (local.get $0))) @@ -553,6 +565,34 @@ ) (v128.const i32x4 0 230 255 0 255 6 106 237 230 52 223 76 0 6 127 126) ) +(assert_return + (invoke "i8x16.min_s" + (v128.const i32x4 0 42 255 128 127 129 6 29 103 196 231 142 17 250 1 73) + (v128.const i32x4 3 231 1 128 129 6 103 17 42 29 73 42 0 255 127 142) + ) + (v128.const i8x16 0 231 255 128 129 129 6 17 42 196 231 142 0 250 1 142) +) +(assert_return + (invoke "i8x16.min_u" + (v128.const i32x4 0 42 255 128 127 129 6 29 103 196 231 142 17 250 1 73) + (v128.const i32x4 3 231 1 128 129 6 103 17 42 29 73 42 0 255 127 142) + ) + (v128.const i8x16 0 42 1 128 127 6 6 17 42 29 73 42 0 250 1 73) +) +(assert_return + (invoke "i8x16.max_s" + (v128.const i32x4 0 42 255 128 127 129 6 29 103 196 231 142 17 250 1 73) + (v128.const i32x4 3 231 1 128 129 6 103 17 42 29 73 42 0 255 127 142) + ) + (v128.const i8x16 3 42 1 128 127 6 103 29 103 29 73 42 17 255 127 73) +) +(assert_return + (invoke "i8x16.max_u" + (v128.const i32x4 0 42 255 128 127 129 6 29 103 196 231 142 17 250 1 73) + (v128.const i32x4 3 231 1 128 129 6 103 17 42 29 73 42 0 255 127 142) + ) + (v128.const i8x16 3 231 255 128 129 129 103 29 103 196 231 142 17 255 127 142) +) ;; i16x8 arithmetic (assert_return (invoke "i16x8.neg" (v128.const i32x4 0 1 42 -3 -56 32767 -32768 32766)) @@ -621,6 +661,34 @@ ) (v128.const i32x4 0 65280 0 0 0 0 0 65532) ) +(assert_return + (invoke "i16x8.min_s" + (v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766) + (v128.const i32x4 768 1 32768 33024 1536 18688 65280 2) + ) + (v128.const i32x4 0 65280 32768 33024 33024 59136 64000 2) +) +(assert_return + (invoke "i16x8.min_u" + (v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766) + (v128.const i32x4 768 1 32768 33024 1536 18688 65280 2) + ) + (v128.const i32x4 0 1 32768 32512 1536 18688 64000 2) +) +(assert_return + (invoke "i16x8.max_s" + (v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766) + (v128.const i32x4 768 1 32768 33024 1536 18688 65280 2) + ) + (v128.const i32x4 768 1 32768 32512 1536 18688 65280 32766) +) +(assert_return + (invoke "i16x8.max_u" + (v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766) + (v128.const i32x4 768 1 32768 33024 1536 18688 65280 2) + ) + (v128.const i32x4 768 65280 32768 33024 33024 59136 65280 32766) +) ;; i32x4 arithmetic (assert_return (invoke "i32x4.neg" (v128.const i32x4 0 1 0x80000000 0x7fffffff)) (v128.const i32x4 0 -1 0x80000000 0x80000001)) @@ -641,6 +709,22 @@ (assert_return (invoke "i32x4.add" (v128.const i32x4 0 0x80000001 42 5) (v128.const i32x4 0 0x80000001 5 42)) (v128.const i32x4 0 2 47 47)) (assert_return (invoke "i32x4.sub" (v128.const i32x4 0 2 47 47) (v128.const i32x4 0 0x80000001 42 5)) (v128.const i32x4 0 0x80000001 5 42)) (assert_return (invoke "i32x4.mul" (v128.const i32x4 0 0x80000001 42 5) (v128.const i32x4 0 0x80000001 42 5)) (v128.const i32x4 0 1 1764 25)) +(assert_return + (invoke "i32x4.min_s" (v128.const i32x4 0 0x80000001 42 0xc0000000) (v128.const i32x4 0xffffffff 42 0 0xb0000000)) + (v128.const i32x4 0xffffffff 0x80000001 0 0xb0000000) +) +(assert_return + (invoke "i32x4.min_u" (v128.const i32x4 0 0x80000001 42 0xc0000000) (v128.const i32x4 0xffffffff 42 0 0xb0000000)) + (v128.const i32x4 0 42 0 0xb0000000) +) +(assert_return + (invoke "i32x4.max_s" (v128.const i32x4 0 0x80000001 42 0xc0000000) (v128.const i32x4 0xffffffff 42 0 0xb0000000)) + (v128.const i32x4 0 42 42 0xc0000000) +) +(assert_return + (invoke "i32x4.max_u" (v128.const i32x4 0 0x80000001 42 0xc0000000) (v128.const i32x4 0xffffffff 42 0 0xb0000000)) + (v128.const i32x4 0xffffffff 0x80000001 42 0xc0000000) +) ;; i64x2 arithmetic (assert_return (invoke "i64x2.neg" (v128.const i64x2 0x8000000000000000 42)) (v128.const i64x2 0x8000000000000000 -42)) |