[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