[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