Fixes part of the problem reported in bug 39275.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | ||
---|---|---|
177 ↗ | (On Diff #170540) | Real nit: Maybe we don't need 'any' |
186 ↗ | (On Diff #170540) |
|
191 ↗ | (On Diff #170540) | Style nit: add {} to the outer for loops too in case an inner block has {} aleady? |
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | ||
---|---|---|
186 ↗ | (On Diff #170540) | I believe nothing changes if T and MVT have different numbers of elements. It should not be possible for a DAG to get into that state. Writing the code this way is just shorter than finding the minimum set of actions that need to be set. The extending loads and truncating stores are for exactly the case when the in-memory vector has smaller lane sizes than the in-register vector. This code expands those cases to load or store the vectors one lane at a time. I believe it is not possible to have in-memory lanes that are larger than the in-register lanes. |