================ @@ -2649,8 +2663,11 @@ LoopVectorizationCostModel::memoryInstructionCanBeWidened(Instruction *I, auto *Ptr = getLoadStorePointerOperand(I); auto *ScalarTy = getLoadStoreType(I); - // In order to be widened, the pointer should be consecutive, first of all. + // In order to be widened, the pointer should be consecutive or compressed. int Stride = Legal->isConsecutivePtr(ScalarTy, Ptr); + if (!Stride && Legal->isCompressedLoadOrStore(I)) + Stride = 1; ---------------- MacDue wrote:
Sure, I've updated `isConsecutivePtr()`. It does require some LAA changes (but they're needed later to allow vectorization in more cases later anyway -- though that is not handled in this patch). https://github.com/llvm/llvm-project/pull/214491 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
