[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