summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/binaryen.js/exception-handling.js.txt8
-rw-r--r--test/binaryen.js/expressions.js24
-rw-r--r--test/binaryen.js/expressions.js.txt13
-rw-r--r--test/binaryen.js/kitchen-sink.js57
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt332
-rw-r--r--test/example/c-api-kitchen-sink.c29
-rw-r--r--test/example/c-api-kitchen-sink.txt126
-rw-r--r--test/passes/precompute-propagate_all-features.txt2
-rw-r--r--test/passes/precompute-propagate_all-features.wast2
-rw-r--r--test/simd.wast741
-rw-r--r--test/simd.wast.from-wast744
-rw-r--r--test/simd.wast.fromBinary744
-rw-r--r--test/simd.wast.fromBinary.noDebugInfo988
-rw-r--r--test/simd64.wast40
-rw-r--r--test/simd64.wast.from-wast40
-rw-r--r--test/simd64.wast.fromBinary40
-rw-r--r--test/simd64.wast.fromBinary.noDebugInfo20
-rw-r--r--test/spec/simd.wast182
18 files changed, 1771 insertions, 2361 deletions
diff --git a/test/binaryen.js/exception-handling.js.txt b/test/binaryen.js/exception-handling.js.txt
index 434546126..386abfb4d 100644
--- a/test/binaryen.js/exception-handling.js.txt
+++ b/test/binaryen.js/exception-handling.js.txt
@@ -34,7 +34,7 @@
)
)
-getExpressionInfo(throw) = {"id":48,"type":1,"event":"e"}
-getExpressionInfo(rethrow) = {"id":49,"type":1,"target":"l0"}
-getExpressionInfo(try_catch) = {"id":47,"type":1,"name":"l0","hasCatchAll":0,"delegateTarget":"","isDelegate":0}
-getExpressionInfo(try_delegate) = {"id":47,"type":0,"name":"try_outer","hasCatchAll":1,"delegateTarget":"","isDelegate":0}
+getExpressionInfo(throw) = {"id":46,"type":1,"event":"e"}
+getExpressionInfo(rethrow) = {"id":47,"type":1,"target":"l0"}
+getExpressionInfo(try_catch) = {"id":45,"type":1,"name":"l0","hasCatchAll":0,"delegateTarget":"","isDelegate":0}
+getExpressionInfo(try_delegate) = {"id":45,"type":0,"name":"try_outer","hasCatchAll":1,"delegateTarget":"","isDelegate":0}
diff --git a/test/binaryen.js/expressions.js b/test/binaryen.js/expressions.js
index d6256cec1..68f5c8cee 100644
--- a/test/binaryen.js/expressions.js
+++ b/test/binaryen.js/expressions.js
@@ -1079,7 +1079,7 @@ console.log("# SIMDShuffle");
var left = module.v128.const([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
var right = module.v128.const([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]);
var mask = [3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
- const theSIMDShuffle = binaryen.SIMDShuffle(module.v8x16.shuffle(left, right, mask));
+ const theSIMDShuffle = binaryen.SIMDShuffle(module.i8x16.shuffle(left, right, mask));
assert(theSIMDShuffle instanceof binaryen.SIMDShuffle);
assert(theSIMDShuffle instanceof binaryen.Expression);
assert(theSIMDShuffle.left === left);
@@ -1101,7 +1101,7 @@ console.log("# SIMDShuffle");
assert(
theSIMDShuffle.toText()
==
- "(v8x16.shuffle 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)\n (v128.const i32x4 0x02020202 0x02020202 0x02020202 0x02020202)\n)\n"
+ "(i8x16.shuffle 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)\n (v128.const i32x4 0x02020202 0x02020202 0x02020202 0x02020202)\n)\n"
);
module.dispose();
@@ -1124,23 +1124,11 @@ console.log("# SIMDTernary");
assert(theSIMDTernary.c === c);
assert(theSIMDTernary.type === binaryen.v128);
- theSIMDTernary.op = op = binaryen.Operations.QFMAVecF64x2;
- assert(theSIMDTernary.op === op);
- theSIMDTernary.a = a = module.v128.const([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
- assert(theSIMDTernary.a === a);
- theSIMDTernary.b = b = module.v128.const([2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]);
- assert(theSIMDTernary.b === b);
- theSIMDTernary.c = c = module.v128.const([3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]);
- assert(theSIMDTernary.c === c);
- theSIMDTernary.type = binaryen.f64;
- theSIMDTernary.finalize();
- assert(theSIMDTernary.type === binaryen.v128);
-
- console.log(theSIMDTernary.toText());
+ console.log(theSIMDTernary.toText() + "\n");
assert(
theSIMDTernary.toText()
==
- "(f64x2.qfma\n (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)\n (v128.const i32x4 0x02020202 0x02020202 0x02020202 0x02020202)\n (v128.const i32x4 0x03030303 0x03030303 0x03030303 0x03030303)\n)\n"
+ "(v128.bitselect\n (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)\n (v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x11100f0e)\n (v128.const i32x4 0x06050403 0x0a090807 0x0e0d0c0b 0x1211100f)\n)\n"
);
module.dispose();
@@ -1189,7 +1177,7 @@ console.log("# SIMDLoad");
var offset = 16;
var align = 2;
var ptr = module.i32.const(1);
- const theSIMDLoad = binaryen.SIMDLoad(module.i16x8.load8x8_s(offset, align, ptr));
+ const theSIMDLoad = binaryen.SIMDLoad(module.v128.load8x8_s(offset, align, ptr));
assert(theSIMDLoad instanceof binaryen.SIMDLoad);
assert(theSIMDLoad instanceof binaryen.Expression);
assert(theSIMDLoad.offset === offset);
@@ -1213,7 +1201,7 @@ console.log("# SIMDLoad");
assert(
theSIMDLoad.toText()
==
- "(v8x16.load_splat offset=32 align=4\n (i32.const 2)\n)\n"
+ "(v128.load8_splat offset=32 align=4\n (i32.const 2)\n)\n"
);
module.dispose();
diff --git a/test/binaryen.js/expressions.js.txt b/test/binaryen.js/expressions.js.txt
index 0467e9332..a3e877b0f 100644
--- a/test/binaryen.js/expressions.js.txt
+++ b/test/binaryen.js/expressions.js.txt
@@ -155,18 +155,19 @@
)
# SIMDShuffle
-(v8x16.shuffle 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+(i8x16.shuffle 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
(v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)
(v128.const i32x4 0x02020202 0x02020202 0x02020202 0x02020202)
)
# SIMDTernary
-(f64x2.qfma
- (v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)
- (v128.const i32x4 0x02020202 0x02020202 0x02020202 0x02020202)
- (v128.const i32x4 0x03030303 0x03030303 0x03030303 0x03030303)
+(v128.bitselect
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x05040302 0x09080706 0x0d0c0b0a 0x11100f0e)
+ (v128.const i32x4 0x06050403 0x0a090807 0x0e0d0c0b 0x1211100f)
)
+
# SIMDShift
(i8x16.shr_s
(v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101)
@@ -174,7 +175,7 @@
)
# SIMDLoad
-(v8x16.load_splat offset=32 align=4
+(v128.load8_splat offset=32 align=4
(i32.const 2)
)
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 084a7d47b..cb2cd32ff 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -265,19 +265,17 @@ function test_core() {
module.f32x4.splat(module.f32.const(42.0)),
module.f64x2.splat(module.f64.const(42.0)),
module.v128.not(module.v128.const(v128_bytes)),
+ module.v128.any_true(module.v128.const(v128_bytes)),
module.i8x16.abs(module.v128.const(v128_bytes)),
module.i8x16.neg(module.v128.const(v128_bytes)),
- module.i8x16.any_true(module.v128.const(v128_bytes)),
module.i8x16.all_true(module.v128.const(v128_bytes)),
module.i8x16.bitmask(module.v128.const(v128_bytes)),
module.i16x8.abs(module.v128.const(v128_bytes)),
module.i16x8.neg(module.v128.const(v128_bytes)),
- module.i16x8.any_true(module.v128.const(v128_bytes)),
module.i16x8.all_true(module.v128.const(v128_bytes)),
module.i16x8.bitmask(module.v128.const(v128_bytes)),
module.i32x4.abs(module.v128.const(v128_bytes)),
module.i32x4.neg(module.v128.const(v128_bytes)),
- module.i32x4.any_true(module.v128.const(v128_bytes)),
module.i32x4.all_true(module.v128.const(v128_bytes)),
module.i32x4.bitmask(module.v128.const(v128_bytes)),
module.i64x2.neg(module.v128.const(v128_bytes)),
@@ -289,20 +287,16 @@ function test_core() {
module.f64x2.sqrt(module.v128.const(v128_bytes)),
module.i32x4.trunc_sat_f32x4_s(module.v128.const(v128_bytes)),
module.i32x4.trunc_sat_f32x4_u(module.v128.const(v128_bytes)),
- module.i64x2.trunc_sat_f64x2_s(module.v128.const(v128_bytes)),
- module.i64x2.trunc_sat_f64x2_u(module.v128.const(v128_bytes)),
module.f32x4.convert_i32x4_s(module.v128.const(v128_bytes)),
module.f32x4.convert_i32x4_u(module.v128.const(v128_bytes)),
- module.f64x2.convert_i64x2_s(module.v128.const(v128_bytes)),
- module.f64x2.convert_i64x2_u(module.v128.const(v128_bytes)),
- module.i16x8.widen_low_i8x16_s(module.v128.const(v128_bytes)),
- module.i16x8.widen_high_i8x16_s(module.v128.const(v128_bytes)),
- module.i16x8.widen_low_i8x16_u(module.v128.const(v128_bytes)),
- module.i16x8.widen_high_i8x16_u(module.v128.const(v128_bytes)),
- module.i32x4.widen_low_i16x8_s(module.v128.const(v128_bytes)),
- module.i32x4.widen_high_i16x8_s(module.v128.const(v128_bytes)),
- module.i32x4.widen_low_i16x8_u(module.v128.const(v128_bytes)),
- module.i32x4.widen_high_i16x8_u(module.v128.const(v128_bytes)),
+ module.i16x8.extend_low_i8x16_s(module.v128.const(v128_bytes)),
+ module.i16x8.extend_high_i8x16_s(module.v128.const(v128_bytes)),
+ module.i16x8.extend_low_i8x16_u(module.v128.const(v128_bytes)),
+ module.i16x8.extend_high_i8x16_u(module.v128.const(v128_bytes)),
+ module.i32x4.extend_low_i16x8_s(module.v128.const(v128_bytes)),
+ module.i32x4.extend_high_i16x8_s(module.v128.const(v128_bytes)),
+ module.i32x4.extend_low_i16x8_u(module.v128.const(v128_bytes)),
+ module.i32x4.extend_high_i16x8_u(module.v128.const(v128_bytes)),
// Binary
module.i32.add(module.i32.const(-10), module.i32.const(-11)),
module.f64.sub(module.f64.const(-9005.841), module.f64.const(-9007.333)),
@@ -388,7 +382,6 @@ function test_core() {
module.i8x16.sub(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
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)),
@@ -445,7 +438,7 @@ function test_core() {
module.i8x16.narrow_i16x8_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
module.i16x8.narrow_i32x4_s(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
module.i16x8.narrow_i32x4_u(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
- module.v8x16.swizzle(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
+ module.i8x16.swizzle(module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
// SIMD lane manipulation
module.i8x16.extract_lane_s(module.v128.const(v128_bytes), 1),
module.i8x16.extract_lane_u(module.v128.const(v128_bytes), 1),
@@ -475,23 +468,19 @@ function test_core() {
module.i64x2.shr_s(module.v128.const(v128_bytes), module.i32.const(1)),
module.i64x2.shr_u(module.v128.const(v128_bytes), module.i32.const(1)),
// SIMD load
- module.v8x16.load_splat(0, 1, module.i32.const(128)),
- module.v16x8.load_splat(16, 1, module.i32.const(128)),
- module.v32x4.load_splat(16, 4, module.i32.const(128)),
- module.v64x2.load_splat(0, 4, module.i32.const(128)),
- module.i16x8.load8x8_s(0, 8, module.i32.const(128)),
- module.i16x8.load8x8_u(0, 8, module.i32.const(128)),
- module.i32x4.load16x4_s(0, 8, module.i32.const(128)),
- module.i32x4.load16x4_u(0, 8, module.i32.const(128)),
- module.i64x2.load32x2_s(0, 8, module.i32.const(128)),
- module.i64x2.load32x2_u(0, 8, module.i32.const(128)),
+ module.v128.load8_splat(0, 1, module.i32.const(128)),
+ module.v128.load16_splat(16, 1, module.i32.const(128)),
+ module.v128.load32_splat(16, 4, module.i32.const(128)),
+ module.v128.load64_splat(0, 4, module.i32.const(128)),
+ module.v128.load8x8_s(0, 8, module.i32.const(128)),
+ module.v128.load8x8_u(0, 8, module.i32.const(128)),
+ module.v128.load16x4_s(0, 8, module.i32.const(128)),
+ module.v128.load16x4_u(0, 8, module.i32.const(128)),
+ module.v128.load32x2_s(0, 8, module.i32.const(128)),
+ module.v128.load32x2_u(0, 8, module.i32.const(128)),
// Other SIMD
- module.v8x16.shuffle(module.v128.const(v128_bytes), module.v128.const(v128_bytes), v128_bytes),
+ module.i8x16.shuffle(module.v128.const(v128_bytes), module.v128.const(v128_bytes), v128_bytes),
module.v128.bitselect(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
- module.f32x4.qfma(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
- module.f32x4.qfms(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
- module.f64x2.qfma(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
- module.f64x2.qfms(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
// Bulk memory
module.memory.init(0, makeInt32(1024), makeInt32(0), makeInt32(12)),
module.data.drop(0),
@@ -676,10 +665,10 @@ function test_core() {
assert(table.base === "");
assert(table.initial === 0);
assert(table.max === 2);
-
+
module.removeTable("t1");
assert(module.getNumTables() === 0);
-
+
module.addTable("t0", 1, 0xffffffff);
module.addActiveElementSegment("t0", "e0", [ binaryen.getFunctionInfo(sinker).name ]);
assert(module.getNumTables() === 1);
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index a8ea4eccf..9d97b6523 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -66,46 +66,46 @@ ReturnId: 19
MemorySizeId: 20
MemoryGrowId: 21
NopId: 22
-UnreachableId: 24
-AtomicCmpxchgId: 26
-AtomicRMWId: 25
-AtomicWaitId: 27
-AtomicNotifyId: 28
-SIMDExtractId: 30
-SIMDReplaceId: 31
-SIMDShuffleId: 32
-SIMDTernaryId: 33
-SIMDShiftId: 34
-SIMDLoadId: 35
-MemoryInitId: 38
-DataDropId: 39
-MemoryCopyId: 40
-MemoryFillId: 41
-PopId: 42
-RefNullId: 43
-RefIsId: 44
-RefFuncId: 45
-RefEqId: 46
-TryId: 47
-ThrowId: 48
-RethrowId: 49
-TupleMakeId: 50
-TupleExtractId: 51
-I31NewId: 52
-I31GetId: 53
-CallRefId: 54
-RefTestId: 55
-RefCastId: 56
-BrOnId: 57
-RttCanonId: 58
-RttSubId: 59
-StructNewId: 60
-StructGetId: 61
-StructSetId: 62
-ArrayNewId: 63
-ArrayGetId: 64
-ArraySetId: 65
-ArrayLenId: 66
+UnreachableId: 23
+AtomicCmpxchgId: 25
+AtomicRMWId: 24
+AtomicWaitId: 26
+AtomicNotifyId: 27
+SIMDExtractId: 29
+SIMDReplaceId: 30
+SIMDShuffleId: 31
+SIMDTernaryId: 32
+SIMDShiftId: 33
+SIMDLoadId: 34
+MemoryInitId: 36
+DataDropId: 37
+MemoryCopyId: 38
+MemoryFillId: 39
+PopId: 40
+RefNullId: 41
+RefIsId: 42
+RefFuncId: 43
+RefEqId: 44
+TryId: 45
+ThrowId: 46
+RethrowId: 47
+TupleMakeId: 48
+TupleExtractId: 49
+I31NewId: 50
+I31GetId: 51
+CallRefId: 52
+RefTestId: 53
+RefCastId: 54
+BrOnId: 55
+RttCanonId: 56
+RttSubId: 57
+StructNewId: 58
+StructGetId: 59
+StructSetId: 60
+ArrayNewId: 61
+ArrayGetId: 62
+ArraySetId: 63
+ArrayLenId: 64
getExpressionInfo={"id":15,"type":4,"op":6}
(f32.neg
(f32.const -33.61199951171875)
@@ -402,17 +402,17 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.abs
+ (v128.any_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.neg
+ (i8x16.abs
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.any_true
+ (i8x16.neg
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -437,11 +437,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i16x8.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -462,11 +457,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i32x4.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i32x4.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -522,16 +512,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i64x2.trunc_sat_f64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i64x2.trunc_sat_f64x2_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(f32x4.convert_i32x4_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -542,52 +522,42 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (f64x2.convert_i64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.convert_i64x2_u
+ (i16x8.extend_low_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_s
+ (i16x8.extend_high_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_s
+ (i16x8.extend_low_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_u
+ (i16x8.extend_high_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_u
+ (i32x4.extend_low_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_s
+ (i32x4.extend_high_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_high_i16x8_s
+ (i32x4.extend_low_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i32x4.widen_high_i16x8_u
+ (i32x4.extend_high_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -1066,13 +1036,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.add_saturate_s
+ (i8x16.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.add_saturate_u
+ (i8x16.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1084,19 +1054,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.sub_saturate_s
+ (i8x16.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.sub_saturate_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i8x16.mul
+ (i8x16.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1138,13 +1102,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.add_saturate_s
+ (i16x8.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.add_saturate_u
+ (i16x8.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1156,13 +1120,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.sub_saturate_s
+ (i16x8.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.sub_saturate_u
+ (i16x8.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1430,7 +1394,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (v8x16.swizzle
+ (i8x16.swizzle
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1584,57 +1548,57 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (v8x16.load_splat
+ (v128.load8_splat
(i32.const 128)
)
)
(drop
- (v16x8.load_splat offset=16 align=1
+ (v128.load16_splat offset=16 align=1
(i32.const 128)
)
)
(drop
- (v32x4.load_splat offset=16
+ (v128.load32_splat offset=16
(i32.const 128)
)
)
(drop
- (v64x2.load_splat align=4
+ (v128.load64_splat align=4
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_s
+ (v128.load8x8_s
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_u
+ (v128.load8x8_u
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_s
+ (v128.load16x4_s
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_u
+ (v128.load16x4_u
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_s
+ (v128.load32x2_s
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_u
+ (v128.load32x2_u
(i32.const 128)
)
)
(drop
- (v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ (i8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1646,34 +1610,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
- (drop
- (f32x4.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f32x4.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
(memory.init 0
(i32.const 1024)
(i32.const 0)
@@ -2264,17 +2200,17 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.abs
+ (v128.any_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.neg
+ (i8x16.abs
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.any_true
+ (i8x16.neg
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -2299,11 +2235,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i16x8.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -2324,11 +2255,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i32x4.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i32x4.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -2384,16 +2310,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i64x2.trunc_sat_f64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i64x2.trunc_sat_f64x2_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(f32x4.convert_i32x4_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -2404,52 +2320,42 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (f64x2.convert_i64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.convert_i64x2_u
+ (i16x8.extend_low_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_s
+ (i16x8.extend_high_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_s
+ (i16x8.extend_low_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_u
+ (i16x8.extend_high_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_u
+ (i32x4.extend_low_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_s
+ (i32x4.extend_high_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_high_i16x8_s
+ (i32x4.extend_low_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i32x4.widen_high_i16x8_u
+ (i32x4.extend_high_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -2928,13 +2834,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.add_saturate_s
+ (i8x16.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.add_saturate_u
+ (i8x16.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -2946,19 +2852,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i8x16.sub_saturate_s
+ (i8x16.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.sub_saturate_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i8x16.mul
+ (i8x16.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -3000,13 +2900,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.add_saturate_s
+ (i16x8.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.add_saturate_u
+ (i16x8.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -3018,13 +2918,13 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (i16x8.sub_saturate_s
+ (i16x8.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.sub_saturate_u
+ (i16x8.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -3292,7 +3192,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (v8x16.swizzle
+ (i8x16.swizzle
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -3446,57 +3346,57 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
)
)
(drop
- (v8x16.load_splat
+ (v128.load8_splat
(i32.const 128)
)
)
(drop
- (v16x8.load_splat offset=16 align=1
+ (v128.load16_splat offset=16 align=1
(i32.const 128)
)
)
(drop
- (v32x4.load_splat offset=16
+ (v128.load32_splat offset=16
(i32.const 128)
)
)
(drop
- (v64x2.load_splat align=4
+ (v128.load64_splat align=4
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_s
+ (v128.load8x8_s
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_u
+ (v128.load8x8_u
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_s
+ (v128.load16x4_s
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_u
+ (v128.load16x4_u
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_s
+ (v128.load32x2_s
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_u
+ (v128.load32x2_u
(i32.const 128)
)
)
(drop
- (v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ (i8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -3508,34 +3408,6 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
- (drop
- (f32x4.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f32x4.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
(memory.init 0
(i32.const 1024)
(i32.const 0)
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index aa82723b4..e4e8c37b0 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -403,19 +403,17 @@ void test_core() {
makeUnary(module, BinaryenSplatVecF32x4(), f32),
makeUnary(module, BinaryenSplatVecF64x2(), f64),
makeUnary(module, BinaryenNotVec128(), v128),
+ makeUnary(module, BinaryenAnyTrueVec128(), v128),
makeUnary(module, BinaryenAbsVecI8x16(), v128),
makeUnary(module, BinaryenNegVecI8x16(), v128),
- makeUnary(module, BinaryenAnyTrueVecI8x16(), v128),
makeUnary(module, BinaryenAllTrueVecI8x16(), v128),
makeUnary(module, BinaryenBitmaskVecI8x16(), v128),
makeUnary(module, BinaryenAbsVecI16x8(), v128),
makeUnary(module, BinaryenNegVecI16x8(), v128),
- makeUnary(module, BinaryenAnyTrueVecI16x8(), v128),
makeUnary(module, BinaryenAllTrueVecI16x8(), v128),
makeUnary(module, BinaryenBitmaskVecI16x8(), v128),
makeUnary(module, BinaryenAbsVecI32x4(), v128),
makeUnary(module, BinaryenNegVecI32x4(), v128),
- makeUnary(module, BinaryenAnyTrueVecI32x4(), v128),
makeUnary(module, BinaryenAllTrueVecI32x4(), v128),
makeUnary(module, BinaryenBitmaskVecI32x4(), v128),
makeUnary(module, BinaryenNegVecI64x2(), v128),
@@ -427,20 +425,16 @@ void test_core() {
makeUnary(module, BinaryenSqrtVecF64x2(), v128),
makeUnary(module, BinaryenTruncSatSVecF32x4ToVecI32x4(), v128),
makeUnary(module, BinaryenTruncSatUVecF32x4ToVecI32x4(), v128),
- makeUnary(module, BinaryenTruncSatSVecF64x2ToVecI64x2(), v128),
- makeUnary(module, BinaryenTruncSatUVecF64x2ToVecI64x2(), v128),
makeUnary(module, BinaryenConvertSVecI32x4ToVecF32x4(), v128),
makeUnary(module, BinaryenConvertUVecI32x4ToVecF32x4(), v128),
- makeUnary(module, BinaryenConvertSVecI64x2ToVecF64x2(), v128),
- makeUnary(module, BinaryenConvertUVecI64x2ToVecF64x2(), v128),
- makeUnary(module, BinaryenWidenLowSVecI8x16ToVecI16x8(), v128),
- makeUnary(module, BinaryenWidenHighSVecI8x16ToVecI16x8(), v128),
- makeUnary(module, BinaryenWidenLowUVecI8x16ToVecI16x8(), v128),
- makeUnary(module, BinaryenWidenHighUVecI8x16ToVecI16x8(), v128),
- makeUnary(module, BinaryenWidenLowSVecI16x8ToVecI32x4(), v128),
- makeUnary(module, BinaryenWidenHighSVecI16x8ToVecI32x4(), v128),
- makeUnary(module, BinaryenWidenLowUVecI16x8ToVecI32x4(), v128),
- makeUnary(module, BinaryenWidenHighUVecI16x8ToVecI32x4(), v128),
+ makeUnary(module, BinaryenExtendLowSVecI8x16ToVecI16x8(), v128),
+ makeUnary(module, BinaryenExtendHighSVecI8x16ToVecI16x8(), v128),
+ makeUnary(module, BinaryenExtendLowUVecI8x16ToVecI16x8(), v128),
+ makeUnary(module, BinaryenExtendHighUVecI8x16ToVecI16x8(), v128),
+ makeUnary(module, BinaryenExtendLowSVecI16x8ToVecI32x4(), v128),
+ makeUnary(module, BinaryenExtendHighSVecI16x8ToVecI32x4(), v128),
+ makeUnary(module, BinaryenExtendLowUVecI16x8ToVecI32x4(), v128),
+ makeUnary(module, BinaryenExtendHighUVecI16x8ToVecI32x4(), v128),
// Binary
makeBinary(module, BinaryenAddInt32(), i32),
makeBinary(module, BinaryenSubFloat64(), f64),
@@ -526,7 +520,6 @@ void test_core() {
makeBinary(module, BinaryenSubVecI8x16(), v128),
makeBinary(module, BinaryenSubSatSVecI8x16(), v128),
makeBinary(module, BinaryenSubSatUVecI8x16(), v128),
- makeBinary(module, BinaryenMulVecI8x16(), v128),
makeBinary(module, BinaryenMinSVecI8x16(), v128),
makeBinary(module, BinaryenMinUVecI8x16(), v128),
makeBinary(module, BinaryenMaxSVecI8x16(), v128),
@@ -648,10 +641,6 @@ void test_core() {
// Other SIMD
makeSIMDShuffle(module),
makeSIMDTernary(module, BinaryenBitselectVec128()),
- makeSIMDTernary(module, BinaryenQFMAVecF32x4()),
- makeSIMDTernary(module, BinaryenQFMSVecF32x4()),
- makeSIMDTernary(module, BinaryenQFMAVecF64x2()),
- makeSIMDTernary(module, BinaryenQFMSVecF64x2()),
// Bulk memory
makeMemoryInit(module),
makeDataDrop(module),
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 4cad3e659..e67850376 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -312,17 +312,17 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i8x16.abs
+ (v128.any_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.neg
+ (i8x16.abs
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.any_true
+ (i8x16.neg
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -347,11 +347,6 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i16x8.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i16x8.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -372,11 +367,6 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i32x4.any_true
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(i32x4.all_true
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -432,16 +422,6 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i64x2.trunc_sat_f64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i64x2.trunc_sat_f64x2_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
(f32x4.convert_i32x4_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -452,52 +432,42 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (f64x2.convert_i64x2_s
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.convert_i64x2_u
+ (i16x8.extend_low_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_s
+ (i16x8.extend_high_i8x16_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_s
+ (i16x8.extend_low_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_low_i8x16_u
+ (i16x8.extend_high_i8x16_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.widen_high_i8x16_u
+ (i32x4.extend_low_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_s
+ (i32x4.extend_high_i16x8_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_high_i16x8_s
+ (i32x4.extend_low_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i32x4.widen_low_i16x8_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i32x4.widen_high_i16x8_u
+ (i32x4.extend_high_i16x8_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
@@ -976,13 +946,13 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i8x16.add_saturate_s
+ (i8x16.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.add_saturate_u
+ (i8x16.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -994,19 +964,13 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i8x16.sub_saturate_s
+ (i8x16.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i8x16.sub_saturate_u
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (i8x16.mul
+ (i8x16.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1048,13 +1012,13 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i16x8.add_saturate_s
+ (i16x8.add_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.add_saturate_u
+ (i16x8.add_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1066,13 +1030,13 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (i16x8.sub_saturate_s
+ (i16x8.sub_sat_s
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
(drop
- (i16x8.sub_saturate_u
+ (i16x8.sub_sat_u
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1340,7 +1304,7 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (v8x16.swizzle
+ (i8x16.swizzle
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1494,57 +1458,57 @@ BinaryenFeatureAll: 8191
)
)
(drop
- (v8x16.load_splat
+ (v128.load8_splat
(i32.const 128)
)
)
(drop
- (v16x8.load_splat offset=16 align=1
+ (v128.load16_splat offset=16 align=1
(i32.const 128)
)
)
(drop
- (v32x4.load_splat offset=16
+ (v128.load32_splat offset=16
(i32.const 128)
)
)
(drop
- (v64x2.load_splat align=4
+ (v128.load64_splat align=4
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_s
+ (v128.load8x8_s
(i32.const 128)
)
)
(drop
- (i16x8.load8x8_u
+ (v128.load8x8_u
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_s
+ (v128.load16x4_s
(i32.const 128)
)
)
(drop
- (i32x4.load16x4_u
+ (v128.load16x4_u
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_s
+ (v128.load32x2_s
(i32.const 128)
)
)
(drop
- (i64x2.load32x2_u
+ (v128.load32x2_u
(i32.const 128)
)
)
(drop
- (v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ (i8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
@@ -1556,34 +1520,6 @@ BinaryenFeatureAll: 8191
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
- (drop
- (f32x4.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f32x4.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfma
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
- (drop
- (f64x2.qfms
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
- )
- )
(memory.init 0
(i32.const 1024)
(i32.const 0)
diff --git a/test/passes/precompute-propagate_all-features.txt b/test/passes/precompute-propagate_all-features.txt
index 298b46de9..09f2bc42d 100644
--- a/test/passes/precompute-propagate_all-features.txt
+++ b/test/passes/precompute-propagate_all-features.txt
@@ -259,7 +259,7 @@
(func $simd-load (result v128)
(local $x v128)
(local.set $x
- (v8x16.load_splat
+ (v128.load8_splat
(i32.const 0)
)
)
diff --git a/test/passes/precompute-propagate_all-features.wast b/test/passes/precompute-propagate_all-features.wast
index f866c0ea8..bad12eac8 100644
--- a/test/passes/precompute-propagate_all-features.wast
+++ b/test/passes/precompute-propagate_all-features.wast
@@ -172,7 +172,7 @@
)
(func $simd-load (result v128)
(local $x v128)
- (local.set $x (v8x16.load_splat (i32.const 0)))
+ (local.set $x (v128.load8_splat (i32.const 0)))
(local.get $x)
)
(func $tuple-local (result i32 i64)
diff --git a/test/simd.wast b/test/simd.wast
index 8d12ea0ac..a89efb384 100644
--- a/test/simd.wast
+++ b/test/simd.wast
@@ -5,6 +5,56 @@
(local.get $0)
)
)
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat
+ (local.get $0)
+ )
+ )
(func $v128.store (param $0 i32) (param $1 v128)
(v128.store offset=0 align=16
(local.get $0)
@@ -29,8 +79,14 @@
(func $v128.const.f64x2 (result v128)
(v128.const f64x2 1.0 2)
)
- (func $v128.shuffle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (func $i8x16.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.swizzle
(local.get $0)
(local.get $1)
)
@@ -40,6 +96,21 @@
(local.get $0)
)
)
+ (func $i16x8.splat (param $0 i32) (result v128)
+ (i16x8.splat
+ (local.get $0)
+ )
+ )
+ (func $f32x4.splat (param $0 f32) (result v128)
+ (f32x4.splat
+ (local.get $0)
+ )
+ )
+ (func $f64x2.splat (param $0 f64) (result v128)
+ (f64x2.splat
+ (local.get $0)
+ )
+ )
(func $i8x16.extract_lane_s (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
@@ -56,11 +127,6 @@
(local.get $1)
)
)
- (func $i16x8.splat (param $0 i32) (result v128)
- (i16x8.splat
- (local.get $0)
- )
- )
(func $i16x8.extract_lane_s (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
@@ -77,11 +143,6 @@
(local.get $1)
)
)
- (func $i32x4.splat (param $0 i32) (result v128)
- (i32x4.splat
- (local.get $0)
- )
- )
(func $i32x4.extract_lane (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
@@ -104,11 +165,6 @@
(local.get $1)
)
)
- (func $f32x4.splat (param $0 f32) (result v128)
- (f32x4.splat
- (local.get $0)
- )
- )
(func $f32x4.extract_lane (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
@@ -120,11 +176,6 @@
(local.get $1)
)
)
- (func $f64x2.splat (param $0 f64) (result v128)
- (f64x2.splat
- (local.get $0)
- )
- )
(func $f64x2.extract_lane (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
@@ -316,12 +367,6 @@
(local.get $1)
)
)
- (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
- (i64x2.eq
- (local.get $0)
- (local.get $1)
- )
- )
(func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
@@ -405,57 +450,34 @@
(local.get $1)
)
)
- (func $v128.or (param $0 v128) (param $1 v128) (result v128)
- (v128.or
- (local.get $0)
- (local.get $1)
- )
- )
- (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
- (v128.xor
- (local.get $0)
- (local.get $1)
- )
- )
(func $v128.andnot (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v128.bitselect
+ (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (v128.or
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v8x16.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v8x16.signselect
- (local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $v16x8.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v16x8.signselect
+ (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (v128.xor
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v32x4.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v32x4.signselect
+ (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $v64x2.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v64x2.signselect
+ (func $v128.any_true (param $0 v128) (result i32)
+ (v128.any_true
(local.get $0)
- (local.get $1)
- (local.get $2)
)
)
(func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
@@ -542,8 +564,23 @@
(local.get $1)
)
)
- (func $i8x16.popcnt (param $0 v128) (result v128)
- (i8x16.popcnt
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero
+ (local.get $0)
+ )
+ )
+ (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
+ (f32x4.demote_f64x2_zero
+ (local.get $0)
+ )
+ )
+ (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
+ (f64x2.promote_low_f32x4
(local.get $0)
)
)
@@ -557,8 +594,8 @@
(local.get $0)
)
)
- (func $i8x16.any_true (param $0 v128) (result i32)
- (i8x16.any_true
+ (func $i8x16.popcnt (param $0 v128) (result v128)
+ (i8x16.popcnt
(local.get $0)
)
)
@@ -572,6 +609,38 @@
(local.get $0)
)
)
+ (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $f32x4.ceil (param $0 v128) (result v128)
+ (f32x4.ceil
+ (local.get $0)
+ )
+ )
+ (func $f32x4.floor (param $0 v128) (result v128)
+ (f32x4.floor
+ (local.get $0)
+ )
+ )
+ (func $f32x4.trunc (param $0 v128) (result v128)
+ (f32x4.trunc
+ (local.get $0)
+ )
+ )
+ (func $f32x4.nearest (param $0 v128) (result v128)
+ (f32x4.nearest
+ (local.get $0)
+ )
+ )
(func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
@@ -596,14 +665,14 @@
(local.get $1)
)
)
- (func $i8x16.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_s
+ (func $i8x16.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_u
+ (func $i8x16.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -614,22 +683,26 @@
(local.get $1)
)
)
- (func $i8x16.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_s
+ (func $i8x16.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_u
+ (func $i8x16.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.mul (param $0 v128) (param $1 v128) (result v128)
- (i8x16.mul
+ (func $f64x2.ceil (param $0 v128) (result v128)
+ (f64x2.ceil
+ (local.get $0)
+ )
+ )
+ (func $f64x2.floor (param $0 v128) (result v128)
+ (f64x2.floor
(local.get $0)
- (local.get $1)
)
)
(func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128)
@@ -656,12 +729,37 @@
(local.get $1)
)
)
+ (func $f64x2.trunc (param $0 v128) (result v128)
+ (f64x2.trunc
+ (local.get $0)
+ )
+ )
(func $i8x16.avgr_u (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
+ (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i16x8.abs (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
@@ -672,9 +770,10 @@
(local.get $0)
)
)
- (func $i16x8.any_true (param $0 v128) (result i32)
- (i16x8.any_true
+ (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.q15mulr_sat_s
(local.get $0)
+ (local.get $1)
)
)
(func $i16x8.all_true (param $0 v128) (result i32)
@@ -687,7 +786,39 @@
(local.get $0)
)
)
- (func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_u
+ (local.get $0)
+ )
+ )
+(func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
(local.get $1)
@@ -711,14 +842,14 @@
(local.get $1)
)
)
- (func $i16x8.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_s
+ (func $i16x8.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_u
+ (func $i16x8.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -729,18 +860,23 @@
(local.get $1)
)
)
- (func $i16x8.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_s
+ (func $i16x8.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_u
+ (func $i16x8.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
+ (func $f64x2.nearest (param $0 v128) (result v128)
+ (f64x2.nearest
+ (local.get $0)
+ )
+ )
(func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
@@ -777,12 +913,6 @@
(local.get $1)
)
)
- (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.q15mulr_sat_s
- (local.get $0)
- (local.get $1)
- )
- )
(func $i16x8.extmul_low_i8x16_s (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
@@ -817,11 +947,6 @@
(local.get $0)
)
)
- (func $i32x4.any_true (param $0 v128) (result i32)
- (i32x4.any_true
- (local.get $0)
- )
- )
(func $i32x4.all_true (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
@@ -832,6 +957,26 @@
(local.get $0)
)
)
+ (func $i32x4.extend_low_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_low_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
@@ -922,16 +1067,46 @@
(local.get $1)
)
)
+ (func $i64x2.abs (param $0 v128) (result v128)
+ (i64x2.abs
+ (local.get $0)
+ )
+ )
(func $i64x2.neg (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
+ (func $i64x2.all_true (param $0 v128) (result i32)
+ (i64x2.all_true
+ (local.get $0)
+ )
+ )
(func $i64x2.bitmask (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
+ (func $i64x2.extend_low_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_low_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_u
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_u
+ (local.get $0)
+ )
+ )
(func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
@@ -968,6 +1143,42 @@
(local.get $1)
)
)
+ (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.lt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.gt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.le_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ge_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(func $i64x2.extmul_low_i32x4_s (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
@@ -992,6 +1203,21 @@
(local.get $1)
)
)
+ (func $f32x4.abs (param $0 v128) (result v128)
+ (f32x4.abs
+ (local.get $0)
+ )
+ )
+ (func $f32x4.neg (param $0 v128) (result v128)
+ (f32x4.neg
+ (local.get $0)
+ )
+ )
+ (func $f32x4.sqrt (param $0 v128) (result v128)
+ (f32x4.sqrt
+ (local.get $0)
+ )
+ )
(func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
@@ -1040,53 +1266,19 @@
(local.get $1)
)
)
- (func $f32x4.ceil (param $0 v128) (result v128)
- (f32x4.ceil
- (local.get $0)
- )
- )
- (func $f32x4.floor (param $0 v128) (result v128)
- (f32x4.floor
- (local.get $0)
- )
- )
- (func $f32x4.trunc (param $0 v128) (result v128)
- (f32x4.trunc
- (local.get $0)
- )
- )
- (func $f32x4.nearest (param $0 v128) (result v128)
- (f32x4.nearest
- (local.get $0)
- )
- )
- (func $f32x4.abs (param $0 v128) (result v128)
- (f32x4.abs
- (local.get $0)
- )
- )
- (func $f32x4.neg (param $0 v128) (result v128)
- (f32x4.neg
- (local.get $0)
- )
- )
- (func $f32x4.sqrt (param $0 v128) (result v128)
- (f32x4.sqrt
+ (func $f64x2.abs (param $0 v128) (result v128)
+ (f64x2.abs
(local.get $0)
)
)
- (func $f32x4.qfma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfma
+ (func $f64x2.neg (param $0 v128) (result v128)
+ (f64x2.neg
(local.get $0)
- (local.get $1)
- (local.get $2)
)
)
- (func $f32x4.qfms (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfms
+ (func $f64x2.sqrt (param $0 v128) (result v128)
+ (f64x2.sqrt
(local.get $0)
- (local.get $1)
- (local.get $2)
)
)
(func $f64x2.add (param $0 v128) (param $1 v128) (result v128)
@@ -1137,75 +1329,6 @@
(local.get $1)
)
)
- (func $f64x2.ceil (param $0 v128) (result v128)
- (f64x2.ceil
- (local.get $0)
- )
- )
- (func $f64x2.floor (param $0 v128) (result v128)
- (f64x2.floor
- (local.get $0)
- )
- )
- (func $f64x2.trunc (param $0 v128) (result v128)
- (f64x2.trunc
- (local.get $0)
- )
- )
- (func $f64x2.nearest (param $0 v128) (result v128)
- (f64x2.nearest
- (local.get $0)
- )
- )
- (func $f64x2.abs (param $0 v128) (result v128)
- (f64x2.abs
- (local.get $0)
- )
- )
- (func $f64x2.neg (param $0 v128) (result v128)
- (f64x2.neg
- (local.get $0)
- )
- )
- (func $f64x2.sqrt (param $0 v128) (result v128)
- (f64x2.sqrt
- (local.get $0)
- )
- )
- (func $f64x2.qfma (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 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f64x2.qfms
- (local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_u
- (local.get $0)
- )
- )
(func $i32x4.trunc_sat_f32x4_s (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
@@ -1216,16 +1339,6 @@
(local.get $0)
)
)
- (func $i64x2.trunc_sat_f64x2_s (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_s
- (local.get $0)
- )
- )
- (func $i64x2.trunc_sat_f64x2_u (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_u
- (local.get $0)
- )
- )
(func $f32x4.convert_i32x4_s (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
@@ -1236,173 +1349,13 @@
(local.get $0)
)
)
- (func $f64x2.convert_i64x2_s (param $0 v128) (result v128)
- (f64x2.convert_i64x2_s
- (local.get $0)
- )
- )
- (func $f64x2.convert_i64x2_u (param $0 v128) (result v128)
- (f64x2.convert_i64x2_u
- (local.get $0)
- )
- )
- (func $v8x16.load_splat (param $0 i32) (result v128)
- (v8x16.load_splat
- (local.get $0)
- )
- )
- (func $v16x8.load_splat (param $0 i32) (result v128)
- (v16x8.load_splat
- (local.get $0)
- )
- )
- (func $v32x4.load_splat (param $0 i32) (result v128)
- (v32x4.load_splat
- (local.get $0)
- )
- )
- (func $v64x2.load_splat (param $0 i32) (result v128)
- (v64x2.load_splat
- (local.get $0)
- )
- )
- (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.widen_low_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_high_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_low_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_u
+ (func $i32x4.trunc_sat_f64x2_s_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $i16x8.widen_high_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_u (param $0 i32) (result v128)
- (i16x8.load8x8_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_s (param $0 i32) (result v128)
- (i16x8.load8x8_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_s (param $0 i32) (result v128)
- (i32x4.load16x4_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_u (param $0 i32) (result v128)
- (i32x4.load16x4_u
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_s (param $0 i32) (result v128)
- (i64x2.load32x2_s
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_u (param $0 i32) (result v128)
- (i64x2.load32x2_u
- (local.get $0)
- )
- )
- (func $v128.load32_zero (param $0 i32) (result v128)
- (v128.load32_zero
- (local.get $0)
- )
- )
- (func $v128.load64_zero (param $0 i32) (result v128)
- (v128.load64_zero
- (local.get $0)
- )
- )
- (func $v8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.swizzle
- (local.get $0)
- (local.get $1)
- )
- )
- (func $prefetch.t (param $0 i32)
- (prefetch.t offset=3 align=2
- (local.get $0)
- )
- )
- (func $prefetch.nt (param $0 i32)
- (prefetch.nt offset=3 align=2
+ (func $i32x4.trunc_sat_f64x2_u_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
@@ -1416,34 +1369,4 @@
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_zero_s (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_s
- (local.get $0)
- )
- )
- (func $i32x4.trunc_sat_f64x2_zero_u (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_u
- (local.get $0)
- )
- )
- (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
- (f32x4.demote_f64x2_zero
- (local.get $0)
- )
- )
- (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
- (f64x2.promote_low_f32x4
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_s (param $0 v128) (result v128)
- (i32x4.widen_i8x16_s 0
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_u (param $0 v128) (result v128)
- (i32x4.widen_i8x16_u 0
- (local.get $0)
- )
- )
)
diff --git a/test/simd.wast.from-wast b/test/simd.wast.from-wast
index 6fbacea11..7940a00da 100644
--- a/test/simd.wast.from-wast
+++ b/test/simd.wast.from-wast
@@ -2,13 +2,11 @@
(type $v128_v128_=>_v128 (func (param v128 v128) (result v128)))
(type $v128_=>_v128 (func (param v128) (result v128)))
(type $i32_=>_v128 (func (param i32) (result v128)))
- (type $v128_=>_i32 (func (param v128) (result i32)))
(type $v128_i32_=>_v128 (func (param v128 i32) (result v128)))
- (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
+ (type $v128_=>_i32 (func (param v128) (result i32)))
(type $i32_v128_=>_none (func (param i32 v128)))
(type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
(type $none_=>_v128 (func (result v128)))
- (type $i32_=>_none (func (param i32)))
(type $v128_=>_i64 (func (param v128) (result i64)))
(type $v128_=>_f32 (func (param v128) (result f32)))
(type $v128_=>_f64 (func (param v128) (result f64)))
@@ -17,12 +15,63 @@
(type $v128_i64_=>_v128 (func (param v128 i64) (result v128)))
(type $v128_f32_=>_v128 (func (param v128 f32) (result v128)))
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
+ (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
(func $v128.load (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat
+ (local.get $0)
+ )
+ )
(func $v128.store (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
@@ -47,8 +96,14 @@
(func $v128.const.f64x2 (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $v128.shuffle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (func $i8x16.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.swizzle
(local.get $0)
(local.get $1)
)
@@ -58,6 +113,21 @@
(local.get $0)
)
)
+ (func $i16x8.splat (param $0 i32) (result v128)
+ (i16x8.splat
+ (local.get $0)
+ )
+ )
+ (func $f32x4.splat (param $0 f32) (result v128)
+ (f32x4.splat
+ (local.get $0)
+ )
+ )
+ (func $f64x2.splat (param $0 f64) (result v128)
+ (f64x2.splat
+ (local.get $0)
+ )
+ )
(func $i8x16.extract_lane_s (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
@@ -74,11 +144,6 @@
(local.get $1)
)
)
- (func $i16x8.splat (param $0 i32) (result v128)
- (i16x8.splat
- (local.get $0)
- )
- )
(func $i16x8.extract_lane_s (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
@@ -95,11 +160,6 @@
(local.get $1)
)
)
- (func $i32x4.splat (param $0 i32) (result v128)
- (i32x4.splat
- (local.get $0)
- )
- )
(func $i32x4.extract_lane (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
@@ -122,11 +182,6 @@
(local.get $1)
)
)
- (func $f32x4.splat (param $0 f32) (result v128)
- (f32x4.splat
- (local.get $0)
- )
- )
(func $f32x4.extract_lane (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
@@ -138,11 +193,6 @@
(local.get $1)
)
)
- (func $f64x2.splat (param $0 f64) (result v128)
- (f64x2.splat
- (local.get $0)
- )
- )
(func $f64x2.extract_lane (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
@@ -334,12 +384,6 @@
(local.get $1)
)
)
- (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
- (i64x2.eq
- (local.get $0)
- (local.get $1)
- )
- )
(func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
@@ -423,57 +467,34 @@
(local.get $1)
)
)
- (func $v128.or (param $0 v128) (param $1 v128) (result v128)
- (v128.or
- (local.get $0)
- (local.get $1)
- )
- )
- (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
- (v128.xor
- (local.get $0)
- (local.get $1)
- )
- )
(func $v128.andnot (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v128.bitselect
+ (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (v128.or
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v8x16.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v8x16.signselect
+ (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (v128.xor
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v16x8.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v16x8.signselect
+ (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $v32x4.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v32x4.signselect
+ (func $v128.any_true (param $0 v128) (result i32)
+ (v128.any_true
(local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $v64x2.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v64x2.signselect
- (local.get $0)
- (local.get $1)
- (local.get $2)
)
)
(func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
@@ -560,8 +581,23 @@
(local.get $1)
)
)
- (func $i8x16.popcnt (param $0 v128) (result v128)
- (i8x16.popcnt
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero
+ (local.get $0)
+ )
+ )
+ (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
+ (f32x4.demote_f64x2_zero
+ (local.get $0)
+ )
+ )
+ (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
+ (f64x2.promote_low_f32x4
(local.get $0)
)
)
@@ -575,8 +611,8 @@
(local.get $0)
)
)
- (func $i8x16.any_true (param $0 v128) (result i32)
- (i8x16.any_true
+ (func $i8x16.popcnt (param $0 v128) (result v128)
+ (i8x16.popcnt
(local.get $0)
)
)
@@ -590,6 +626,38 @@
(local.get $0)
)
)
+ (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $f32x4.ceil (param $0 v128) (result v128)
+ (f32x4.ceil
+ (local.get $0)
+ )
+ )
+ (func $f32x4.floor (param $0 v128) (result v128)
+ (f32x4.floor
+ (local.get $0)
+ )
+ )
+ (func $f32x4.trunc (param $0 v128) (result v128)
+ (f32x4.trunc
+ (local.get $0)
+ )
+ )
+ (func $f32x4.nearest (param $0 v128) (result v128)
+ (f32x4.nearest
+ (local.get $0)
+ )
+ )
(func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
@@ -614,14 +682,14 @@
(local.get $1)
)
)
- (func $i8x16.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_s
+ (func $i8x16.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_u
+ (func $i8x16.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -632,22 +700,26 @@
(local.get $1)
)
)
- (func $i8x16.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_s
+ (func $i8x16.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_u
+ (func $i8x16.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.mul (param $0 v128) (param $1 v128) (result v128)
- (i8x16.mul
+ (func $f64x2.ceil (param $0 v128) (result v128)
+ (f64x2.ceil
+ (local.get $0)
+ )
+ )
+ (func $f64x2.floor (param $0 v128) (result v128)
+ (f64x2.floor
(local.get $0)
- (local.get $1)
)
)
(func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128)
@@ -674,12 +746,37 @@
(local.get $1)
)
)
+ (func $f64x2.trunc (param $0 v128) (result v128)
+ (f64x2.trunc
+ (local.get $0)
+ )
+ )
(func $i8x16.avgr_u (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
+ (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i16x8.abs (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
@@ -690,9 +787,10 @@
(local.get $0)
)
)
- (func $i16x8.any_true (param $0 v128) (result i32)
- (i16x8.any_true
+ (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.q15mulr_sat_s
(local.get $0)
+ (local.get $1)
)
)
(func $i16x8.all_true (param $0 v128) (result i32)
@@ -705,6 +803,38 @@
(local.get $0)
)
)
+ (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_u
+ (local.get $0)
+ )
+ )
(func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
@@ -729,14 +859,14 @@
(local.get $1)
)
)
- (func $i16x8.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_s
+ (func $i16x8.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_u
+ (func $i16x8.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -747,18 +877,23 @@
(local.get $1)
)
)
- (func $i16x8.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_s
+ (func $i16x8.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_u
+ (func $i16x8.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
+ (func $f64x2.nearest (param $0 v128) (result v128)
+ (f64x2.nearest
+ (local.get $0)
+ )
+ )
(func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
@@ -795,12 +930,6 @@
(local.get $1)
)
)
- (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.q15mulr_sat_s
- (local.get $0)
- (local.get $1)
- )
- )
(func $i16x8.extmul_low_i8x16_s (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
@@ -835,11 +964,6 @@
(local.get $0)
)
)
- (func $i32x4.any_true (param $0 v128) (result i32)
- (i32x4.any_true
- (local.get $0)
- )
- )
(func $i32x4.all_true (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
@@ -850,6 +974,26 @@
(local.get $0)
)
)
+ (func $i32x4.extend_low_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_low_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
@@ -940,16 +1084,46 @@
(local.get $1)
)
)
+ (func $i64x2.abs (param $0 v128) (result v128)
+ (i64x2.abs
+ (local.get $0)
+ )
+ )
(func $i64x2.neg (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
+ (func $i64x2.all_true (param $0 v128) (result i32)
+ (i64x2.all_true
+ (local.get $0)
+ )
+ )
(func $i64x2.bitmask (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
+ (func $i64x2.extend_low_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_low_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_u
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_u
+ (local.get $0)
+ )
+ )
(func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
@@ -986,6 +1160,42 @@
(local.get $1)
)
)
+ (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.lt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.gt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.le_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ge_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(func $i64x2.extmul_low_i32x4_s (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
@@ -1010,6 +1220,21 @@
(local.get $1)
)
)
+ (func $f32x4.abs (param $0 v128) (result v128)
+ (f32x4.abs
+ (local.get $0)
+ )
+ )
+ (func $f32x4.neg (param $0 v128) (result v128)
+ (f32x4.neg
+ (local.get $0)
+ )
+ )
+ (func $f32x4.sqrt (param $0 v128) (result v128)
+ (f32x4.sqrt
+ (local.get $0)
+ )
+ )
(func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
@@ -1058,53 +1283,19 @@
(local.get $1)
)
)
- (func $f32x4.ceil (param $0 v128) (result v128)
- (f32x4.ceil
- (local.get $0)
- )
- )
- (func $f32x4.floor (param $0 v128) (result v128)
- (f32x4.floor
- (local.get $0)
- )
- )
- (func $f32x4.trunc (param $0 v128) (result v128)
- (f32x4.trunc
- (local.get $0)
- )
- )
- (func $f32x4.nearest (param $0 v128) (result v128)
- (f32x4.nearest
- (local.get $0)
- )
- )
- (func $f32x4.abs (param $0 v128) (result v128)
- (f32x4.abs
- (local.get $0)
- )
- )
- (func $f32x4.neg (param $0 v128) (result v128)
- (f32x4.neg
+ (func $f64x2.abs (param $0 v128) (result v128)
+ (f64x2.abs
(local.get $0)
)
)
- (func $f32x4.sqrt (param $0 v128) (result v128)
- (f32x4.sqrt
+ (func $f64x2.neg (param $0 v128) (result v128)
+ (f64x2.neg
(local.get $0)
)
)
- (func $f32x4.qfma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfma
+ (func $f64x2.sqrt (param $0 v128) (result v128)
+ (f64x2.sqrt
(local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $f32x4.qfms (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 (param $0 v128) (param $1 v128) (result v128)
@@ -1155,75 +1346,6 @@
(local.get $1)
)
)
- (func $f64x2.ceil (param $0 v128) (result v128)
- (f64x2.ceil
- (local.get $0)
- )
- )
- (func $f64x2.floor (param $0 v128) (result v128)
- (f64x2.floor
- (local.get $0)
- )
- )
- (func $f64x2.trunc (param $0 v128) (result v128)
- (f64x2.trunc
- (local.get $0)
- )
- )
- (func $f64x2.nearest (param $0 v128) (result v128)
- (f64x2.nearest
- (local.get $0)
- )
- )
- (func $f64x2.abs (param $0 v128) (result v128)
- (f64x2.abs
- (local.get $0)
- )
- )
- (func $f64x2.neg (param $0 v128) (result v128)
- (f64x2.neg
- (local.get $0)
- )
- )
- (func $f64x2.sqrt (param $0 v128) (result v128)
- (f64x2.sqrt
- (local.get $0)
- )
- )
- (func $f64x2.qfma (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 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f64x2.qfms
- (local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_u
- (local.get $0)
- )
- )
(func $i32x4.trunc_sat_f32x4_s (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
@@ -1234,16 +1356,6 @@
(local.get $0)
)
)
- (func $i64x2.trunc_sat_f64x2_s (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_s
- (local.get $0)
- )
- )
- (func $i64x2.trunc_sat_f64x2_u (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_u
- (local.get $0)
- )
- )
(func $f32x4.convert_i32x4_s (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
@@ -1254,173 +1366,13 @@
(local.get $0)
)
)
- (func $f64x2.convert_i64x2_s (param $0 v128) (result v128)
- (f64x2.convert_i64x2_s
- (local.get $0)
- )
- )
- (func $f64x2.convert_i64x2_u (param $0 v128) (result v128)
- (f64x2.convert_i64x2_u
- (local.get $0)
- )
- )
- (func $v8x16.load_splat (param $0 i32) (result v128)
- (v8x16.load_splat
- (local.get $0)
- )
- )
- (func $v16x8.load_splat (param $0 i32) (result v128)
- (v16x8.load_splat
+ (func $i32x4.trunc_sat_f64x2_s_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $v32x4.load_splat (param $0 i32) (result v128)
- (v32x4.load_splat
- (local.get $0)
- )
- )
- (func $v64x2.load_splat (param $0 i32) (result v128)
- (v64x2.load_splat
- (local.get $0)
- )
- )
- (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.widen_low_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_high_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_low_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_u
- (local.get $0)
- )
- )
- (func $i16x8.widen_high_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_u (param $0 i32) (result v128)
- (i16x8.load8x8_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_s (param $0 i32) (result v128)
- (i16x8.load8x8_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_s (param $0 i32) (result v128)
- (i32x4.load16x4_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_u (param $0 i32) (result v128)
- (i32x4.load16x4_u
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_s (param $0 i32) (result v128)
- (i64x2.load32x2_s
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_u (param $0 i32) (result v128)
- (i64x2.load32x2_u
- (local.get $0)
- )
- )
- (func $v128.load32_zero (param $0 i32) (result v128)
- (v128.load32_zero
- (local.get $0)
- )
- )
- (func $v128.load64_zero (param $0 i32) (result v128)
- (v128.load64_zero
- (local.get $0)
- )
- )
- (func $v8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.swizzle
- (local.get $0)
- (local.get $1)
- )
- )
- (func $prefetch.t (param $0 i32)
- (prefetch.t offset=3 align=2
- (local.get $0)
- )
- )
- (func $prefetch.nt (param $0 i32)
- (prefetch.nt offset=3 align=2
+ (func $i32x4.trunc_sat_f64x2_u_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
@@ -1434,34 +1386,4 @@
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_zero_s (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_s
- (local.get $0)
- )
- )
- (func $i32x4.trunc_sat_f64x2_zero_u (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_u
- (local.get $0)
- )
- )
- (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
- (f32x4.demote_f64x2_zero
- (local.get $0)
- )
- )
- (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
- (f64x2.promote_low_f32x4
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_s (param $0 v128) (result v128)
- (i32x4.widen_i8x16_s 0
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_u (param $0 v128) (result v128)
- (i32x4.widen_i8x16_u 0
- (local.get $0)
- )
- )
)
diff --git a/test/simd.wast.fromBinary b/test/simd.wast.fromBinary
index 4c84b5b25..56f3fa2cc 100644
--- a/test/simd.wast.fromBinary
+++ b/test/simd.wast.fromBinary
@@ -2,13 +2,11 @@
(type $v128_v128_=>_v128 (func (param v128 v128) (result v128)))
(type $v128_=>_v128 (func (param v128) (result v128)))
(type $i32_=>_v128 (func (param i32) (result v128)))
- (type $v128_=>_i32 (func (param v128) (result i32)))
(type $v128_i32_=>_v128 (func (param v128 i32) (result v128)))
- (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
+ (type $v128_=>_i32 (func (param v128) (result i32)))
(type $i32_v128_=>_none (func (param i32 v128)))
(type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
(type $none_=>_v128 (func (result v128)))
- (type $i32_=>_none (func (param i32)))
(type $v128_=>_i64 (func (param v128) (result i64)))
(type $v128_=>_f32 (func (param v128) (result f32)))
(type $v128_=>_f64 (func (param v128) (result f64)))
@@ -17,12 +15,63 @@
(type $v128_i64_=>_v128 (func (param v128 i64) (result v128)))
(type $v128_f32_=>_v128 (func (param v128 f32) (result v128)))
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
+ (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
(func $v128.load (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat
+ (local.get $0)
+ )
+ )
(func $v128.store (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
@@ -47,8 +96,14 @@
(func $v128.const.f64x2 (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $v128.shuffle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (func $i8x16.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.swizzle
(local.get $0)
(local.get $1)
)
@@ -58,6 +113,21 @@
(local.get $0)
)
)
+ (func $i16x8.splat (param $0 i32) (result v128)
+ (i16x8.splat
+ (local.get $0)
+ )
+ )
+ (func $f32x4.splat (param $0 f32) (result v128)
+ (f32x4.splat
+ (local.get $0)
+ )
+ )
+ (func $f64x2.splat (param $0 f64) (result v128)
+ (f64x2.splat
+ (local.get $0)
+ )
+ )
(func $i8x16.extract_lane_s (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
@@ -74,11 +144,6 @@
(local.get $1)
)
)
- (func $i16x8.splat (param $0 i32) (result v128)
- (i16x8.splat
- (local.get $0)
- )
- )
(func $i16x8.extract_lane_s (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
@@ -95,11 +160,6 @@
(local.get $1)
)
)
- (func $i32x4.splat (param $0 i32) (result v128)
- (i32x4.splat
- (local.get $0)
- )
- )
(func $i32x4.extract_lane (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
@@ -122,11 +182,6 @@
(local.get $1)
)
)
- (func $f32x4.splat (param $0 f32) (result v128)
- (f32x4.splat
- (local.get $0)
- )
- )
(func $f32x4.extract_lane (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
@@ -138,11 +193,6 @@
(local.get $1)
)
)
- (func $f64x2.splat (param $0 f64) (result v128)
- (f64x2.splat
- (local.get $0)
- )
- )
(func $f64x2.extract_lane (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
@@ -334,12 +384,6 @@
(local.get $1)
)
)
- (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
- (i64x2.eq
- (local.get $0)
- (local.get $1)
- )
- )
(func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
@@ -423,57 +467,34 @@
(local.get $1)
)
)
- (func $v128.or (param $0 v128) (param $1 v128) (result v128)
- (v128.or
- (local.get $0)
- (local.get $1)
- )
- )
- (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
- (v128.xor
- (local.get $0)
- (local.get $1)
- )
- )
(func $v128.andnot (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v128.bitselect
+ (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (v128.or
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v8x16.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v8x16.signselect
+ (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (v128.xor
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $v16x8.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v16x8.signselect
+ (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $v32x4.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v32x4.signselect
+ (func $v128.any_true (param $0 v128) (result i32)
+ (v128.any_true
(local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $v64x2.signselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v64x2.signselect
- (local.get $0)
- (local.get $1)
- (local.get $2)
)
)
(func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
@@ -560,8 +581,23 @@
(local.get $1)
)
)
- (func $i8x16.popcnt (param $0 v128) (result v128)
- (i8x16.popcnt
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero
+ (local.get $0)
+ )
+ )
+ (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
+ (f32x4.demote_f64x2_zero
+ (local.get $0)
+ )
+ )
+ (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
+ (f64x2.promote_low_f32x4
(local.get $0)
)
)
@@ -575,8 +611,8 @@
(local.get $0)
)
)
- (func $i8x16.any_true (param $0 v128) (result i32)
- (i8x16.any_true
+ (func $i8x16.popcnt (param $0 v128) (result v128)
+ (i8x16.popcnt
(local.get $0)
)
)
@@ -590,6 +626,38 @@
(local.get $0)
)
)
+ (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $f32x4.ceil (param $0 v128) (result v128)
+ (f32x4.ceil
+ (local.get $0)
+ )
+ )
+ (func $f32x4.floor (param $0 v128) (result v128)
+ (f32x4.floor
+ (local.get $0)
+ )
+ )
+ (func $f32x4.trunc (param $0 v128) (result v128)
+ (f32x4.trunc
+ (local.get $0)
+ )
+ )
+ (func $f32x4.nearest (param $0 v128) (result v128)
+ (f32x4.nearest
+ (local.get $0)
+ )
+ )
(func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
@@ -614,14 +682,14 @@
(local.get $1)
)
)
- (func $i8x16.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_s
+ (func $i8x16.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_u
+ (func $i8x16.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -632,22 +700,26 @@
(local.get $1)
)
)
- (func $i8x16.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_s
+ (func $i8x16.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_u
+ (func $i8x16.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.mul (param $0 v128) (param $1 v128) (result v128)
- (i8x16.mul
+ (func $f64x2.ceil (param $0 v128) (result v128)
+ (f64x2.ceil
+ (local.get $0)
+ )
+ )
+ (func $f64x2.floor (param $0 v128) (result v128)
+ (f64x2.floor
(local.get $0)
- (local.get $1)
)
)
(func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128)
@@ -674,12 +746,37 @@
(local.get $1)
)
)
+ (func $f64x2.trunc (param $0 v128) (result v128)
+ (f64x2.trunc
+ (local.get $0)
+ )
+ )
(func $i8x16.avgr_u (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
+ (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i16x8.abs (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
@@ -690,9 +787,10 @@
(local.get $0)
)
)
- (func $i16x8.any_true (param $0 v128) (result i32)
- (i16x8.any_true
+ (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.q15mulr_sat_s
(local.get $0)
+ (local.get $1)
)
)
(func $i16x8.all_true (param $0 v128) (result i32)
@@ -705,6 +803,38 @@
(local.get $0)
)
)
+ (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_u
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_s (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_s
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_low_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_u
+ (local.get $0)
+ )
+ )
+ (func $i16x8.extend_high_i8x16_u (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_u
+ (local.get $0)
+ )
+ )
(func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
@@ -729,14 +859,14 @@
(local.get $1)
)
)
- (func $i16x8.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_s
+ (func $i16x8.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_u
+ (func $i16x8.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
@@ -747,18 +877,23 @@
(local.get $1)
)
)
- (func $i16x8.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_s
+ (func $i16x8.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_u
+ (func $i16x8.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
+ (func $f64x2.nearest (param $0 v128) (result v128)
+ (f64x2.nearest
+ (local.get $0)
+ )
+ )
(func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
@@ -795,12 +930,6 @@
(local.get $1)
)
)
- (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.q15mulr_sat_s
- (local.get $0)
- (local.get $1)
- )
- )
(func $i16x8.extmul_low_i8x16_s (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
@@ -835,11 +964,6 @@
(local.get $0)
)
)
- (func $i32x4.any_true (param $0 v128) (result i32)
- (i32x4.any_true
- (local.get $0)
- )
- )
(func $i32x4.all_true (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
@@ -850,6 +974,26 @@
(local.get $0)
)
)
+ (func $i32x4.extend_low_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_s (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_s
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_low_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_u
+ (local.get $0)
+ )
+ )
+ (func $i32x4.extend_high_i16x8_u (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_u
+ (local.get $0)
+ )
+ )
(func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
@@ -940,16 +1084,46 @@
(local.get $1)
)
)
+ (func $i64x2.abs (param $0 v128) (result v128)
+ (i64x2.abs
+ (local.get $0)
+ )
+ )
(func $i64x2.neg (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
+ (func $i64x2.all_true (param $0 v128) (result i32)
+ (i64x2.all_true
+ (local.get $0)
+ )
+ )
(func $i64x2.bitmask (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
+ (func $i64x2.extend_low_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_s (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_s
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_low_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_u
+ (local.get $0)
+ )
+ )
+ (func $i64x2.extend_high_i32x4_u (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_u
+ (local.get $0)
+ )
+ )
(func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
@@ -986,6 +1160,42 @@
(local.get $1)
)
)
+ (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.eq
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ne
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.lt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.gt_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.le_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $i64x2.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ge_s
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(func $i64x2.extmul_low_i32x4_s (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
@@ -1010,6 +1220,21 @@
(local.get $1)
)
)
+ (func $f32x4.abs (param $0 v128) (result v128)
+ (f32x4.abs
+ (local.get $0)
+ )
+ )
+ (func $f32x4.neg (param $0 v128) (result v128)
+ (f32x4.neg
+ (local.get $0)
+ )
+ )
+ (func $f32x4.sqrt (param $0 v128) (result v128)
+ (f32x4.sqrt
+ (local.get $0)
+ )
+ )
(func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
@@ -1058,53 +1283,19 @@
(local.get $1)
)
)
- (func $f32x4.ceil (param $0 v128) (result v128)
- (f32x4.ceil
- (local.get $0)
- )
- )
- (func $f32x4.floor (param $0 v128) (result v128)
- (f32x4.floor
- (local.get $0)
- )
- )
- (func $f32x4.trunc (param $0 v128) (result v128)
- (f32x4.trunc
- (local.get $0)
- )
- )
- (func $f32x4.nearest (param $0 v128) (result v128)
- (f32x4.nearest
- (local.get $0)
- )
- )
- (func $f32x4.abs (param $0 v128) (result v128)
- (f32x4.abs
- (local.get $0)
- )
- )
- (func $f32x4.neg (param $0 v128) (result v128)
- (f32x4.neg
+ (func $f64x2.abs (param $0 v128) (result v128)
+ (f64x2.abs
(local.get $0)
)
)
- (func $f32x4.sqrt (param $0 v128) (result v128)
- (f32x4.sqrt
+ (func $f64x2.neg (param $0 v128) (result v128)
+ (f64x2.neg
(local.get $0)
)
)
- (func $f32x4.qfma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfma
+ (func $f64x2.sqrt (param $0 v128) (result v128)
+ (f64x2.sqrt
(local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $f32x4.qfms (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 (param $0 v128) (param $1 v128) (result v128)
@@ -1155,75 +1346,6 @@
(local.get $1)
)
)
- (func $f64x2.ceil (param $0 v128) (result v128)
- (f64x2.ceil
- (local.get $0)
- )
- )
- (func $f64x2.floor (param $0 v128) (result v128)
- (f64x2.floor
- (local.get $0)
- )
- )
- (func $f64x2.trunc (param $0 v128) (result v128)
- (f64x2.trunc
- (local.get $0)
- )
- )
- (func $f64x2.nearest (param $0 v128) (result v128)
- (f64x2.nearest
- (local.get $0)
- )
- )
- (func $f64x2.abs (param $0 v128) (result v128)
- (f64x2.abs
- (local.get $0)
- )
- )
- (func $f64x2.neg (param $0 v128) (result v128)
- (f64x2.neg
- (local.get $0)
- )
- )
- (func $f64x2.sqrt (param $0 v128) (result v128)
- (f64x2.sqrt
- (local.get $0)
- )
- )
- (func $f64x2.qfma (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 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f64x2.qfms
- (local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_u
- (local.get $0)
- )
- )
(func $i32x4.trunc_sat_f32x4_s (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
@@ -1234,16 +1356,6 @@
(local.get $0)
)
)
- (func $i64x2.trunc_sat_f64x2_s (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_s
- (local.get $0)
- )
- )
- (func $i64x2.trunc_sat_f64x2_u (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_u
- (local.get $0)
- )
- )
(func $f32x4.convert_i32x4_s (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
@@ -1254,173 +1366,13 @@
(local.get $0)
)
)
- (func $f64x2.convert_i64x2_s (param $0 v128) (result v128)
- (f64x2.convert_i64x2_s
- (local.get $0)
- )
- )
- (func $f64x2.convert_i64x2_u (param $0 v128) (result v128)
- (f64x2.convert_i64x2_u
- (local.get $0)
- )
- )
- (func $v8x16.load_splat (param $0 i32) (result v128)
- (v8x16.load_splat
- (local.get $0)
- )
- )
- (func $v16x8.load_splat (param $0 i32) (result v128)
- (v16x8.load_splat
+ (func $i32x4.trunc_sat_f64x2_s_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $v32x4.load_splat (param $0 i32) (result v128)
- (v32x4.load_splat
- (local.get $0)
- )
- )
- (func $v64x2.load_splat (param $0 i32) (result v128)
- (v64x2.load_splat
- (local.get $0)
- )
- )
- (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_s
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_u
- (local.get $0)
- (local.get $1)
- )
- )
- (func $i16x8.widen_low_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_high_i8x16_s (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_s
- (local.get $0)
- )
- )
- (func $i16x8.widen_low_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_u
- (local.get $0)
- )
- )
- (func $i16x8.widen_high_i8x16_u (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_s (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_s
- (local.get $0)
- )
- )
- (func $i32x4.widen_low_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_u
- (local.get $0)
- )
- )
- (func $i32x4.widen_high_i16x8_u (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_s (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_s
- (local.get $0)
- )
- )
- (func $i64x2.widen_low_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_u
- (local.get $0)
- )
- )
- (func $i64x2.widen_high_i32x4_u (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_u (param $0 i32) (result v128)
- (i16x8.load8x8_u
- (local.get $0)
- )
- )
- (func $i16x8.load8x8_s (param $0 i32) (result v128)
- (i16x8.load8x8_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_s (param $0 i32) (result v128)
- (i32x4.load16x4_s
- (local.get $0)
- )
- )
- (func $i32x4.load16x4_u (param $0 i32) (result v128)
- (i32x4.load16x4_u
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_s (param $0 i32) (result v128)
- (i64x2.load32x2_s
- (local.get $0)
- )
- )
- (func $i64x2.load32x2_u (param $0 i32) (result v128)
- (i64x2.load32x2_u
- (local.get $0)
- )
- )
- (func $v128.load32_zero (param $0 i32) (result v128)
- (v128.load32_zero
- (local.get $0)
- )
- )
- (func $v128.load64_zero (param $0 i32) (result v128)
- (v128.load64_zero
- (local.get $0)
- )
- )
- (func $v8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
- (v8x16.swizzle
- (local.get $0)
- (local.get $1)
- )
- )
- (func $prefetch.t (param $0 i32)
- (prefetch.t offset=3 align=2
- (local.get $0)
- )
- )
- (func $prefetch.nt (param $0 i32)
- (prefetch.nt offset=3 align=2
+ (func $i32x4.trunc_sat_f64x2_u_zero (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
@@ -1434,35 +1386,5 @@
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_zero_s (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_s
- (local.get $0)
- )
- )
- (func $i32x4.trunc_sat_f64x2_zero_u (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_u
- (local.get $0)
- )
- )
- (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
- (f32x4.demote_f64x2_zero
- (local.get $0)
- )
- )
- (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
- (f64x2.promote_low_f32x4
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_s (param $0 v128) (result v128)
- (i32x4.widen_i8x16_s 0
- (local.get $0)
- )
- )
- (func $i32x4.widen_i8x16_u (param $0 v128) (result v128)
- (i32x4.widen_i8x16_u 0
- (local.get $0)
- )
- )
)
diff --git a/test/simd.wast.fromBinary.noDebugInfo b/test/simd.wast.fromBinary.noDebugInfo
index bb5cdd5e0..78a6576d5 100644
--- a/test/simd.wast.fromBinary.noDebugInfo
+++ b/test/simd.wast.fromBinary.noDebugInfo
@@ -2,13 +2,11 @@
(type $v128_v128_=>_v128 (func (param v128 v128) (result v128)))
(type $v128_=>_v128 (func (param v128) (result v128)))
(type $i32_=>_v128 (func (param i32) (result v128)))
- (type $v128_=>_i32 (func (param v128) (result i32)))
(type $v128_i32_=>_v128 (func (param v128 i32) (result v128)))
- (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
+ (type $v128_=>_i32 (func (param v128) (result i32)))
(type $i32_v128_=>_none (func (param i32 v128)))
(type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
(type $none_=>_v128 (func (result v128)))
- (type $i32_=>_none (func (param i32)))
(type $v128_=>_i64 (func (param v128) (result i64)))
(type $v128_=>_f32 (func (param v128) (result f32)))
(type $v128_=>_f64 (func (param v128) (result f64)))
@@ -17,1452 +15,1376 @@
(type $v128_i64_=>_v128 (func (param v128 i64) (result v128)))
(type $v128_f32_=>_v128 (func (param v128 f32) (result v128)))
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
+ (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
(func $0 (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
- (func $1 (param $0 i32) (param $1 v128)
+ (func $1 (param $0 i32) (result v128)
+ (v128.load8x8_s
+ (local.get $0)
+ )
+ )
+ (func $2 (param $0 i32) (result v128)
+ (v128.load8x8_u
+ (local.get $0)
+ )
+ )
+ (func $3 (param $0 i32) (result v128)
+ (v128.load16x4_s
+ (local.get $0)
+ )
+ )
+ (func $4 (param $0 i32) (result v128)
+ (v128.load16x4_u
+ (local.get $0)
+ )
+ )
+ (func $5 (param $0 i32) (result v128)
+ (v128.load32x2_s
+ (local.get $0)
+ )
+ )
+ (func $6 (param $0 i32) (result v128)
+ (v128.load32x2_u
+ (local.get $0)
+ )
+ )
+ (func $7 (param $0 i32) (result v128)
+ (v128.load8_splat
+ (local.get $0)
+ )
+ )
+ (func $8 (param $0 i32) (result v128)
+ (v128.load16_splat
+ (local.get $0)
+ )
+ )
+ (func $9 (param $0 i32) (result v128)
+ (v128.load32_splat
+ (local.get $0)
+ )
+ )
+ (func $10 (param $0 i32) (result v128)
+ (v128.load64_splat
+ (local.get $0)
+ )
+ )
+ (func $11 (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $2 (result v128)
+ (func $12 (result v128)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
- (func $3 (result v128)
+ (func $13 (result v128)
(v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00080007)
)
- (func $4 (result v128)
+ (func $14 (result v128)
(v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004)
)
- (func $5 (result v128)
+ (func $15 (result v128)
(v128.const i32x4 0x00000001 0x00000000 0x00000002 0x00000000)
)
- (func $6 (result v128)
+ (func $16 (result v128)
(v128.const i32x4 0x3f800000 0x40000000 0x40400000 0x40800000)
)
- (func $7 (result v128)
+ (func $17 (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $8 (param $0 v128) (param $1 v128) (result v128)
- (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (func $18 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
(local.get $0)
(local.get $1)
)
)
- (func $9 (param $0 i32) (result v128)
+ (func $19 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.swizzle
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $20 (param $0 i32) (result v128)
(i8x16.splat
(local.get $0)
)
)
- (func $10 (param $0 v128) (result i32)
+ (func $21 (param $0 i32) (result v128)
+ (i16x8.splat
+ (local.get $0)
+ )
+ )
+ (func $22 (param $0 f32) (result v128)
+ (f32x4.splat
+ (local.get $0)
+ )
+ )
+ (func $23 (param $0 f64) (result v128)
+ (f64x2.splat
+ (local.get $0)
+ )
+ )
+ (func $24 (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
)
)
- (func $11 (param $0 v128) (result i32)
+ (func $25 (param $0 v128) (result i32)
(i8x16.extract_lane_u 0
(local.get $0)
)
)
- (func $12 (param $0 v128) (param $1 i32) (result v128)
+ (func $26 (param $0 v128) (param $1 i32) (result v128)
(i8x16.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $13 (param $0 i32) (result v128)
- (i16x8.splat
- (local.get $0)
- )
- )
- (func $14 (param $0 v128) (result i32)
+ (func $27 (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
)
)
- (func $15 (param $0 v128) (result i32)
+ (func $28 (param $0 v128) (result i32)
(i16x8.extract_lane_u 0
(local.get $0)
)
)
- (func $16 (param $0 v128) (param $1 i32) (result v128)
+ (func $29 (param $0 v128) (param $1 i32) (result v128)
(i16x8.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $17 (param $0 i32) (result v128)
- (i32x4.splat
- (local.get $0)
- )
- )
- (func $18 (param $0 v128) (result i32)
+ (func $30 (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
)
)
- (func $19 (param $0 v128) (param $1 i32) (result v128)
+ (func $31 (param $0 v128) (param $1 i32) (result v128)
(i32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $20 (param $0 v128) (result i64)
+ (func $32 (param $0 v128) (result i64)
(i64x2.extract_lane 0
(local.get $0)
)
)
- (func $21 (param $0 v128) (param $1 i64) (result v128)
+ (func $33 (param $0 v128) (param $1 i64) (result v128)
(i64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $22 (param $0 f32) (result v128)
- (f32x4.splat
- (local.get $0)
- )
- )
- (func $23 (param $0 v128) (result f32)
+ (func $34 (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
)
)
- (func $24 (param $0 v128) (param $1 f32) (result v128)
+ (func $35 (param $0 v128) (param $1 f32) (result v128)
(f32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $25 (param $0 f64) (result v128)
- (f64x2.splat
- (local.get $0)
- )
- )
- (func $26 (param $0 v128) (result f64)
+ (func $36 (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
)
)
- (func $27 (param $0 v128) (param $1 f64) (result v128)
+ (func $37 (param $0 v128) (param $1 f64) (result v128)
(f64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $28 (param $0 v128) (param $1 v128) (result v128)
+ (func $38 (param $0 v128) (param $1 v128) (result v128)
(i8x16.eq
(local.get $0)
(local.get $1)
)
)
- (func $29 (param $0 v128) (param $1 v128) (result v128)
+ (func $39 (param $0 v128) (param $1 v128) (result v128)
(i8x16.ne
(local.get $0)
(local.get $1)
)
)
- (func $30 (param $0 v128) (param $1 v128) (result v128)
+ (func $40 (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $31 (param $0 v128) (param $1 v128) (result v128)
+ (func $41 (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $32 (param $0 v128) (param $1 v128) (result v128)
+ (func $42 (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $33 (param $0 v128) (param $1 v128) (result v128)
+ (func $43 (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $34 (param $0 v128) (param $1 v128) (result v128)
+ (func $44 (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_s
(local.get $0)
(local.get $1)
)
)
- (func $35 (param $0 v128) (param $1 v128) (result v128)
+ (func $45 (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_u
(local.get $0)
(local.get $1)
)
)
- (func $36 (param $0 v128) (param $1 v128) (result v128)
+ (func $46 (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $37 (param $0 v128) (param $1 v128) (result v128)
+ (func $47 (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $38 (param $0 v128) (param $1 v128) (result v128)
+ (func $48 (param $0 v128) (param $1 v128) (result v128)
(i16x8.eq
(local.get $0)
(local.get $1)
)
)
- (func $39 (param $0 v128) (param $1 v128) (result v128)
+ (func $49 (param $0 v128) (param $1 v128) (result v128)
(i16x8.ne
(local.get $0)
(local.get $1)
)
)
- (func $40 (param $0 v128) (param $1 v128) (result v128)
+ (func $50 (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $41 (param $0 v128) (param $1 v128) (result v128)
+ (func $51 (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $42 (param $0 v128) (param $1 v128) (result v128)
+ (func $52 (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $43 (param $0 v128) (param $1 v128) (result v128)
+ (func $53 (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $44 (param $0 v128) (param $1 v128) (result v128)
+ (func $54 (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_s
(local.get $0)
(local.get $1)
)
)
- (func $45 (param $0 v128) (param $1 v128) (result v128)
+ (func $55 (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_u
(local.get $0)
(local.get $1)
)
)
- (func $46 (param $0 v128) (param $1 v128) (result v128)
+ (func $56 (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $47 (param $0 v128) (param $1 v128) (result v128)
+ (func $57 (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $48 (param $0 v128) (param $1 v128) (result v128)
+ (func $58 (param $0 v128) (param $1 v128) (result v128)
(i32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $49 (param $0 v128) (param $1 v128) (result v128)
+ (func $59 (param $0 v128) (param $1 v128) (result v128)
(i32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $50 (param $0 v128) (param $1 v128) (result v128)
+ (func $60 (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $51 (param $0 v128) (param $1 v128) (result v128)
+ (func $61 (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $52 (param $0 v128) (param $1 v128) (result v128)
+ (func $62 (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $53 (param $0 v128) (param $1 v128) (result v128)
+ (func $63 (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $54 (param $0 v128) (param $1 v128) (result v128)
+ (func $64 (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_s
(local.get $0)
(local.get $1)
)
)
- (func $55 (param $0 v128) (param $1 v128) (result v128)
+ (func $65 (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_u
(local.get $0)
(local.get $1)
)
)
- (func $56 (param $0 v128) (param $1 v128) (result v128)
+ (func $66 (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $57 (param $0 v128) (param $1 v128) (result v128)
+ (func $67 (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $58 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.eq
- (local.get $0)
- (local.get $1)
- )
- )
- (func $59 (param $0 v128) (param $1 v128) (result v128)
+ (func $68 (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $60 (param $0 v128) (param $1 v128) (result v128)
+ (func $69 (param $0 v128) (param $1 v128) (result v128)
(f32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $61 (param $0 v128) (param $1 v128) (result v128)
+ (func $70 (param $0 v128) (param $1 v128) (result v128)
(f32x4.lt
(local.get $0)
(local.get $1)
)
)
- (func $62 (param $0 v128) (param $1 v128) (result v128)
+ (func $71 (param $0 v128) (param $1 v128) (result v128)
(f32x4.gt
(local.get $0)
(local.get $1)
)
)
- (func $63 (param $0 v128) (param $1 v128) (result v128)
+ (func $72 (param $0 v128) (param $1 v128) (result v128)
(f32x4.le
(local.get $0)
(local.get $1)
)
)
- (func $64 (param $0 v128) (param $1 v128) (result v128)
+ (func $73 (param $0 v128) (param $1 v128) (result v128)
(f32x4.ge
(local.get $0)
(local.get $1)
)
)
- (func $65 (param $0 v128) (param $1 v128) (result v128)
+ (func $74 (param $0 v128) (param $1 v128) (result v128)
(f64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $66 (param $0 v128) (param $1 v128) (result v128)
+ (func $75 (param $0 v128) (param $1 v128) (result v128)
(f64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $67 (param $0 v128) (param $1 v128) (result v128)
+ (func $76 (param $0 v128) (param $1 v128) (result v128)
(f64x2.lt
(local.get $0)
(local.get $1)
)
)
- (func $68 (param $0 v128) (param $1 v128) (result v128)
+ (func $77 (param $0 v128) (param $1 v128) (result v128)
(f64x2.gt
(local.get $0)
(local.get $1)
)
)
- (func $69 (param $0 v128) (param $1 v128) (result v128)
+ (func $78 (param $0 v128) (param $1 v128) (result v128)
(f64x2.le
(local.get $0)
(local.get $1)
)
)
- (func $70 (param $0 v128) (param $1 v128) (result v128)
+ (func $79 (param $0 v128) (param $1 v128) (result v128)
(f64x2.ge
(local.get $0)
(local.get $1)
)
)
- (func $71 (param $0 v128) (result v128)
+ (func $80 (param $0 v128) (result v128)
(v128.not
(local.get $0)
)
)
- (func $72 (param $0 v128) (param $1 v128) (result v128)
+ (func $81 (param $0 v128) (param $1 v128) (result v128)
(v128.and
(local.get $0)
(local.get $1)
)
)
- (func $73 (param $0 v128) (param $1 v128) (result v128)
- (v128.or
- (local.get $0)
- (local.get $1)
- )
- )
- (func $74 (param $0 v128) (param $1 v128) (result v128)
- (v128.xor
- (local.get $0)
- (local.get $1)
- )
- )
- (func $75 (param $0 v128) (param $1 v128) (result v128)
+ (func $82 (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $76 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v128.bitselect
- (local.get $0)
- (local.get $1)
- (local.get $2)
- )
- )
- (func $77 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v8x16.signselect
+ (func $83 (param $0 v128) (param $1 v128) (result v128)
+ (v128.or
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $78 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v16x8.signselect
+ (func $84 (param $0 v128) (param $1 v128) (result v128)
+ (v128.xor
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $79 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v32x4.signselect
+ (func $85 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $80 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v64x2.signselect
+ (func $86 (param $0 v128) (result i32)
+ (v128.any_true
(local.get $0)
- (local.get $1)
- (local.get $2)
)
)
- (func $81 (param $0 i32) (param $1 v128) (result v128)
+ (func $87 (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $82 (param $0 i32) (param $1 v128) (result v128)
+ (func $88 (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $83 (param $0 i32) (param $1 v128) (result v128)
+ (func $89 (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $84 (param $0 i32) (param $1 v128) (result v128)
+ (func $90 (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $85 (param $0 i32) (param $1 v128) (result v128)
+ (func $91 (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $86 (param $0 i32) (param $1 v128) (result v128)
+ (func $92 (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $87 (param $0 i32) (param $1 v128) (result v128)
+ (func $93 (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $88 (param $0 i32) (param $1 v128)
+ (func $94 (param $0 i32) (param $1 v128)
(v128.store8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $89 (param $0 i32) (param $1 v128)
+ (func $95 (param $0 i32) (param $1 v128)
(v128.store16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $90 (param $0 i32) (param $1 v128)
+ (func $96 (param $0 i32) (param $1 v128)
(v128.store32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $91 (param $0 i32) (param $1 v128)
+ (func $97 (param $0 i32) (param $1 v128)
(v128.store64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $92 (param $0 i32) (param $1 v128)
+ (func $98 (param $0 i32) (param $1 v128)
(v128.store64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $93 (param $0 i32) (param $1 v128)
+ (func $99 (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $94 (param $0 i32) (param $1 v128)
+ (func $100 (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $95 (param $0 v128) (result v128)
- (i8x16.popcnt
- (local.get $0)
- )
- )
- (func $96 (param $0 v128) (result v128)
- (i8x16.abs
+ (func $101 (param $0 i32) (result v128)
+ (v128.load32_zero
(local.get $0)
)
)
- (func $97 (param $0 v128) (result v128)
- (i8x16.neg
+ (func $102 (param $0 i32) (result v128)
+ (v128.load64_zero
(local.get $0)
)
)
- (func $98 (param $0 v128) (result i32)
- (i8x16.any_true
+ (func $103 (param $0 v128) (result v128)
+ (f32x4.demote_f64x2_zero
(local.get $0)
)
)
- (func $99 (param $0 v128) (result i32)
- (i8x16.all_true
+ (func $104 (param $0 v128) (result v128)
+ (f64x2.promote_low_f32x4
(local.get $0)
)
)
- (func $100 (param $0 v128) (result i32)
- (i8x16.bitmask
+ (func $105 (param $0 v128) (result v128)
+ (i8x16.abs
(local.get $0)
)
)
- (func $101 (param $0 v128) (param $1 i32) (result v128)
- (i8x16.shl
+ (func $106 (param $0 v128) (result v128)
+ (i8x16.neg
(local.get $0)
- (local.get $1)
)
)
- (func $102 (param $0 v128) (param $1 i32) (result v128)
- (i8x16.shr_s
+ (func $107 (param $0 v128) (result v128)
+ (i8x16.popcnt
(local.get $0)
- (local.get $1)
)
)
- (func $103 (param $0 v128) (param $1 i32) (result v128)
- (i8x16.shr_u
+ (func $108 (param $0 v128) (result i32)
+ (i8x16.all_true
(local.get $0)
- (local.get $1)
)
)
- (func $104 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add
+ (func $109 (param $0 v128) (result i32)
+ (i8x16.bitmask
(local.get $0)
- (local.get $1)
)
)
- (func $105 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_s
+ (func $110 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $106 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.add_saturate_u
+ (func $111 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.narrow_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $107 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub
+ (func $112 (param $0 v128) (result v128)
+ (f32x4.ceil
(local.get $0)
- (local.get $1)
)
)
- (func $108 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_s
+ (func $113 (param $0 v128) (result v128)
+ (f32x4.floor
(local.get $0)
- (local.get $1)
)
)
- (func $109 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.sub_saturate_u
+ (func $114 (param $0 v128) (result v128)
+ (f32x4.trunc
(local.get $0)
- (local.get $1)
)
)
- (func $110 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.mul
+ (func $115 (param $0 v128) (result v128)
+ (f32x4.nearest
(local.get $0)
- (local.get $1)
)
)
- (func $111 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.min_s
+ (func $116 (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shl
(local.get $0)
(local.get $1)
)
)
- (func $112 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.min_u
+ (func $117 (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $113 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.max_s
+ (func $118 (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $114 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.max_u
+ (func $119 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add
(local.get $0)
(local.get $1)
)
)
- (func $115 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.avgr_u
+ (func $120 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $116 (param $0 v128) (result v128)
- (i16x8.abs
- (local.get $0)
- )
- )
- (func $117 (param $0 v128) (result v128)
- (i16x8.neg
- (local.get $0)
- )
- )
- (func $118 (param $0 v128) (result i32)
- (i16x8.any_true
- (local.get $0)
- )
- )
- (func $119 (param $0 v128) (result i32)
- (i16x8.all_true
- (local.get $0)
- )
- )
- (func $120 (param $0 v128) (result i32)
- (i16x8.bitmask
- (local.get $0)
- )
- )
- (func $121 (param $0 v128) (param $1 i32) (result v128)
- (i16x8.shl
+ (func $121 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $122 (param $0 v128) (param $1 i32) (result v128)
- (i16x8.shr_s
+ (func $122 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub
(local.get $0)
(local.get $1)
)
)
- (func $123 (param $0 v128) (param $1 i32) (result v128)
- (i16x8.shr_u
+ (func $123 (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
(func $124 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add
+ (i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $125 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_s
+ (func $125 (param $0 v128) (result v128)
+ (f64x2.ceil
(local.get $0)
- (local.get $1)
)
)
- (func $126 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.add_saturate_u
+ (func $126 (param $0 v128) (result v128)
+ (f64x2.floor
(local.get $0)
- (local.get $1)
)
)
(func $127 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub
+ (i8x16.min_s
(local.get $0)
(local.get $1)
)
)
(func $128 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_s
+ (i8x16.min_u
(local.get $0)
(local.get $1)
)
)
(func $129 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.sub_saturate_u
+ (i8x16.max_s
(local.get $0)
(local.get $1)
)
)
(func $130 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.mul
+ (i8x16.max_u
(local.get $0)
(local.get $1)
)
)
- (func $131 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.min_s
+ (func $131 (param $0 v128) (result v128)
+ (f64x2.trunc
(local.get $0)
- (local.get $1)
)
)
(func $132 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.min_u
+ (i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $133 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.max_s
+ (func $133 (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_s
(local.get $0)
- (local.get $1)
)
)
- (func $134 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.max_u
+ (func $134 (param $0 v128) (result v128)
+ (i16x8.extadd_pairwise_i8x16_u
(local.get $0)
- (local.get $1)
)
)
- (func $135 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.avgr_u
+ (func $135 (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_s
(local.get $0)
- (local.get $1)
)
)
- (func $136 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.q15mulr_sat_s
+ (func $136 (param $0 v128) (result v128)
+ (i32x4.extadd_pairwise_i16x8_u
(local.get $0)
- (local.get $1)
)
)
- (func $137 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.extmul_low_i8x16_s
+ (func $137 (param $0 v128) (result v128)
+ (i16x8.abs
(local.get $0)
- (local.get $1)
)
)
- (func $138 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.extmul_high_i8x16_s
+ (func $138 (param $0 v128) (result v128)
+ (i16x8.neg
(local.get $0)
- (local.get $1)
)
)
(func $139 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.extmul_low_i8x16_u
+ (i16x8.q15mulr_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $140 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.extmul_high_i8x16_u
+ (func $140 (param $0 v128) (result i32)
+ (i16x8.all_true
(local.get $0)
- (local.get $1)
)
)
- (func $141 (param $0 v128) (result v128)
- (i32x4.abs
+ (func $141 (param $0 v128) (result i32)
+ (i16x8.bitmask
(local.get $0)
)
)
- (func $142 (param $0 v128) (result v128)
- (i32x4.neg
+ (func $142 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_s
(local.get $0)
+ (local.get $1)
)
)
- (func $143 (param $0 v128) (result i32)
- (i32x4.any_true
+ (func $143 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.narrow_i32x4_u
(local.get $0)
+ (local.get $1)
)
)
- (func $144 (param $0 v128) (result i32)
- (i32x4.all_true
+ (func $144 (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_s
(local.get $0)
)
)
- (func $145 (param $0 v128) (result i32)
- (i32x4.bitmask
+ (func $145 (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_s
(local.get $0)
)
)
- (func $146 (param $0 v128) (param $1 i32) (result v128)
- (i32x4.shl
+ (func $146 (param $0 v128) (result v128)
+ (i16x8.extend_low_i8x16_u
(local.get $0)
- (local.get $1)
)
)
- (func $147 (param $0 v128) (param $1 i32) (result v128)
- (i32x4.shr_s
+ (func $147 (param $0 v128) (result v128)
+ (i16x8.extend_high_i8x16_u
(local.get $0)
- (local.get $1)
)
)
(func $148 (param $0 v128) (param $1 i32) (result v128)
- (i32x4.shr_u
+ (i16x8.shl
(local.get $0)
(local.get $1)
)
)
- (func $149 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.add
+ (func $149 (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $150 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.sub
+ (func $150 (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.shr_u
(local.get $0)
(local.get $1)
)
)
(func $151 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.mul
+ (i16x8.add
(local.get $0)
(local.get $1)
)
)
(func $152 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.min_s
+ (i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
(func $153 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.min_u
+ (i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
)
(func $154 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.max_s
+ (i16x8.sub
(local.get $0)
(local.get $1)
)
)
(func $155 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.max_u
+ (i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
(func $156 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.dot_i16x8_s
+ (i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $157 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.extmul_low_i16x8_s
+ (func $157 (param $0 v128) (result v128)
+ (f64x2.nearest
(local.get $0)
- (local.get $1)
)
)
(func $158 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.extmul_high_i16x8_s
+ (i16x8.mul
(local.get $0)
(local.get $1)
)
)
(func $159 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.extmul_low_i16x8_u
+ (i16x8.min_s
(local.get $0)
(local.get $1)
)
)
(func $160 (param $0 v128) (param $1 v128) (result v128)
- (i32x4.extmul_high_i16x8_u
+ (i16x8.min_u
(local.get $0)
(local.get $1)
)
)
- (func $161 (param $0 v128) (result v128)
- (i64x2.neg
+ (func $161 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.max_s
(local.get $0)
+ (local.get $1)
)
)
- (func $162 (param $0 v128) (result i32)
- (i64x2.bitmask
+ (func $162 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.max_u
(local.get $0)
+ (local.get $1)
)
)
- (func $163 (param $0 v128) (param $1 i32) (result v128)
- (i64x2.shl
+ (func $163 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $164 (param $0 v128) (param $1 i32) (result v128)
- (i64x2.shr_s
+ (func $164 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.extmul_low_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $165 (param $0 v128) (param $1 i32) (result v128)
- (i64x2.shr_u
+ (func $165 (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.extmul_high_i8x16_s
(local.get $0)
(local.get $1)
)
)
(func $166 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.add
+ (i16x8.extmul_low_i8x16_u
(local.get $0)
(local.get $1)
)
)
(func $167 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.sub
+ (i16x8.extmul_high_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $168 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.mul
+ (func $168 (param $0 v128) (result v128)
+ (i32x4.abs
(local.get $0)
- (local.get $1)
)
)
- (func $169 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.extmul_low_i32x4_s
+ (func $169 (param $0 v128) (result v128)
+ (i32x4.neg
(local.get $0)
- (local.get $1)
)
)
- (func $170 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.extmul_high_i32x4_s
+ (func $170 (param $0 v128) (result i32)
+ (i32x4.all_true
(local.get $0)
- (local.get $1)
)
)
- (func $171 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.extmul_low_i32x4_u
+ (func $171 (param $0 v128) (result i32)
+ (i32x4.bitmask
(local.get $0)
- (local.get $1)
)
)
- (func $172 (param $0 v128) (param $1 v128) (result v128)
- (i64x2.extmul_high_i32x4_u
+ (func $172 (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_s
(local.get $0)
- (local.get $1)
)
)
- (func $173 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.add
+ (func $173 (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_s
(local.get $0)
- (local.get $1)
)
)
- (func $174 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.sub
+ (func $174 (param $0 v128) (result v128)
+ (i32x4.extend_low_i16x8_u
(local.get $0)
- (local.get $1)
)
)
- (func $175 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.mul
+ (func $175 (param $0 v128) (result v128)
+ (i32x4.extend_high_i16x8_u
(local.get $0)
- (local.get $1)
)
)
- (func $176 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.div
+ (func $176 (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shl
(local.get $0)
(local.get $1)
)
)
- (func $177 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.min
+ (func $177 (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $178 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.max
+ (func $178 (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shr_u
(local.get $0)
(local.get $1)
)
)
(func $179 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.pmin
+ (i32x4.add
(local.get $0)
(local.get $1)
)
)
(func $180 (param $0 v128) (param $1 v128) (result v128)
- (f32x4.pmax
+ (i32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $181 (param $0 v128) (result v128)
- (f32x4.ceil
+ (func $181 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.mul
(local.get $0)
+ (local.get $1)
)
)
- (func $182 (param $0 v128) (result v128)
- (f32x4.floor
+ (func $182 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.min_s
(local.get $0)
+ (local.get $1)
)
)
- (func $183 (param $0 v128) (result v128)
- (f32x4.trunc
+ (func $183 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.min_u
(local.get $0)
+ (local.get $1)
)
)
- (func $184 (param $0 v128) (result v128)
- (f32x4.nearest
+ (func $184 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.max_s
(local.get $0)
+ (local.get $1)
)
)
- (func $185 (param $0 v128) (result v128)
- (f32x4.abs
+ (func $185 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.max_u
(local.get $0)
+ (local.get $1)
)
)
- (func $186 (param $0 v128) (result v128)
- (f32x4.neg
+ (func $186 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.dot_i16x8_s
(local.get $0)
+ (local.get $1)
)
)
- (func $187 (param $0 v128) (result v128)
- (f32x4.sqrt
+ (func $187 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.extmul_low_i16x8_s
(local.get $0)
+ (local.get $1)
)
)
- (func $188 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfma
+ (func $188 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.extmul_high_i16x8_s
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $189 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f32x4.qfms
+ (func $189 (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.extmul_low_i16x8_u
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
(func $190 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.add
+ (i32x4.extmul_high_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $191 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.sub
+ (func $191 (param $0 v128) (result v128)
+ (i64x2.abs
(local.get $0)
- (local.get $1)
)
)
- (func $192 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.mul
+ (func $192 (param $0 v128) (result v128)
+ (i64x2.neg
(local.get $0)
- (local.get $1)
)
)
- (func $193 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.div
+ (func $193 (param $0 v128) (result i32)
+ (i64x2.all_true
(local.get $0)
- (local.get $1)
)
)
- (func $194 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.min
+ (func $194 (param $0 v128) (result i32)
+ (i64x2.bitmask
(local.get $0)
- (local.get $1)
)
)
- (func $195 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.max
+ (func $195 (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_s
(local.get $0)
- (local.get $1)
)
)
- (func $196 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.pmin
+ (func $196 (param $0 v128) (result v128)
+ (i64x2.extend_high_i32x4_s
(local.get $0)
- (local.get $1)
)
)
- (func $197 (param $0 v128) (param $1 v128) (result v128)
- (f64x2.pmax
+ (func $197 (param $0 v128) (result v128)
+ (i64x2.extend_low_i32x4_u
(local.get $0)
- (local.get $1)
)
)
(func $198 (param $0 v128) (result v128)
- (f64x2.ceil
+ (i64x2.extend_high_i32x4_u
(local.get $0)
)
)
- (func $199 (param $0 v128) (result v128)
- (f64x2.floor
+ (func $199 (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shl
(local.get $0)
+ (local.get $1)
)
)
- (func $200 (param $0 v128) (result v128)
- (f64x2.trunc
+ (func $200 (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shr_s
(local.get $0)
+ (local.get $1)
)
)
- (func $201 (param $0 v128) (result v128)
- (f64x2.nearest
+ (func $201 (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shr_u
(local.get $0)
+ (local.get $1)
)
)
- (func $202 (param $0 v128) (result v128)
- (f64x2.abs
+ (func $202 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.add
(local.get $0)
+ (local.get $1)
)
)
- (func $203 (param $0 v128) (result v128)
- (f64x2.neg
+ (func $203 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.sub
(local.get $0)
+ (local.get $1)
)
)
- (func $204 (param $0 v128) (result v128)
- (f64x2.sqrt
+ (func $204 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.mul
(local.get $0)
+ (local.get $1)
)
)
- (func $205 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f64x2.qfma
+ (func $205 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.eq
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $206 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (f64x2.qfms
+ (func $206 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ne
(local.get $0)
(local.get $1)
- (local.get $2)
)
)
- (func $207 (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_s
+ (func $207 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.lt_s
(local.get $0)
+ (local.get $1)
)
)
- (func $208 (param $0 v128) (result v128)
- (i16x8.extadd_pairwise_i8x16_u
+ (func $208 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.gt_s
(local.get $0)
+ (local.get $1)
)
)
- (func $209 (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_s
+ (func $209 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.le_s
(local.get $0)
+ (local.get $1)
)
)
- (func $210 (param $0 v128) (result v128)
- (i32x4.extadd_pairwise_i16x8_u
+ (func $210 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.ge_s
(local.get $0)
+ (local.get $1)
)
)
- (func $211 (param $0 v128) (result v128)
- (i32x4.trunc_sat_f32x4_s
+ (func $211 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.extmul_low_i32x4_s
(local.get $0)
+ (local.get $1)
)
)
- (func $212 (param $0 v128) (result v128)
- (i32x4.trunc_sat_f32x4_u
+ (func $212 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.extmul_high_i32x4_s
(local.get $0)
+ (local.get $1)
)
)
- (func $213 (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_s
+ (func $213 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.extmul_low_i32x4_u
(local.get $0)
+ (local.get $1)
)
)
- (func $214 (param $0 v128) (result v128)
- (i64x2.trunc_sat_f64x2_u
+ (func $214 (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.extmul_high_i32x4_u
(local.get $0)
+ (local.get $1)
)
)
(func $215 (param $0 v128) (result v128)
- (f32x4.convert_i32x4_s
+ (f32x4.abs
(local.get $0)
)
)
(func $216 (param $0 v128) (result v128)
- (f32x4.convert_i32x4_u
+ (f32x4.neg
(local.get $0)
)
)
(func $217 (param $0 v128) (result v128)
- (f64x2.convert_i64x2_s
+ (f32x4.sqrt
(local.get $0)
)
)
- (func $218 (param $0 v128) (result v128)
- (f64x2.convert_i64x2_u
+ (func $218 (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.add
(local.get $0)
+ (local.get $1)
)
)
- (func $219 (param $0 i32) (result v128)
- (v8x16.load_splat
+ (func $219 (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.sub
(local.get $0)
+ (local.get $1)
)
)
- (func $220 (param $0 i32) (result v128)
- (v16x8.load_splat
+ (func $220 (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.mul
(local.get $0)
+ (local.get $1)
)
)
- (func $221 (param $0 i32) (result v128)
- (v32x4.load_splat
+ (func $221 (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.div
(local.get $0)
+ (local.get $1)
)
)
- (func $222 (param $0 i32) (result v128)
- (v64x2.load_splat
+ (func $222 (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.min
(local.get $0)
+ (local.get $1)
)
)
(func $223 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_s
+ (f32x4.max
(local.get $0)
(local.get $1)
)
)
(func $224 (param $0 v128) (param $1 v128) (result v128)
- (i8x16.narrow_i16x8_u
+ (f32x4.pmin
(local.get $0)
(local.get $1)
)
)
(func $225 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_s
+ (f32x4.pmax
(local.get $0)
(local.get $1)
)
)
- (func $226 (param $0 v128) (param $1 v128) (result v128)
- (i16x8.narrow_i32x4_u
+ (func $226 (param $0 v128) (result v128)
+ (f64x2.abs
(local.get $0)
- (local.get $1)
)
)
(func $227 (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_s
+ (f64x2.neg
(local.get $0)
)
)
(func $228 (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_s
+ (f64x2.sqrt
(local.get $0)
)
)
- (func $229 (param $0 v128) (result v128)
- (i16x8.widen_low_i8x16_u
+ (func $229 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.add
(local.get $0)
+ (local.get $1)
)
)
- (func $230 (param $0 v128) (result v128)
- (i16x8.widen_high_i8x16_u
+ (func $230 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.sub
(local.get $0)
+ (local.get $1)
)
)
- (func $231 (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_s
+ (func $231 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.mul
(local.get $0)
+ (local.get $1)
)
)
- (func $232 (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_s
+ (func $232 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.div
(local.get $0)
+ (local.get $1)
)
)
- (func $233 (param $0 v128) (result v128)
- (i32x4.widen_low_i16x8_u
+ (func $233 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.min
(local.get $0)
+ (local.get $1)
)
)
- (func $234 (param $0 v128) (result v128)
- (i32x4.widen_high_i16x8_u
+ (func $234 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.max
(local.get $0)
+ (local.get $1)
)
)
- (func $235 (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_s
+ (func $235 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.pmin
(local.get $0)
+ (local.get $1)
)
)
- (func $236 (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_s
+ (func $236 (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.pmax
(local.get $0)
+ (local.get $1)
)
)
(func $237 (param $0 v128) (result v128)
- (i64x2.widen_low_i32x4_u
+ (i32x4.trunc_sat_f32x4_s
(local.get $0)
)
)
(func $238 (param $0 v128) (result v128)
- (i64x2.widen_high_i32x4_u
- (local.get $0)
- )
- )
- (func $239 (param $0 i32) (result v128)
- (i16x8.load8x8_u
- (local.get $0)
- )
- )
- (func $240 (param $0 i32) (result v128)
- (i16x8.load8x8_s
- (local.get $0)
- )
- )
- (func $241 (param $0 i32) (result v128)
- (i32x4.load16x4_s
- (local.get $0)
- )
- )
- (func $242 (param $0 i32) (result v128)
- (i32x4.load16x4_u
- (local.get $0)
- )
- )
- (func $243 (param $0 i32) (result v128)
- (i64x2.load32x2_s
- (local.get $0)
- )
- )
- (func $244 (param $0 i32) (result v128)
- (i64x2.load32x2_u
- (local.get $0)
- )
- )
- (func $245 (param $0 i32) (result v128)
- (v128.load32_zero
+ (i32x4.trunc_sat_f32x4_u
(local.get $0)
)
)
- (func $246 (param $0 i32) (result v128)
- (v128.load64_zero
+ (func $239 (param $0 v128) (result v128)
+ (f32x4.convert_i32x4_s
(local.get $0)
)
)
- (func $247 (param $0 v128) (param $1 v128) (result v128)
- (v8x16.swizzle
+ (func $240 (param $0 v128) (result v128)
+ (f32x4.convert_i32x4_u
(local.get $0)
- (local.get $1)
)
)
- (func $248 (param $0 i32)
- (prefetch.t offset=3 align=2
+ (func $241 (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $249 (param $0 i32)
- (prefetch.nt offset=3 align=2
+ (func $242 (param $0 v128) (result v128)
+ (i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
- (func $250 (param $0 v128) (result v128)
+ (func $243 (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_s
(local.get $0)
)
)
- (func $251 (param $0 v128) (result v128)
+ (func $244 (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_u
(local.get $0)
)
)
- (func $252 (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_s
- (local.get $0)
- )
- )
- (func $253 (param $0 v128) (result v128)
- (i32x4.trunc_sat_f64x2_zero_u
- (local.get $0)
- )
- )
- (func $254 (param $0 v128) (result v128)
- (f32x4.demote_f64x2_zero
- (local.get $0)
- )
- )
- (func $255 (param $0 v128) (result v128)
- (f64x2.promote_low_f32x4
- (local.get $0)
- )
- )
- (func $256 (param $0 v128) (result v128)
- (i32x4.widen_i8x16_s 0
- (local.get $0)
- )
- )
- (func $257 (param $0 v128) (result v128)
- (i32x4.widen_i8x16_u 0
- (local.get $0)
- )
- )
)
diff --git a/test/simd64.wast b/test/simd64.wast
index 65b1ef8b7..f5cf85055 100644
--- a/test/simd64.wast
+++ b/test/simd64.wast
@@ -11,53 +11,53 @@
(local.get $1)
)
)
- (func $v8x16.load_splat (param $0 i64) (result v128)
- (v8x16.load_splat
+ (func $v128.load8_splat (param $0 i64) (result v128)
+ (v128.load8_splat
(local.get $0)
)
)
- (func $v16x8.load_splat (param $0 i64) (result v128)
- (v16x8.load_splat
+ (func $v128.load16_splat (param $0 i64) (result v128)
+ (v128.load16_splat
(local.get $0)
)
)
- (func $v32x4.load_splat (param $0 i64) (result v128)
- (v32x4.load_splat
+ (func $v128.load32_splat (param $0 i64) (result v128)
+ (v128.load32_splat
(local.get $0)
)
)
- (func $v64x2.load_splat (param $0 i64) (result v128)
- (v64x2.load_splat
+ (func $v128.load64_splat (param $0 i64) (result v128)
+ (v128.load64_splat
(local.get $0)
)
)
- (func $i16x8.load8x8_u (param $0 i64) (result v128)
- (i16x8.load8x8_u
+ (func $v128.load8x8_u (param $0 i64) (result v128)
+ (v128.load8x8_u
(local.get $0)
)
)
- (func $i16x8.load8x8_s (param $0 i64) (result v128)
- (i16x8.load8x8_s
+ (func $v128.load8x8_s (param $0 i64) (result v128)
+ (v128.load8x8_s
(local.get $0)
)
)
- (func $i32x4.load16x4_s (param $0 i64) (result v128)
- (i32x4.load16x4_s
+ (func $v128.load16x4_s (param $0 i64) (result v128)
+ (v128.load16x4_s
(local.get $0)
)
)
- (func $i32x4.load16x4_u (param $0 i64) (result v128)
- (i32x4.load16x4_u
+ (func $v128.load16x4_u (param $0 i64) (result v128)
+ (v128.load16x4_u
(local.get $0)
)
)
- (func $i64x2.load32x2_s (param $0 i64) (result v128)
- (i64x2.load32x2_s
+ (func $v128.load32x2_s (param $0 i64) (result v128)
+ (v128.load32x2_s
(local.get $0)
)
)
- (func $i64x2.load32x2_u (param $0 i64) (result v128)
- (i64x2.load32x2_u
+ (func $v128.load32x2_u (param $0 i64) (result v128)
+ (v128.load32x2_u
(local.get $0)
)
)
diff --git a/test/simd64.wast.from-wast b/test/simd64.wast.from-wast
index cd08c79ed..a12e5d08f 100644
--- a/test/simd64.wast.from-wast
+++ b/test/simd64.wast.from-wast
@@ -13,53 +13,53 @@
(local.get $1)
)
)
- (func $v8x16.load_splat (param $0 i64) (result v128)
- (v8x16.load_splat
+ (func $v128.load8_splat (param $0 i64) (result v128)
+ (v128.load8_splat
(local.get $0)
)
)
- (func $v16x8.load_splat (param $0 i64) (result v128)
- (v16x8.load_splat
+ (func $v128.load16_splat (param $0 i64) (result v128)
+ (v128.load16_splat
(local.get $0)
)
)
- (func $v32x4.load_splat (param $0 i64) (result v128)
- (v32x4.load_splat
+ (func $v128.load32_splat (param $0 i64) (result v128)
+ (v128.load32_splat
(local.get $0)
)
)
- (func $v64x2.load_splat (param $0 i64) (result v128)
- (v64x2.load_splat
+ (func $v128.load64_splat (param $0 i64) (result v128)
+ (v128.load64_splat
(local.get $0)
)
)
- (func $i16x8.load8x8_u (param $0 i64) (result v128)
- (i16x8.load8x8_u
+ (func $v128.load8x8_u (param $0 i64) (result v128)
+ (v128.load8x8_u
(local.get $0)
)
)
- (func $i16x8.load8x8_s (param $0 i64) (result v128)
- (i16x8.load8x8_s
+ (func $v128.load8x8_s (param $0 i64) (result v128)
+ (v128.load8x8_s
(local.get $0)
)
)
- (func $i32x4.load16x4_s (param $0 i64) (result v128)
- (i32x4.load16x4_s
+ (func $v128.load16x4_s (param $0 i64) (result v128)
+ (v128.load16x4_s
(local.get $0)
)
)
- (func $i32x4.load16x4_u (param $0 i64) (result v128)
- (i32x4.load16x4_u
+ (func $v128.load16x4_u (param $0 i64) (result v128)
+ (v128.load16x4_u
(local.get $0)
)
)
- (func $i64x2.load32x2_s (param $0 i64) (result v128)
- (i64x2.load32x2_s
+ (func $v128.load32x2_s (param $0 i64) (result v128)
+ (v128.load32x2_s
(local.get $0)
)
)
- (func $i64x2.load32x2_u (param $0 i64) (result v128)
- (i64x2.load32x2_u
+ (func $v128.load32x2_u (param $0 i64) (result v128)
+ (v128.load32x2_u
(local.get $0)
)
)
diff --git a/test/simd64.wast.fromBinary b/test/simd64.wast.fromBinary
index 6202b7c06..988f678b8 100644
--- a/test/simd64.wast.fromBinary
+++ b/test/simd64.wast.fromBinary
@@ -13,53 +13,53 @@
(local.get $1)
)
)
- (func $v8x16.load_splat (param $0 i64) (result v128)
- (v8x16.load_splat
+ (func $v128.load8_splat (param $0 i64) (result v128)
+ (v128.load8_splat
(local.get $0)
)
)
- (func $v16x8.load_splat (param $0 i64) (result v128)
- (v16x8.load_splat
+ (func $v128.load16_splat (param $0 i64) (result v128)
+ (v128.load16_splat
(local.get $0)
)
)
- (func $v32x4.load_splat (param $0 i64) (result v128)
- (v32x4.load_splat
+ (func $v128.load32_splat (param $0 i64) (result v128)
+ (v128.load32_splat
(local.get $0)
)
)
- (func $v64x2.load_splat (param $0 i64) (result v128)
- (v64x2.load_splat
+ (func $v128.load64_splat (param $0 i64) (result v128)
+ (v128.load64_splat
(local.get $0)
)
)
- (func $i16x8.load8x8_u (param $0 i64) (result v128)
- (i16x8.load8x8_u
+ (func $v128.load8x8_u (param $0 i64) (result v128)
+ (v128.load8x8_u
(local.get $0)
)
)
- (func $i16x8.load8x8_s (param $0 i64) (result v128)
- (i16x8.load8x8_s
+ (func $v128.load8x8_s (param $0 i64) (result v128)
+ (v128.load8x8_s
(local.get $0)
)
)
- (func $i32x4.load16x4_s (param $0 i64) (result v128)
- (i32x4.load16x4_s
+ (func $v128.load16x4_s (param $0 i64) (result v128)
+ (v128.load16x4_s
(local.get $0)
)
)
- (func $i32x4.load16x4_u (param $0 i64) (result v128)
- (i32x4.load16x4_u
+ (func $v128.load16x4_u (param $0 i64) (result v128)
+ (v128.load16x4_u
(local.get $0)
)
)
- (func $i64x2.load32x2_s (param $0 i64) (result v128)
- (i64x2.load32x2_s
+ (func $v128.load32x2_s (param $0 i64) (result v128)
+ (v128.load32x2_s
(local.get $0)
)
)
- (func $i64x2.load32x2_u (param $0 i64) (result v128)
- (i64x2.load32x2_u
+ (func $v128.load32x2_u (param $0 i64) (result v128)
+ (v128.load32x2_u
(local.get $0)
)
)
diff --git a/test/simd64.wast.fromBinary.noDebugInfo b/test/simd64.wast.fromBinary.noDebugInfo
index 67ce14b29..2e96dfe64 100644
--- a/test/simd64.wast.fromBinary.noDebugInfo
+++ b/test/simd64.wast.fromBinary.noDebugInfo
@@ -14,52 +14,52 @@
)
)
(func $2 (param $0 i64) (result v128)
- (v8x16.load_splat
+ (v128.load8_splat
(local.get $0)
)
)
(func $3 (param $0 i64) (result v128)
- (v16x8.load_splat
+ (v128.load16_splat
(local.get $0)
)
)
(func $4 (param $0 i64) (result v128)
- (v32x4.load_splat
+ (v128.load32_splat
(local.get $0)
)
)
(func $5 (param $0 i64) (result v128)
- (v64x2.load_splat
+ (v128.load64_splat
(local.get $0)
)
)
(func $6 (param $0 i64) (result v128)
- (i16x8.load8x8_u
+ (v128.load8x8_u
(local.get $0)
)
)
(func $7 (param $0 i64) (result v128)
- (i16x8.load8x8_s
+ (v128.load8x8_s
(local.get $0)
)
)
(func $8 (param $0 i64) (result v128)
- (i32x4.load16x4_s
+ (v128.load16x4_s
(local.get $0)
)
)
(func $9 (param $0 i64) (result v128)
- (i32x4.load16x4_u
+ (v128.load16x4_u
(local.get $0)
)
)
(func $10 (param $0 i64) (result v128)
- (i64x2.load32x2_s
+ (v128.load32x2_s
(local.get $0)
)
)
(func $11 (param $0 i64) (result v128)
- (i64x2.load32x2_u
+ (v128.load32x2_u
(local.get $0)
)
)
diff --git a/test/spec/simd.wast b/test/spec/simd.wast
index 87bbb96cb..4876a032d 100644
--- a/test/spec/simd.wast
+++ b/test/spec/simd.wast
@@ -14,11 +14,11 @@
(func (export "v128.const.i64x2") (result v128) (v128.const i64x2 1 2))
(func (export "v128.const.f32x4") (result v128) (v128.const f32x4 1.0 2 3 4))
(func (export "v128.const.f64x2") (result v128) (v128.const f64x2 1.0 2))
- (func (export "v128.shuffle_interleave_bytes") (param $0 v128) (param $1 v128) (result v128)
- (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31 (local.get $0) (local.get $1))
+ (func (export "i8x16.shuffle_interleave_bytes") (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31 (local.get $0) (local.get $1))
)
- (func (export "v128.shuffle_reverse_i32s") (param $0 v128) (result v128)
- (v8x16.shuffle 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3 (local.get $0) (local.get $0))
+ (func (export "i8x16.shuffle_reverse_i32s") (param $0 v128) (result v128)
+ (i8x16.shuffle 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3 (local.get $0) (local.get $0))
)
(func (export "i8x16.splat") (param $0 i32) (result v128) (i8x16.splat (local.get $0)))
(func (export "i8x16.extract_lane_s_first") (param $0 v128) (result i32) (i8x16.extract_lane_s 0 (local.get $0)))
@@ -105,18 +105,6 @@
(func (export "v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
(v128.bitselect (local.get $0) (local.get $1) (local.get $2))
)
- (func (export "v8x16.signselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v8x16.signselect (local.get $0) (local.get $1) (local.get $2))
- )
- (func (export "v16x8.signselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v16x8.signselect (local.get $0) (local.get $1) (local.get $2))
- )
- (func (export "v32x4.signselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v32x4.signselect (local.get $0) (local.get $1) (local.get $2))
- )
- (func (export "v64x2.signselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
- (v64x2.signselect (local.get $0) (local.get $1) (local.get $2))
- )
(func (export "v128.load8_lane") (param $0 i32) (param $1 v128) (result v128) (v128.load8_lane 0 (local.get $0) (local.get $1)))
(func (export "v128.load16_lane") (param $0 i32) (param $1 v128) (result v128) (v128.load16_lane 0 (local.get $0) (local.get $1)))
(func (export "v128.load32_lane") (param $0 i32) (param $1 v128) (result v128) (v128.load32_lane 0 (local.get $0) (local.get $1)))
@@ -128,19 +116,17 @@
(func (export "i8x16.popcnt") (param $0 v128) (result v128) (i8x16.popcnt (local.get $0)))
(func (export "i8x16.abs") (param $0 v128) (result v128) (i8x16.abs (local.get $0)))
(func (export "i8x16.neg") (param $0 v128) (result v128) (i8x16.neg (local.get $0)))
- (func (export "i8x16.any_true") (param $0 v128) (result i32) (i8x16.any_true (local.get $0)))
(func (export "i8x16.all_true") (param $0 v128) (result i32) (i8x16.all_true (local.get $0)))
(func (export "i8x16.bitmask") (param $0 v128) (result i32) (i8x16.bitmask (local.get $0)))
(func (export "i8x16.shl") (param $0 v128) (param $1 i32) (result v128) (i8x16.shl (local.get $0) (local.get $1)))
(func (export "i8x16.shr_s") (param $0 v128) (param $1 i32) (result v128) (i8x16.shr_s (local.get $0) (local.get $1)))
(func (export "i8x16.shr_u") (param $0 v128) (param $1 i32) (result v128) (i8x16.shr_u (local.get $0) (local.get $1)))
(func (export "i8x16.add") (param $0 v128) (param $1 v128) (result v128) (i8x16.add (local.get $0) (local.get $1)))
- (func (export "i8x16.add_saturate_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.add_saturate_s (local.get $0) (local.get $1)))
- (func (export "i8x16.add_saturate_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.add_saturate_u (local.get $0) (local.get $1)))
+ (func (export "i8x16.add_sat_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.add_sat_s (local.get $0) (local.get $1)))
+ (func (export "i8x16.add_sat_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.add_sat_u (local.get $0) (local.get $1)))
(func (export "i8x16.sub") (param $0 v128) (param $1 v128) (result v128) (i8x16.sub (local.get $0) (local.get $1)))
- (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.sub_sat_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.sub_sat_s (local.get $0) (local.get $1)))
+ (func (export "i8x16.sub_sat_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.sub_sat_u (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)))
@@ -148,18 +134,17 @@
(func (export "i8x16.avgr_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.avgr_u (local.get $0) (local.get $1)))
(func (export "i16x8.abs") (param $0 v128) (result v128) (i16x8.abs (local.get $0)))
(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)))
(func (export "i16x8.bitmask") (param $0 v128) (result i32) (i16x8.bitmask (local.get $0)))
(func (export "i16x8.shl") (param $0 v128) (param $1 i32) (result v128) (i16x8.shl (local.get $0) (local.get $1)))
(func (export "i16x8.shr_s") (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_s (local.get $0) (local.get $1)))
(func (export "i16x8.shr_u") (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_u (local.get $0) (local.get $1)))
(func (export "i16x8.add") (param $0 v128) (param $1 v128) (result v128) (i16x8.add (local.get $0) (local.get $1)))
- (func (export "i16x8.add_saturate_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_s (local.get $0) (local.get $1)))
- (func (export "i16x8.add_saturate_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.add_saturate_u (local.get $0) (local.get $1)))
+ (func (export "i16x8.add_sat_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.add_sat_s (local.get $0) (local.get $1)))
+ (func (export "i16x8.add_sat_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.add_sat_u (local.get $0) (local.get $1)))
(func (export "i16x8.sub") (param $0 v128) (param $1 v128) (result v128) (i16x8.sub (local.get $0) (local.get $1)))
- (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.sub_sat_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_sat_s (local.get $0) (local.get $1)))
+ (func (export "i16x8.sub_sat_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.sub_sat_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)))
@@ -170,7 +155,6 @@
;; TODO: extending multiplications
(func (export "i32x4.abs") (param $0 v128) (result v128) (i32x4.abs (local.get $0)))
(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)))
(func (export "i32x4.bitmask") (param $0 v128) (result i32) (i32x4.bitmask (local.get $0)))
(func (export "i32x4.shl") (param $0 v128) (param $1 i32) (result v128) (i32x4.shl (local.get $0) (local.get $1)))
@@ -195,8 +179,6 @@
(func (export "f32x4.abs") (param $0 v128) (result v128) (f32x4.abs (local.get $0)))
(func (export "f32x4.neg") (param $0 v128) (result v128) (f32x4.neg (local.get $0)))
(func (export "f32x4.sqrt") (param $0 v128) (result v128) (f32x4.sqrt (local.get $0)))
- (func (export "f32x4.qfma") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfma (local.get $0) (local.get $1) (local.get $2)))
- (func (export "f32x4.qfms") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.qfms (local.get $0) (local.get $1) (local.get $2)))
(func (export "f32x4.add") (param $0 v128) (param $1 v128) (result v128) (f32x4.add (local.get $0) (local.get $1)))
(func (export "f32x4.sub") (param $0 v128) (param $1 v128) (result v128) (f32x4.sub (local.get $0) (local.get $1)))
(func (export "f32x4.mul") (param $0 v128) (param $1 v128) (result v128) (f32x4.mul (local.get $0) (local.get $1)))
@@ -212,8 +194,6 @@
(func (export "f64x2.abs") (param $0 v128) (result v128) (f64x2.abs (local.get $0)))
(func (export "f64x2.neg") (param $0 v128) (result v128) (f64x2.neg (local.get $0)))
(func (export "f64x2.sqrt") (param $0 v128) (result v128) (f64x2.sqrt (local.get $0)))
- (func (export "f64x2.qfma") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfma (local.get $0) (local.get $1) (local.get $2)))
- (func (export "f64x2.qfms") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.qfms (local.get $0) (local.get $1) (local.get $2)))
(func (export "f64x2.add") (param $0 v128) (param $1 v128) (result v128) (f64x2.add (local.get $0) (local.get $1)))
(func (export "f64x2.sub") (param $0 v128) (param $1 v128) (result v128) (f64x2.sub (local.get $0) (local.get $1)))
(func (export "f64x2.mul") (param $0 v128) (param $1 v128) (result v128) (f64x2.mul (local.get $0) (local.get $1)))
@@ -229,51 +209,47 @@
;; TODO: Extending pairwise adds once they have interpreter support
(func (export "i32x4.trunc_sat_f32x4_s") (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get $0)))
(func (export "i32x4.trunc_sat_f32x4_u") (param $0 v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get $0)))
- (func (export "i64x2.trunc_sat_f64x2_s") (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_s (local.get $0)))
- (func (export "i64x2.trunc_sat_f64x2_u") (param $0 v128) (result v128) (i64x2.trunc_sat_f64x2_u (local.get $0)))
(func (export "f32x4.convert_i32x4_s") (param $0 v128) (result v128) (f32x4.convert_i32x4_s (local.get $0)))
(func (export "f32x4.convert_i32x4_u") (param $0 v128) (result v128) (f32x4.convert_i32x4_u (local.get $0)))
- (func (export "f64x2.convert_i64x2_s") (param $0 v128) (result v128) (f64x2.convert_i64x2_s (local.get $0)))
- (func (export "f64x2.convert_i64x2_u") (param $0 v128) (result v128) (f64x2.convert_i64x2_u (local.get $0)))
- (func (export "v8x16.load_splat") (param $0 i32) (result v128) (v8x16.load_splat (local.get $0)))
- (func (export "v16x8.load_splat") (param $0 i32) (result v128) (v16x8.load_splat (local.get $0)))
- (func (export "v32x4.load_splat") (param $0 i32) (result v128) (v32x4.load_splat (local.get $0)))
- (func (export "v64x2.load_splat") (param $0 i32) (result v128) (v64x2.load_splat (local.get $0)))
+ (func (export "v128.load8_splat") (param $0 i32) (result v128) (v128.load8_splat (local.get $0)))
+ (func (export "v128.load16_splat") (param $0 i32) (result v128) (v128.load16_splat (local.get $0)))
+ (func (export "v128.load32_splat") (param $0 i32) (result v128) (v128.load32_splat (local.get $0)))
+ (func (export "v128.load64_splat") (param $0 i32) (result v128) (v128.load64_splat (local.get $0)))
(func (export "i8x16.narrow_i16x8_s") (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_s (local.get $0) (local.get $1)))
(func (export "i8x16.narrow_i16x8_u") (param $0 v128) (param $1 v128) (result v128) (i8x16.narrow_i16x8_u (local.get $0) (local.get $1)))
(func (export "i16x8.narrow_i32x4_s") (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_s (local.get $0) (local.get $1)))
(func (export "i16x8.narrow_i32x4_u") (param $0 v128) (param $1 v128) (result v128) (i16x8.narrow_i32x4_u (local.get $0) (local.get $1)))
- (func (export "i16x8.widen_low_i8x16_s") (param $0 v128) (result v128) (i16x8.widen_low_i8x16_s (local.get $0)))
- (func (export "i16x8.widen_high_i8x16_s") (param $0 v128) (result v128) (i16x8.widen_high_i8x16_s (local.get $0)))
- (func (export "i16x8.widen_low_i8x16_u") (param $0 v128) (result v128) (i16x8.widen_low_i8x16_u (local.get $0)))
- (func (export "i16x8.widen_high_i8x16_u") (param $0 v128) (result v128) (i16x8.widen_high_i8x16_u (local.get $0)))
- (func (export "i32x4.widen_low_i16x8_s") (param $0 v128) (result v128) (i32x4.widen_low_i16x8_s (local.get $0)))
- (func (export "i32x4.widen_high_i16x8_s") (param $0 v128) (result v128) (i32x4.widen_high_i16x8_s (local.get $0)))
- (func (export "i32x4.widen_low_i16x8_u") (param $0 v128) (result v128) (i32x4.widen_low_i16x8_u (local.get $0)))
- (func (export "i32x4.widen_high_i16x8_u") (param $0 v128) (result v128) (i32x4.widen_high_i16x8_u (local.get $0)))
- (func (export "i64x2.widen_low_i32x4_s") (param $0 v128) (result v128) (i64x2.widen_low_i32x4_s (local.get $0)))
- (func (export "i64x2.widen_high_i32x4_s") (param $0 v128) (result v128) (i64x2.widen_high_i32x4_s (local.get $0)))
- (func (export "i64x2.widen_low_i32x4_u") (param $0 v128) (result v128) (i64x2.widen_low_i32x4_u (local.get $0)))
- (func (export "i64x2.widen_high_i32x4_u") (param $0 v128) (result v128) (i64x2.widen_high_i32x4_u (local.get $0)))
- (func (export "i16x8.load8x8_u") (param $0 i32) (result v128) (i16x8.load8x8_u (local.get $0)))
- (func (export "i16x8.load8x8_s") (param $0 i32) (result v128) (i16x8.load8x8_s (local.get $0)))
- (func (export "i32x4.load16x4_u") (param $0 i32) (result v128) (i32x4.load16x4_u (local.get $0)))
- (func (export "i32x4.load16x4_s") (param $0 i32) (result v128) (i32x4.load16x4_s (local.get $0)))
- (func (export "i64x2.load32x2_u") (param $0 i32) (result v128) (i64x2.load32x2_u (local.get $0)))
- (func (export "i64x2.load32x2_s") (param $0 i32) (result v128) (i64x2.load32x2_s (local.get $0)))
+ (func (export "i16x8.extend_low_i8x16_s") (param $0 v128) (result v128) (i16x8.extend_low_i8x16_s (local.get $0)))
+ (func (export "i16x8.extend_high_i8x16_s") (param $0 v128) (result v128) (i16x8.extend_high_i8x16_s (local.get $0)))
+ (func (export "i16x8.extend_low_i8x16_u") (param $0 v128) (result v128) (i16x8.extend_low_i8x16_u (local.get $0)))
+ (func (export "i16x8.extend_high_i8x16_u") (param $0 v128) (result v128) (i16x8.extend_high_i8x16_u (local.get $0)))
+ (func (export "i32x4.extend_low_i16x8_s") (param $0 v128) (result v128) (i32x4.extend_low_i16x8_s (local.get $0)))
+ (func (export "i32x4.extend_high_i16x8_s") (param $0 v128) (result v128) (i32x4.extend_high_i16x8_s (local.get $0)))
+ (func (export "i32x4.extend_low_i16x8_u") (param $0 v128) (result v128) (i32x4.extend_low_i16x8_u (local.get $0)))
+ (func (export "i32x4.extend_high_i16x8_u") (param $0 v128) (result v128) (i32x4.extend_high_i16x8_u (local.get $0)))
+ (func (export "i64x2.extend_low_i32x4_s") (param $0 v128) (result v128) (i64x2.extend_low_i32x4_s (local.get $0)))
+ (func (export "i64x2.extend_high_i32x4_s") (param $0 v128) (result v128) (i64x2.extend_high_i32x4_s (local.get $0)))
+ (func (export "i64x2.extend_low_i32x4_u") (param $0 v128) (result v128) (i64x2.extend_low_i32x4_u (local.get $0)))
+ (func (export "i64x2.extend_high_i32x4_u") (param $0 v128) (result v128) (i64x2.extend_high_i32x4_u (local.get $0)))
+ (func (export "v128.load8x8_u") (param $0 i32) (result v128) (v128.load8x8_u (local.get $0)))
+ (func (export "v128.load8x8_s") (param $0 i32) (result v128) (v128.load8x8_s (local.get $0)))
+ (func (export "v128.load16x4_u") (param $0 i32) (result v128) (v128.load16x4_u (local.get $0)))
+ (func (export "v128.load16x4_s") (param $0 i32) (result v128) (v128.load16x4_s (local.get $0)))
+ (func (export "v128.load32x2_u") (param $0 i32) (result v128) (v128.load32x2_u (local.get $0)))
+ (func (export "v128.load32x2_s") (param $0 i32) (result v128) (v128.load32x2_s (local.get $0)))
(func (export "v128.load32_zero") (param $0 i32) (result v128) (v128.load32_zero (local.get $0)))
(func (export "v128.load64_zero") (param $0 i32) (result v128) (v128.load64_zero (local.get $0)))
- (func (export "v8x16.swizzle") (param $0 v128) (param $1 v128) (result v128) (v8x16.swizzle (local.get $0) (local.get $1)))
+ (func (export "i8x16.swizzle") (param $0 v128) (param $1 v128) (result v128) (i8x16.swizzle (local.get $0) (local.get $1)))
)
;; TODO: Additional f64x2 conversions if specified
;; Basic v128 manipulation
(assert_return (invoke "v128.load" (i32.const 128)) (v128.const i8x16 87 65 83 77 83 73 77 68 71 79 69 83 70 65 83 84))
(assert_return (invoke "v128.store" (i32.const 16) (v128.const i32x4 1 2 3 4)) (v128.const i32x4 1 2 3 4))
-(assert_return (invoke "v8x16.load_splat" (i32.const 128)) (v128.const i8x16 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87))
-(assert_return (invoke "v16x8.load_splat" (i32.const 128)) (v128.const i8x16 87 65 87 65 87 65 87 65 87 65 87 65 87 65 87 65))
-(assert_return (invoke "v32x4.load_splat" (i32.const 128)) (v128.const i8x16 87 65 83 77 87 65 83 77 87 65 83 77 87 65 83 77))
-(assert_return (invoke "v64x2.load_splat" (i32.const 128)) (v128.const i8x16 87 65 83 77 83 73 77 68 87 65 83 77 83 73 77 68))
+(assert_return (invoke "v128.load8_splat" (i32.const 128)) (v128.const i8x16 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87))
+(assert_return (invoke "v128.load16_splat" (i32.const 128)) (v128.const i8x16 87 65 87 65 87 65 87 65 87 65 87 65 87 65 87 65))
+(assert_return (invoke "v128.load32_splat" (i32.const 128)) (v128.const i8x16 87 65 83 77 87 65 83 77 87 65 83 77 87 65 83 77))
+(assert_return (invoke "v128.load64_splat" (i32.const 128)) (v128.const i8x16 87 65 83 77 83 73 77 68 87 65 83 77 83 73 77 68))
(assert_return (invoke "v128.const.i8x16") (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d))
(assert_return (invoke "v128.const.i16x8") (v128.const i8x16 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00))
(assert_return (invoke "v128.const.i32x4") (v128.const i8x16 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00))
@@ -281,13 +257,13 @@
(assert_return (invoke "v128.const.f32x4") (v128.const f32x4 1 2 3 4))
(assert_return (invoke "v128.const.f64x2") (v128.const f64x2 1 2))
(assert_return
- (invoke "v128.shuffle_interleave_bytes"
+ (invoke "i8x16.shuffle_interleave_bytes"
(v128.const i8x16 1 0 3 0 5 0 7 0 9 0 11 0 13 0 15 0)
(v128.const i8x16 0 2 0 4 0 6 0 8 0 10 0 12 0 14 0 16)
)
(v128.const i8x16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
)
-(assert_return (invoke "v128.shuffle_reverse_i32s" (v128.const i32x4 1 2 3 4)) (v128.const i32x4 4 3 2 1))
+(assert_return (invoke "i8x16.shuffle_reverse_i32s" (v128.const i32x4 1 2 3 4)) (v128.const i32x4 4 3 2 1))
;; i8x16 lane accesses
(assert_return (invoke "i8x16.splat" (i32.const 5)) (v128.const i8x16 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5))
@@ -604,10 +580,6 @@
(assert_return (invoke "i8x16.neg" (v128.const i32x4 0 1 42 -3 -56 127 -128 -126 0 -1 -42 3 56 -127 -128 126))
(v128.const i32x4 0 -1 -42 3 56 -127 -128 126 0 1 42 -3 -56 127 -128 -126)
)
-(assert_return (invoke "i8x16.any_true" (v128.const i32x4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (i32.const 0))
-(assert_return (invoke "i8x16.any_true" (v128.const i32x4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0)) (i32.const 1))
-(assert_return (invoke "i8x16.any_true" (v128.const i32x4 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1)) (i32.const 1))
-(assert_return (invoke "i8x16.any_true" (v128.const i32x4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) (i32.const 1))
(assert_return (invoke "i8x16.all_true" (v128.const i32x4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (i32.const 0))
(assert_return (invoke "i8x16.all_true" (v128.const i32x4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0)) (i32.const 0))
(assert_return (invoke "i8x16.all_true" (v128.const i32x4 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1)) (i32.const 0))
@@ -639,14 +611,14 @@
(v128.const i32x4 3 17 0 0 0 135 109 46 145 225 48 184 17 249 128 215)
)
(assert_return
- (invoke "i8x16.add_saturate_s"
+ (invoke "i8x16.add_sat_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 i32x4 3 17 0 128 0 135 109 46 127 225 48 184 17 249 127 215)
)
(assert_return
- (invoke "i8x16.add_saturate_u"
+ (invoke "i8x16.add_sat_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)
)
@@ -660,27 +632,20 @@
(v128.const i32x4 253 67 254 0 254 123 159 12 61 167 158 100 17 251 130 187)
)
(assert_return
- (invoke "i8x16.sub_saturate_s"
+ (invoke "i8x16.sub_sat_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 i32x4 253 67 254 0 127 128 159 12 61 167 158 128 17 251 130 127)
)
(assert_return
- (invoke "i8x16.sub_saturate_u"
+ (invoke "i8x16.sub_sat_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 i32x4 0 0 254 0 0 123 0 12 61 167 158 100 17 0 0 0)
)
(assert_return
- (invoke "i8x16.mul"
- (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 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)
@@ -723,10 +688,6 @@
(assert_return (invoke "i16x8.neg" (v128.const i32x4 0 1 42 -3 -56 32767 -32768 32766))
(v128.const i32x4 0 -1 -42 3 56 -32767 -32768 -32766)
)
-(assert_return (invoke "i16x8.any_true" (v128.const i32x4 0 0 0 0 0 0 0 0)) (i32.const 0))
-(assert_return (invoke "i16x8.any_true" (v128.const i32x4 0 0 1 0 0 0 0 0)) (i32.const 1))
-(assert_return (invoke "i16x8.any_true" (v128.const i32x4 1 1 1 1 1 0 1 1)) (i32.const 1))
-(assert_return (invoke "i16x8.any_true" (v128.const i32x4 1 1 1 1 1 1 1 1)) (i32.const 1))
(assert_return (invoke "i16x8.all_true" (v128.const i32x4 0 0 0 0 0 0 0 0)) (i32.const 0))
(assert_return (invoke "i16x8.all_true" (v128.const i32x4 0 0 1 0 0 0 0 0)) (i32.const 0))
(assert_return (invoke "i16x8.all_true" (v128.const i32x4 1 1 1 1 1 0 1 1)) (i32.const 0))
@@ -746,14 +707,14 @@
(v128.const i32x4 768 65281 0 0 34560 12288 63744 32768)
)
(assert_return
- (invoke "i16x8.add_saturate_s"
+ (invoke "i16x8.add_sat_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 65281 32768 0 34560 12288 63744 32767)
)
(assert_return
- (invoke "i16x8.add_saturate_u"
+ (invoke "i16x8.add_sat_u"
(v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766)
(v128.const i32x4 768 1 32768 33024 1536 18688 65280 2)
)
@@ -767,14 +728,14 @@
(v128.const i32x4 64768 65279 0 65024 31488 40448 64256 32764)
)
(assert_return
- (invoke "i16x8.sub_saturate_s"
+ (invoke "i16x8.sub_sat_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 64768 65279 0 32767 32768 40448 64256 32764)
)
(assert_return
- (invoke "i16x8.sub_saturate_u"
+ (invoke "i16x8.sub_sat_u"
(v128.const i32x4 0 65280 32768 32512 33024 59136 64000 32766)
(v128.const i32x4 768 1 32768 33024 1536 18688 65280 2)
)
@@ -826,10 +787,6 @@
;; i32x4 arithmetic
(assert_return (invoke "i32x4.abs" (v128.const i32x4 0 1 0x80000000 0x80000001)) (v128.const i32x4 0 1 0x80000000 0x7fffffff))
(assert_return (invoke "i32x4.neg" (v128.const i32x4 0 1 0x80000000 0x80000001)) (v128.const i32x4 0 -1 0x80000000 0x7fffffff))
-(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 0 0)) (i32.const 0))
-(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 1 0)) (i32.const 1))
-(assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 0 1 1)) (i32.const 1))
-(assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 1 1 1)) (i32.const 1))
(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 0 0)) (i32.const 0))
(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 1 0)) (i32.const 0))
(assert_return (invoke "i32x4.all_true" (v128.const i32x4 1 0 1 1)) (i32.const 0))
@@ -882,7 +839,6 @@
(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0 nan -infinity 5)) (v128.const f32x4 0 nan infinity 5))
(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0 nan -infinity 5)) (v128.const f32x4 0 -nan infinity -5))
(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 -0 nan infinity 4)) (v128.const f32x4 -0 nan infinity 2))
-;; TODO: qfma/qfms tests
(assert_return (invoke "f32x4.add" (v128.const f32x4 nan -nan infinity 42) (v128.const f32x4 42 infinity infinity 1)) (v128.const f32x4 nan nan infinity 43))
(assert_return (invoke "f32x4.sub" (v128.const f32x4 nan -nan infinity 42) (v128.const f32x4 42 infinity -infinity 1)) (v128.const f32x4 nan nan infinity 41))
(assert_return (invoke "f32x4.mul" (v128.const f32x4 nan -nan infinity 42) (v128.const f32x4 42 infinity infinity 2)) (v128.const f32x4 nan nan infinity 84))
@@ -911,7 +867,6 @@
(assert_return (invoke "f64x2.neg" (v128.const f64x2 -infinity 5)) (v128.const f64x2 infinity -5))
(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 -0 nan)) (v128.const f64x2 -0 nan))
(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 infinity 4)) (v128.const f64x2 infinity 2))
-;; TODO: qfma/qfms tests
(assert_return (invoke "f64x2.add" (v128.const f64x2 nan -nan) (v128.const f64x2 42 infinity)) (v128.const f64x2 nan nan))
(assert_return (invoke "f64x2.add" (v128.const f64x2 infinity 42) (v128.const f64x2 infinity 1)) (v128.const f64x2 infinity 43))
(assert_return (invoke "f64x2.sub" (v128.const f64x2 nan -nan) (v128.const f64x2 42 infinity)) (v128.const f64x2 nan nan))
@@ -956,16 +911,8 @@
;; conversions
(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 42 nan infinity -infinity)) (v128.const i32x4 42 0 2147483647 -2147483648))
(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 42 nan infinity -infinity)) (v128.const i32x4 42 0 4294967295 0))
-(assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 42 nan)) (v128.const i64x2 42 0))
-(assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 infinity -infinity)) (v128.const i64x2 9223372036854775807 -9223372036854775808))
-(assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 42 nan)) (v128.const i64x2 42 0))
-(assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 infinity -infinity)) (v128.const i64x2 18446744073709551615 0))
(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 0 -1 2147483647 -2147483648)) (v128.const f32x4 0 -1 2147483648 -2147483648))
(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0 -1 2147483647 -2147483648)) (v128.const f32x4 0 4294967296 2147483648 2147483648))
-(assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 0 -1)) (v128.const f64x2 0 -1))
-(assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 9223372036854775807 -9223372036854775808)) (v128.const f64x2 9223372036854775807 -9223372036854775808))
-(assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0 -1)) (v128.const f64x2 0 18446744073709551616))
-(assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 9223372036854775807 -9223372036854775808)) (v128.const f64x2 9223372036854775807 9223372036854775808))
(assert_return
(invoke "i8x16.narrow_i16x8_s"
(v128.const i16x8 129 127 -32767 32767 -32768 -1 1 0)
@@ -995,44 +942,43 @@
(v128.const i16x8 32769 32767 0 65535 0 1 0 0)
)
(assert_return
- (invoke "i16x8.widen_low_i8x16_s"
+ (invoke "i16x8.extend_low_i8x16_s"
(v128.const i8x16 0 1 -1 -128 127 129 64 -64 -64 64 129 127 -128 -1 1 0)
)
(v128.const i16x8 0 1 -1 -128 127 -127 64 -64)
)
(assert_return
- (invoke "i16x8.widen_high_i8x16_s"
+ (invoke "i16x8.extend_high_i8x16_s"
(v128.const i8x16 0 1 -1 -128 127 129 64 -64 -64 64 129 127 -128 -1 1 0)
)
(v128.const i16x8 -64 64 -127 127 -128 -1 1 0)
)
(assert_return
- (invoke "i16x8.widen_low_i8x16_u"
+ (invoke "i16x8.extend_low_i8x16_u"
(v128.const i8x16 0 1 -1 -128 127 129 64 -64 -64 64 129 127 -128 -1 1 0)
)
(v128.const i16x8 0 1 255 128 127 129 64 192)
)
(assert_return
- (invoke "i16x8.widen_high_i8x16_u"
+ (invoke "i16x8.extend_high_i8x16_u"
(v128.const i8x16 0 1 -1 -128 127 129 64 -64 -64 64 129 127 -128 -1 1 0)
)
(v128.const i16x8 192 64 129 127 128 255 1 0)
)
-(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 0 1 -1 -32768))
-(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 32767 -32767 16384 -16384))
-(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 0 1 65535 32768))
-(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 32767 32769 16384 49152))
-;; TODO: test i64x2 widens
-(assert_return (invoke "i16x8.load8x8_s" (i32.const 256)) (v128.const i16x8 0xff80 0xff90 0xffa0 0xffb0 0xffc0 0xffd0 0xffe0 0xfff0))
-(assert_return (invoke "i16x8.load8x8_u" (i32.const 256)) (v128.const i16x8 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0))
-(assert_return (invoke "i32x4.load16x4_s" (i32.const 256)) (v128.const i32x4 0xffff9080 0xffffb0a0 0xffffd0c0 0xfffff0e0))
-(assert_return (invoke "i32x4.load16x4_u" (i32.const 256)) (v128.const i32x4 0x00009080 0x0000b0a0 0x0000d0c0 0x0000f0e0))
-(assert_return (invoke "i64x2.load32x2_s" (i32.const 256)) (v128.const i64x2 0xffffffffb0a09080 0xfffffffff0e0d0c0))
-(assert_return (invoke "i64x2.load32x2_u" (i32.const 256)) (v128.const i64x2 0x00000000b0a09080 0x00000000f0e0d0c0))
+(assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 0 1 -1 -32768))
+(assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 32767 -32767 16384 -16384))
+(assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 0 1 65535 32768))
+(assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 0 1 -1 32768 32767 32769 16384 -16384)) (v128.const i32x4 32767 32769 16384 49152))
+(assert_return (invoke "v128.load8x8_s" (i32.const 256)) (v128.const i16x8 0xff80 0xff90 0xffa0 0xffb0 0xffc0 0xffd0 0xffe0 0xfff0))
+(assert_return (invoke "v128.load8x8_u" (i32.const 256)) (v128.const i16x8 0x0080 0x0090 0x00a0 0x00b0 0x00c0 0x00d0 0x00e0 0x00f0))
+(assert_return (invoke "v128.load16x4_s" (i32.const 256)) (v128.const i32x4 0xffff9080 0xffffb0a0 0xffffd0c0 0xfffff0e0))
+(assert_return (invoke "v128.load16x4_u" (i32.const 256)) (v128.const i32x4 0x00009080 0x0000b0a0 0x0000d0c0 0x0000f0e0))
+(assert_return (invoke "v128.load32x2_s" (i32.const 256)) (v128.const i64x2 0xffffffffb0a09080 0xfffffffff0e0d0c0))
+(assert_return (invoke "v128.load32x2_u" (i32.const 256)) (v128.const i64x2 0x00000000b0a09080 0x00000000f0e0d0c0))
(assert_return (invoke "v128.load32_zero" (i32.const 256)) (v128.const i32x4 0xb0a09080 0 0 0))
(assert_return (invoke "v128.load64_zero" (i32.const 256)) (v128.const i64x2 0xf0e0d0c0b0a09080 0))
(assert_return
- (invoke "v8x16.swizzle"
+ (invoke "i8x16.swizzle"
(v128.const i8x16 0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 0xf6 0xf7 0xf8 0xf9 0xfa 0xfb 0xfc 0xfd 0xfe 0xff)
(v128.const i8x16 0 4 8 12 16 255 129 128 127 17 15 13 12 8 4 0)
)