[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