diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-10-28 09:05:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-28 09:05:03 -0700 |
commit | 5f7d2636e926e0061e4f07dfd5c864d32a7f6144 (patch) | |
tree | d4b718103203ea8056f645e19b04d1dd939552e2 /src/wasm-interpreter.h | |
parent | 8fd93ee74150a8783c5118ea9804b508fe67701f (diff) | |
download | binaryen-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.h | 26 |
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); |