[llvm] [IA][RISCV] Support VP intrinsics in InterleavedAccessPass (PR #120490)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 8 21:26:25 PST 2025


================
@@ -480,6 +671,35 @@ bool InterleavedAccessImpl::lowerInterleavedStore(
 
 bool InterleavedAccessImpl::lowerDeinterleaveIntrinsic(
     IntrinsicInst *DI, SmallVectorImpl<Instruction *> &DeadInsts) {
+  if (auto *VPLoad = dyn_cast<VPIntrinsic>(DI->getOperand(0))) {
+    SmallVector<Value *, 8> DeInterleaveResults;
+    unsigned Factor = getVectorDeInterleaveFactor(DI, DeInterleaveResults);
----------------
lukel97 wrote:

Is there anything that would prevent us from using this for non-VP loads? E.g. hoisting this up and plumbing Factor into lowerDeinterleaveIntrinsicToLoad?

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


More information about the llvm-commits mailing list