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-binary.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-binary.cpp')
-rw-r--r-- | src/wasm/wasm-binary.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 3441953a7..a766e9b63 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -4194,6 +4194,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDUnary(Expression*& out, uint32_t code) { curr = allocator.alloc<Unary>(); curr->op = SqrtVecF32x4; break; + case BinaryConsts::F32x4Ceil: + curr = allocator.alloc<Unary>(); + curr->op = CeilVecF32x4; + break; + case BinaryConsts::F32x4Floor: + curr = allocator.alloc<Unary>(); + curr->op = FloorVecF32x4; + break; + case BinaryConsts::F32x4Trunc: + curr = allocator.alloc<Unary>(); + curr->op = TruncVecF32x4; + break; + case BinaryConsts::F32x4Nearest: + curr = allocator.alloc<Unary>(); + curr->op = NearestVecF32x4; + break; case BinaryConsts::F64x2Abs: curr = allocator.alloc<Unary>(); curr->op = AbsVecF64x2; @@ -4206,6 +4222,22 @@ bool WasmBinaryBuilder::maybeVisitSIMDUnary(Expression*& out, uint32_t code) { curr = allocator.alloc<Unary>(); curr->op = SqrtVecF64x2; break; + case BinaryConsts::F64x2Ceil: + curr = allocator.alloc<Unary>(); + curr->op = CeilVecF64x2; + break; + case BinaryConsts::F64x2Floor: + curr = allocator.alloc<Unary>(); + curr->op = FloorVecF64x2; + break; + case BinaryConsts::F64x2Trunc: + curr = allocator.alloc<Unary>(); + curr->op = TruncVecF64x2; + break; + case BinaryConsts::F64x2Nearest: + curr = allocator.alloc<Unary>(); + curr->op = NearestVecF64x2; + break; case BinaryConsts::I32x4TruncSatSF32x4: curr = allocator.alloc<Unary>(); curr->op = TruncSatSVecF32x4ToVecI32x4; |