This was originally added in rG22174f5d5af1eb15b376c6d49e7925cbb7cca6be
although that patch doesn't really mention any reasons for ignoring the
pointer type in this calculation if the memory access isn't consecutive.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM. I don't see why we should be treating stores/loads involving 64-bit pointers any different to normal 64-bit values. Furthermore, there are no existing tests defending the case where VF>1, which suggests the removed code has little value. If we have an accurate cost model that reflects the cost of scalarising gathers/scatters then that should ensure a sensible choice of interleave count.
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | ||
---|---|---|
5993 | Can this be an assertion? The load/store type can't be unsized, and I assume a reduction type can't be unsized either? |
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | ||
---|---|---|
5993 | It can, thanks for the suggestion. Are you happy with me pushing this change directly? |
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | ||
---|---|---|
5993 | Sure. |
Can this be an assertion? The load/store type can't be unsized, and I assume a reduction type can't be unsized either?