[llvm] [LV] Convert scatter stores with constant stride into strided stores (PR #206896)

Mel Chen via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 5 01:47:35 PDT 2026


================
@@ -5698,17 +5697,29 @@ void VPlanTransforms::convertToStridedAccesses(VPlan &Plan,
                                      m_SpecificLoop(&L))))
         continue;
 
-      Type *LoadTy = LoadR->getScalarType();
-      Align Alignment = LoadR->getAlign();
+      VPValue *StoredValue = nullptr;
+      Type *DataTy;
+      Intrinsic::ID IntrinID;
+      if (auto *StoreR = dyn_cast<VPWidenStoreRecipe>(&R)) {
+        StoredValue = StoreR->getStoredValue();
+        DataTy = StoredValue->getScalarType();
+        IntrinID = Intrinsic::experimental_vp_strided_store;
+      } else if (auto *LoadR = dyn_cast<VPWidenLoadRecipe>(&R)) {
+        DataTy = LoadR->getScalarType();
+        IntrinID = Intrinsic::experimental_vp_strided_load;
+      } else {
+        continue;
----------------
Mel-Chen wrote:

e5549ae40c651a8b471d07fd320a839105c564fe
Switch to using cast to ensure that convertToStridedAccesses should not encounter EVL memory recipes.

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


More information about the llvm-commits mailing list