[llvm] [LoopVectorize] Enable shuffle padding for masked interleaved accesses (PR #75329)

Kolya Panchenko via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 14 10:31:59 PST 2023


https://github.com/nikolaypanchenko commented:

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
```

https://github.com/llvm/llvm-project/pull/75329


More information about the llvm-commits mailing list