diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-06-05 10:46:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-05 10:46:23 -0700 |
commit | 037d7a5d04c376b2fa8fc26076af9579c3712063 (patch) | |
tree | 510e3023d8472e1d235b0002adff963fae89009e /src/wasm/wasm-stack.cpp | |
parent | 0c58de1d350928e5e45594e4642349dc77697725 (diff) | |
download | binaryen-037d7a5d04c376b2fa8fc26076af9579c3712063.tar.gz binaryen-037d7a5d04c376b2fa8fc26076af9579c3712063.tar.bz2 binaryen-037d7a5d04c376b2fa8fc26076af9579c3712063.zip |
Add prototype SIMD rounding instructions (#2895)
As specified in https://github.com/WebAssembly/simd/pull/232.
Diffstat (limited to 'src/wasm/wasm-stack.cpp')
-rw-r--r-- | src/wasm/wasm-stack.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp index 58fa3f2ef..9ebf39fb8 100644 --- a/src/wasm/wasm-stack.cpp +++ b/src/wasm/wasm-stack.cpp @@ -981,6 +981,19 @@ void BinaryInstWriter::visitUnary(Unary* curr) { case SqrtVecF32x4: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F32x4Sqrt); break; + case CeilVecF32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F32x4Ceil); + break; + case FloorVecF32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F32x4Floor); + break; + case TruncVecF32x4: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F32x4Trunc); + break; + case NearestVecF32x4: + o << int8_t(BinaryConsts::SIMDPrefix) + << U32LEB(BinaryConsts::F32x4Nearest); + break; case AbsVecF64x2: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Abs); break; @@ -990,6 +1003,19 @@ void BinaryInstWriter::visitUnary(Unary* curr) { case SqrtVecF64x2: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Sqrt); break; + case CeilVecF64x2: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Ceil); + break; + case FloorVecF64x2: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Floor); + break; + case TruncVecF64x2: + o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::F64x2Trunc); + break; + case NearestVecF64x2: + o << int8_t(BinaryConsts::SIMDPrefix) + << U32LEB(BinaryConsts::F64x2Nearest); + break; case TruncSatSVecF32x4ToVecI32x4: o << int8_t(BinaryConsts::SIMDPrefix) << U32LEB(BinaryConsts::I32x4TruncSatSF32x4); |