diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2021-01-19 19:32:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-19 16:32:10 -0800 |
commit | a4d1b53ff3374a5d7843b0a879a7908334d5bb46 (patch) | |
tree | 6bc7c3fd1ca8850f5fbba27ee850b98343306656 /src/wasm/wasm-binary.cpp | |
parent | 0f212dfc69306688afa5057e3179aed5af3edc85 (diff) | |
download | binaryen-a4d1b53ff3374a5d7843b0a879a7908334d5bb46.tar.gz binaryen-a4d1b53ff3374a5d7843b0a879a7908334d5bb46.tar.bz2 binaryen-a4d1b53ff3374a5d7843b0a879a7908334d5bb46.zip |
Prototype additional f64x2 conversions (#3501)
As proposed in https://github.com/WebAssembly/simd/pull/383, with opcodes
coordinated with the WIP V8 prototype.
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r-- | src/wasm/wasm-binary.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index bf2e4afef..eea0a9c21 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -5037,6 +5037,30 @@ bool WasmBinaryBuilder::maybeVisitSIMDUnary(Expression*& out, uint32_t code) { curr = allocator.alloc<Unary>(); curr->op = WidenHighUVecI32x4ToVecI64x2; break; + case BinaryConsts::F64x2ConvertLowSI32x4: + curr = allocator.alloc<Unary>(); + curr->op = ConvertLowSVecI32x4ToVecF64x2; + break; + case BinaryConsts::F64x2ConvertLowUI32x4: + curr = allocator.alloc<Unary>(); + curr->op = ConvertLowUVecI32x4ToVecF64x2; + break; + case BinaryConsts::I32x4TruncSatZeroSF64x2: + curr = allocator.alloc<Unary>(); + curr->op = TruncSatZeroSVecF64x2ToVecI32x4; + break; + case BinaryConsts::I32x4TruncSatZeroUF64x2: + curr = allocator.alloc<Unary>(); + curr->op = TruncSatZeroUVecF64x2ToVecI32x4; + break; + case BinaryConsts::F32x4DemoteZeroF64x2: + curr = allocator.alloc<Unary>(); + curr->op = DemoteZeroVecF64x2ToVecF32x4; + break; + case BinaryConsts::F64x2PromoteLowF32x4: + curr = allocator.alloc<Unary>(); + curr->op = PromoteLowVecF32x4ToVecF64x2; + break; default: return false; } |