[llvm] [IR] Add llvm.vector.[de]interleave{4,6,8} (PR #139893)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Wed May 21 04:30:56 PDT 2025
lukel97 wrote:
> It was implemented downstream in a completely separate vectorization framework. I'm only mentioning it because we don't want to block off the possibility of adding such support in the future.
Agreed it would be nice to keep the possibility. From my understanding, these higher factors only need the recursive interleaving support in the loop vectorizer, not in InterleavedAccessPass because there's no hardware instructions beyond 8 that we can currently map to. So could I suggest the following plan instead:
* Teach the loop vectorizer to emit a single [de]interleave intrinsic for factors up to 8. Keep the recursive interleaving for powers of 2 beyond 8.
* Remove the recursive [de]interleaving pattern matching from InterleavedAccessPass. Only match single intrinsics up to factor 8.
This way we would still be able to scalably vectorize e.g. factor 16, and can still remove the recursive deinterleaving part in InterleavedAccessPass.
https://github.com/llvm/llvm-project/pull/139893
More information about the llvm-commits
mailing list