Add missing SIMD types (v2i64 and v2f64) and binary ops. Also adds
tablegen support for automatically prepending prefix byte to SIMD
opcodes. Replaces individual vector ExprTypes with a single V128 type.
Details
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 21198 Build 21198: arc lint + arc unit
Event Timeline
Landed rL339082 to address comments.
lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp | ||
---|---|---|
261 | Done in https://reviews.llvm.org/D50367. | |
test/CodeGen/WebAssembly/simd-arith.ll | ||
150 | SIMD integer div ops are not in the spec |
Keeping MUL is fine for now. IIRC there was some discussion in the last CG in-person meeting about removing or changing it (e.g. probably not super-useful especially for small types due to the likelihood of overflow). Probably in cases where the spec is still in flux it makes sense for LLVM to match what V8 implements now, so we can test things end-to-end. Then when we settle on things we can just change LLVM (or do LLVM first to see whether a proposal is feasible).
Replacing the ExprType is not related to the rest of this CL, so it should probably be split into a separate CL.