4 ms·
LLVM's Polly[0] can often do magic there, by renumbering[1] the iteration space. Where variable vector length instructions help is decoupling the chunk size fro
by namibj 5y ago
LLVM's Polly[0] can often do magic there, by renumbering[1] the iteration space.
Where variable vector length instructions help is decoupling the chunk size from the machine code, because they take care of the remainder that doesn't fit in whole vectors/chunks in an agnostic fashion.
It's so you can get at least most of the gains from wider vector units without needing to change the code.
[0]: https://polly.llvm.org/ https://polly.llvm.org/
[1]: https://en.wikipedia.org/wiki/Polytope_model https://en.wikipedia.org/wiki/Polytope_model