summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2020-10-28 09:05:03 -0700
committerGitHub <noreply@github.com>2020-10-28 09:05:03 -0700
commit5f7d2636e926e0061e4f07dfd5c864d32a7f6144 (patch)
treed4b718103203ea8056f645e19b04d1dd939552e2 /src/wasm-interpreter.h
parent8fd93ee74150a8783c5118ea9804b508fe67701f (diff)
downloadbinaryen-5f7d2636e926e0061e4f07dfd5c864d32a7f6144.tar.gz
binaryen-5f7d2636e926e0061e4f07dfd5c864d32a7f6144.tar.bz2
binaryen-5f7d2636e926e0061e4f07dfd5c864d32a7f6144.zip
Prototype new SIMD multiplications (#3291)
Including saturating, rounding Q15 multiplication as proposed in https://github.com/WebAssembly/simd/pull/365 and extending multiplications as proposed in https://github.com/WebAssembly/simd/pull/376. Since these are just prototypes, skips adding them to the C or JS APIs and the fuzzer, as well as implementing them in the interpreter.
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 932f97dd3..6f0d10565 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -878,6 +878,16 @@ public:
return left.maxUI16x8(right);
case AvgrUVecI16x8:
return left.avgrUI16x8(right);
+ case Q15MulrSatSVecI16x8:
+ return left.q15MulrSatSI16x8(right);
+ case ExtMulLowSVecI16x8:
+ return left.extMulLowSI16x8(right);
+ case ExtMulHighSVecI16x8:
+ return left.extMulHighSI16x8(right);
+ case ExtMulLowUVecI16x8:
+ return left.extMulLowUI16x8(right);
+ case ExtMulHighUVecI16x8:
+ return left.extMulHighUI16x8(right);
case AddVecI32x4:
return left.addI32x4(right);
case SubVecI32x4:
@@ -894,12 +904,28 @@ public:
return left.maxUI32x4(right);
case DotSVecI16x8ToVecI32x4:
return left.dotSI16x8toI32x4(right);
+ case ExtMulLowSVecI32x4:
+ return left.extMulLowSI32x4(right);
+ case ExtMulHighSVecI32x4:
+ return left.extMulHighSI32x4(right);
+ case ExtMulLowUVecI32x4:
+ return left.extMulLowUI32x4(right);
+ case ExtMulHighUVecI32x4:
+ return left.extMulHighUI32x4(right);
case AddVecI64x2:
return left.addI64x2(right);
case SubVecI64x2:
return left.subI64x2(right);
case MulVecI64x2:
return left.mulI64x2(right);
+ case ExtMulLowSVecI64x2:
+ return left.extMulLowSI64x2(right);
+ case ExtMulHighSVecI64x2:
+ return left.extMulHighSI64x2(right);
+ case ExtMulLowUVecI64x2:
+ return left.extMulLowUI64x2(right);
+ case ExtMulHighUVecI64x2:
+ return left.extMulHighUI64x2(right);
case AddVecF32x4:
return left.addF32x4(right);