[llvm] [VPlan] Replace gather with scalar load + splat for uniform addresses (PR #216767)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 17 10:03:15 PDT 2026
================
@@ -5480,6 +5480,30 @@ void VPlanTransforms::makeMemOpWideningDecisions(VPlan &Plan, VFRange &Range,
return ReplaceWith(VPI, StoreR);
});
+ VPlanTransforms::runPass(
+ "skipUniformGather", ProcessSubset, Plan, [&](VPInstruction *VPI) {
+ if (VPI->getOpcode() != Instruction::Load)
+ return false;
+ VPValue *Addr = VPI->getOperand(0);
+ if (!vputils::isUniformAcrossVFsAndUFs(Addr))
+ return false;
+ auto &LI = cast<LoadInst>(*VPI->getUnderlyingInstr());
+ const DataLayout &DL =
+ Plan.getScalarHeader()->getIRBasicBlock()->getDataLayout();
----------------
artagnon wrote:
Plan.getDataLayout()
https://github.com/llvm/llvm-project/pull/216767
More information about the llvm-commits
mailing list