summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-binary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r--src/wasm/wasm-binary.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 0c56af8e0..46ce205b7 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -4303,6 +4303,26 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) {
curr = allocator.alloc<Binary>();
curr->op = AvgrUVecI16x8;
break;
+ case BinaryConsts::I16x8Q15MulrSatS:
+ curr = allocator.alloc<Binary>();
+ curr->op = Q15MulrSatSVecI16x8;
+ break;
+ case BinaryConsts::I16x8ExtMulLowSI8x16:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowSVecI16x8;
+ break;
+ case BinaryConsts::I16x8ExtMulHighSI8x16:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighSVecI16x8;
+ break;
+ case BinaryConsts::I16x8ExtMulLowUI8x16:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowUVecI16x8;
+ break;
+ case BinaryConsts::I16x8ExtMulHighUI8x16:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighUVecI16x8;
+ break;
case BinaryConsts::I32x4Add:
curr = allocator.alloc<Binary>();
curr->op = AddVecI32x4;
@@ -4335,6 +4355,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) {
curr = allocator.alloc<Binary>();
curr->op = DotSVecI16x8ToVecI32x4;
break;
+ case BinaryConsts::I32x4ExtMulLowSI16x8:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowSVecI32x4;
+ break;
+ case BinaryConsts::I32x4ExtMulHighSI16x8:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighSVecI32x4;
+ break;
+ case BinaryConsts::I32x4ExtMulLowUI16x8:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowUVecI32x4;
+ break;
+ case BinaryConsts::I32x4ExtMulHighUI16x8:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighUVecI32x4;
+ break;
case BinaryConsts::I64x2Add:
curr = allocator.alloc<Binary>();
curr->op = AddVecI64x2;
@@ -4347,6 +4383,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDBinary(Expression*& out, uint32_t code) {
curr = allocator.alloc<Binary>();
curr->op = MulVecI64x2;
break;
+ case BinaryConsts::I64x2ExtMulLowSI32x4:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowSVecI64x2;
+ break;
+ case BinaryConsts::I64x2ExtMulHighSI32x4:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighSVecI64x2;
+ break;
+ case BinaryConsts::I64x2ExtMulLowUI32x4:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulLowUVecI64x2;
+ break;
+ case BinaryConsts::I64x2ExtMulHighUI32x4:
+ curr = allocator.alloc<Binary>();
+ curr->op = ExtMulHighUVecI64x2;
+ break;
case BinaryConsts::F32x4Add:
curr = allocator.alloc<Binary>();
curr->op = AddVecF32x4;