[llvm] [SLPVectorizer][X86] Free load cost for stores with constant pointers (PR #118016)
Antonio Frighetto via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 3 10:14:25 PST 2024
================
@@ -5157,8 +5157,9 @@ InstructionCost X86TTIImpl::getMemoryOpCost(unsigned Opcode, Type *Src,
InstructionCost Cost = 0;
- // Add a cost for constant load to vector.
- if (Opcode == Instruction::Store && OpInfo.isConstant())
+ // Add a cost for constant load to vector, if pointer is not a constant.
+ if (auto *SI = dyn_cast_or_null<StoreInst>(I);
+ SI && !isa<Constant>(SI->getPointerOperand()) && OpInfo.isConstant())
----------------
antoniofrighetto wrote:
That's correct. There is no cost for any constant load. There is only a memory address computation, which is _not_ a load.
https://github.com/llvm/llvm-project/pull/118016
More information about the llvm-commits
mailing list