[llvm] [SLP]Prefer segmented/deinterleaved loads to strided and fix codegen (PR #135058)
Gaƫtan Bossu via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 14 02:29:42 PDT 2025
================
@@ -17618,8 +17617,27 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
MaskValues = replicateMask(MaskValues, VecTy->getNumElements());
}
Constant *MaskValue = ConstantVector::get(MaskValues);
- NewLI = Builder.CreateMaskedLoad(LoadVecTy, PO, CommonAlignment,
- MaskValue);
+ if (InterleaveFactor &&
+ TTI->hasActiveVectorLength(Instruction::Load, LoadVecTy,
+ CommonAlignment)) {
+ // FIXME: codegen currently recognizes only vp.load, not
+ // masked.load, as segmented (deinterleaved) loads.
----------------
gbossu wrote:
Is that a limitation for all codegen, or only some targets?
https://github.com/llvm/llvm-project/pull/135058
More information about the llvm-commits
mailing list