[SLP] getReductionCost - use explicit TTI::TCK_RecipThroughput CostKind. NFCI.
Avoid relying on the default cost kinds in TTI calls (we already do this in other places in SLP) - noticed while trying to see how much work it'd be to extend D110242 and remove all remaining uses of default CostKind arguments.
This commit is contained in:
parent
98e96663f6
commit
8a44281f47
|
|
@ -8492,6 +8492,7 @@ private:
|
|||
InstructionCost getReductionCost(TargetTransformInfo *TTI,
|
||||
Value *FirstReducedVal, unsigned ReduxWidth,
|
||||
FastMathFlags FMF) {
|
||||
TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput;
|
||||
Type *ScalarTy = FirstReducedVal->getType();
|
||||
FixedVectorType *VectorTy = FixedVectorType::get(ScalarTy, ReduxWidth);
|
||||
InstructionCost VectorCost, ScalarCost;
|
||||
|
|
@ -8504,15 +8505,16 @@ private:
|
|||
case RecurKind::FAdd:
|
||||
case RecurKind::FMul: {
|
||||
unsigned RdxOpcode = RecurrenceDescriptor::getOpcode(RdxKind);
|
||||
VectorCost = TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, FMF);
|
||||
ScalarCost = TTI->getArithmeticInstrCost(RdxOpcode, ScalarTy);
|
||||
VectorCost =
|
||||
TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, FMF, CostKind);
|
||||
ScalarCost = TTI->getArithmeticInstrCost(RdxOpcode, ScalarTy, CostKind);
|
||||
break;
|
||||
}
|
||||
case RecurKind::FMax:
|
||||
case RecurKind::FMin: {
|
||||
auto *VecCondTy = cast<VectorType>(CmpInst::makeCmpResultType(VectorTy));
|
||||
VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy,
|
||||
/*unsigned=*/false);
|
||||
/*unsigned=*/false, CostKind);
|
||||
ScalarCost =
|
||||
TTI->getCmpSelInstrCost(Instruction::FCmp, ScalarTy) +
|
||||
TTI->getCmpSelInstrCost(Instruction::Select, ScalarTy,
|
||||
|
|
@ -8526,7 +8528,8 @@ private:
|
|||
auto *VecCondTy = cast<VectorType>(CmpInst::makeCmpResultType(VectorTy));
|
||||
bool IsUnsigned =
|
||||
RdxKind == RecurKind::UMax || RdxKind == RecurKind::UMin;
|
||||
VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy, IsUnsigned);
|
||||
VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy, IsUnsigned,
|
||||
CostKind);
|
||||
ScalarCost =
|
||||
TTI->getCmpSelInstrCost(Instruction::ICmp, ScalarTy) +
|
||||
TTI->getCmpSelInstrCost(Instruction::Select, ScalarTy,
|
||||
|
|
|
|||
Loading…
Reference in New Issue