diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/binaryen.js/exception-handling.js.txt | 8 | ||||
-rw-r--r-- | test/binaryen.js/expressions.js | 24 | ||||
-rw-r--r-- | test/binaryen.js/expressions.js.txt | 13 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js | 57 | ||||
-rw-r--r-- | test/binaryen.js/kitchen-sink.js.txt | 332 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 29 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 126 | ||||
-rw-r--r-- | test/passes/precompute-propagate_all-features.txt | 2 | ||||
-rw-r--r-- | test/passes/precompute-propagate_all-features.wast | 2 | ||||
-rw-r--r-- | test/simd.wast | 741 | ||||
-rw-r--r-- | test/simd.wast.from-wast | 744 | ||||
-rw-r--r-- | test/simd.wast.fromBinary | 744 | ||||
-rw-r--r-- | test/simd.wast.fromBinary.noDebugInfo | 988 | ||||
-rw-r--r-- | test/simd64.wast | 40 | ||||
-rw-r--r-- | test/simd64.wast.from-wast | 40 | ||||
-rw-r--r-- | test/simd64.wast.fromBinary | 40 | ||||
-rw-r--r-- | test/simd64.wast.fromBinary.noDebugInfo | 20 | ||||
-rw-r--r-- | test/spec/simd.wast | 182 |
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) ) |