forked from OSchip/llvm-project
[SLP] use reduction kind's opcode for cost model queries; NFC
This should be no-functional-change because the reduction kind opcodes are 1-for-1 mappings to the instructions we are matching as reductions. But we want to remove the need for the `OperationData` opcode field because that does not work when we start matching intrinsics (eg, maxnum) as reduction candidates.
This commit is contained in:
parent
d4a999b453
commit
5a1d31a284
|
@ -7138,6 +7138,7 @@ private:
|
|||
auto *VecTy = FixedVectorType::get(ScalarTy, ReduxWidth);
|
||||
|
||||
RecurKind Kind = RdxTreeInst.getKind();
|
||||
unsigned RdxOpcode = RecurrenceDescriptor::getOpcode(Kind);
|
||||
int SplittingRdxCost;
|
||||
switch (Kind) {
|
||||
case RecurKind::Add:
|
||||
|
@ -7147,9 +7148,8 @@ private:
|
|||
case RecurKind::Xor:
|
||||
case RecurKind::FAdd:
|
||||
case RecurKind::FMul:
|
||||
SplittingRdxCost =
|
||||
TTI->getArithmeticReductionCost(RdxTreeInst.getOpcode(), VecTy,
|
||||
/*IsPairwiseForm=*/false);
|
||||
SplittingRdxCost = TTI->getArithmeticReductionCost(
|
||||
RdxOpcode, VecTy, /*IsPairwiseForm=*/false);
|
||||
break;
|
||||
case RecurKind::SMax:
|
||||
case RecurKind::SMin:
|
||||
|
@ -7175,15 +7175,14 @@ private:
|
|||
case RecurKind::Xor:
|
||||
case RecurKind::FAdd:
|
||||
case RecurKind::FMul:
|
||||
ScalarReduxCost =
|
||||
TTI->getArithmeticInstrCost(RdxTreeInst.getOpcode(), ScalarTy);
|
||||
ScalarReduxCost = TTI->getArithmeticInstrCost(RdxOpcode, ScalarTy);
|
||||
break;
|
||||
case RecurKind::SMax:
|
||||
case RecurKind::SMin:
|
||||
case RecurKind::UMax:
|
||||
case RecurKind::UMin:
|
||||
ScalarReduxCost =
|
||||
TTI->getCmpSelInstrCost(RdxTreeInst.getOpcode(), ScalarTy) +
|
||||
TTI->getCmpSelInstrCost(RdxOpcode, ScalarTy) +
|
||||
TTI->getCmpSelInstrCost(Instruction::Select, ScalarTy,
|
||||
CmpInst::makeCmpResultType(ScalarTy));
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue