[llvm] [IA] Support deinterleave intrinsics w/ fewer than N extracts (PR #147572)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 9 10:03:19 PDT 2025


================
@@ -17456,14 +17456,16 @@ bool AArch64TargetLowering::lowerInterleavedStore(StoreInst *SI,
 }
 
 bool AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(
-    LoadInst *LI, ArrayRef<Value *> DeinterleavedValues) const {
-  unsigned Factor = DeinterleavedValues.size();
+    LoadInst *LI, ArrayRef<Value *> DeinterleavedValues,
+    unsigned Factor) const {
----------------
mshockwave wrote:

I might be missing something, but why couldn't we obtain Factor from the size of DeinterleavedValues? In InterleavedAccessPass we reserved a SmallVector with size of Factor and initialize it with nullptr, so if we have fewer than Factor number of extracts, we still have a SmallVector size of Factor but with some elements being nullptr

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


More information about the llvm-commits mailing list