[llvm] [VPlan] Create VectorEndPointer with full NW flags (PR #151558)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 4 01:37:53 PDT 2025


================
@@ -2594,9 +2595,7 @@ void VPlanTransforms::createInterleaveGroups(
     if (IG->isReverse()) {
       auto *ReversePtr = new VPVectorEndPointerRecipe(
           Addr, &Plan.getVF(), getLoadStoreType(IRInsertPos),
-          -(int64_t)IG->getFactor(),
-          InBounds ? GEPNoWrapFlags::inBounds() : GEPNoWrapFlags::none(),
-          InsertPos->getDebugLoc());
+          -(int64_t)IG->getFactor(), NW, InsertPos->getDebugLoc());
----------------
fhahn wrote:

Is this correct? If the original GEP has `nuw`, we will add `nuw` to a GEP with a negative offset. Adding a negative offset is likely to wrap in unsigned.

This probably should only preserve either inbounds or nusw, same for above

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


More information about the llvm-commits mailing list