[PATCH] D144092: [RISCV] Lower interleave and deinterleave intrinsics
    Philip Reames via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Feb 15 09:16:33 PST 2023
    
    
  
reames added a comment.
For interleave, a couple options to consider:
1. Concatenate vectors into LMUL+1 vector, then gather using {0,VLMAX,1, VLMAX+1,...].  Forming that index vector takes some care for the scalable case, but I think we can do id()/2 +{masked} VLMAX where mask = {0,1,0,1}.  The mask can in turn be computed as {id()&1 == 1) Using a segment store to the stack followed by a whole vector reload.
p.s. This was written before @craig.topper's comment, and I haven't read his in detail.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144092/new/
https://reviews.llvm.org/D144092
    
    
More information about the llvm-commits
mailing list