[llvm] [LoopVectorize] Enable shuffle padding for masked interleaved accesses (PR #75329)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 14 17:26:16 PST 2023
huhu233 wrote:
> Can this be done as a part of VPlan-to-VPlan transformation ? For instance, transform
>
> ```
> INTERLEAVE-GROUP with factor 3 at %0, ir<%arrayidx>
> ir<%0> = load from index 0
> ir<%1> = load from index 1
> ...
> INTERLEAVE-GROUP with factor 3 at <badref>, ir<%y>
> store ir<%mul> to index 0
> store ir<%mul6> to index 1
> ```
>
> into something like
>
> ```
> INTERLEAVE-GROUP with factor 3 at %0, ir<%arrayidx>
> ir<%0> = load from index 0
> ir<%1> = load from index 1
> vp<%0> = padded load
> ...
> INTERLEAVE-GROUP with factor 3 at <ir<%0>, ir<%1>, vp<%0>>, ir<%y>
> store ir<%mul> to index 0
> store ir<%mul6> to index 1
> store vp<%0> to index 2
> ```
@nikolaypanchenko @fhahn, thanks for your suggestion, it seems like a more reasonable solution. I'll try to implement it as soon as possible!
https://github.com/llvm/llvm-project/pull/75329
More information about the llvm-commits
mailing list