[llvm] [CostModel][AArch64] Make extractelement, with fmul user, free whenev… (PR #111479)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 7 09:07:14 PST 2024
================
@@ -1282,12 +1281,24 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
return 1;
}
- InstructionCost getVectorInstrCost(unsigned Opcode, Type *Val,
- TTI::TargetCostKind CostKind,
- unsigned Index, Value *Op0, Value *Op1) {
+ virtual InstructionCost getVectorInstrCost(unsigned Opcode, Type *Val,
+ TTI::TargetCostKind CostKind,
+ unsigned Index, Value *Op0,
+ Value *Op1) {
return getRegUsageForType(Val->getScalarType());
}
+ /// \param ScalarUserAndIdx encodes the information about extracts from a
+ /// vector with 'Scalar' being the value being extracted,'User' being the user
+ /// of the extract(nullptr if user is not known before vectorization) and
+ /// 'Idx' being the extract lane.
+ InstructionCost getVectorInstrCost(
+ unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index,
+ Value *Scalar,
+ ArrayRef<std::tuple<Value *, User *, int>> ScalarUserAndIdx) {
+ return getVectorInstrCost(Opcode, Val, CostKind, Index, nullptr, nullptr);
----------------
davemgreen wrote:
return thisT()->getVectorInstrCost(..)
https://github.com/llvm/llvm-project/pull/111479
More information about the llvm-commits
mailing list