[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 09:17:48 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:
Sorry if I'm missing something, where is the Type being `<20 x i64>` in this case? AFAICT, there isn't any load associated to the store when the store address is constant in x86, as it should just be needed to compute the memory address.
https://github.com/llvm/llvm-project/pull/118016
More information about the llvm-commits
mailing list