[llvm] [VPlan] Use VPIRMetadata for VPInterleaveRecipe. (PR #153084)

via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 16 11:34:51 PDT 2025


================
@@ -2579,12 +2579,24 @@ void VPlanTransforms::createInterleaveGroups(
   VPDominatorTree VPDT;
   VPDT.recalculate(Plan);
   for (const auto *IG : InterleaveGroups) {
+    auto *Start =
+        cast<VPWidenMemoryRecipe>(RecipeBuilder.getRecipe(IG->getMember(0)));
+
+    VPIRMetadata InterleaveMD(*Start);
     SmallVector<VPValue *, 4> StoredValues;
-    for (unsigned i = 0; i < IG->getFactor(); ++i)
-      if (auto *SI = dyn_cast_or_null<StoreInst>(IG->getMember(i))) {
-        auto *StoreR = cast<VPWidenStoreRecipe>(RecipeBuilder.getRecipe(SI));
-        StoredValues.push_back(StoreR->getStoredValue());
-      }
+    if (auto *StoreR = dyn_cast<VPWidenStoreRecipe>(Start))
+      StoredValues.push_back(StoreR->getStoredValue());
+    for (unsigned I = 1; I < IG->getFactor(); ++I) {
+      Instruction *MemI = IG->getMember(I);
----------------
ayalz wrote:

```suggestion
      Instruction *MemberI = IG->getMember(I);
```
(Mem also stands for Memory)

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


More information about the llvm-commits mailing list