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
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Looks OK with some formatting nits
lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp | ||
---|---|---|
261 ↗ | (On Diff #159157) | Can you clang-format this? |
lib/Target/WebAssembly/WebAssemblyInstrFormats.td | ||
63 ↗ | (On Diff #159157) | Nit: space between simdop and = |
lib/Target/WebAssembly/WebAssemblyRegisterInfo.td | ||
66 ↗ | (On Diff #159157) | Wrap to 80 cols? |
Comment Actions
Landed rL339082 to address comments.
lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp | ||
---|---|---|
261 ↗ | (On Diff #159157) | Done in https://reviews.llvm.org/D50367. |
test/CodeGen/WebAssembly/simd-arith.ll | ||
150 ↗ | (On Diff #159157) | SIMD integer div ops are not in the spec |
Comment Actions
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).