Skip to content

Commit 053e033

Browse files
[RISCV] Generalize cost model for vp_fneg. NFC. (#126915)
Move the cost model for vp_fneg from the riscv-specific implementation to the generic TTI layer. This ensures consistent handling of vp_fneg across targets
1 parent 7ec60bf commit 053e033

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

llvm/include/llvm/CodeGen/BasicTTIImpl.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1675,7 +1675,8 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
16751675
return thisT()->getMemoryOpCost(*FOp, ICA.getArgTypes()[0], Alignment,
16761676
AS, CostKind);
16771677
}
1678-
if (VPBinOpIntrinsic::isVPBinOp(ICA.getID())) {
1678+
if (VPBinOpIntrinsic::isVPBinOp(ICA.getID()) ||
1679+
ICA.getID() == Intrinsic::vp_fneg) {
16791680
return thisT()->getArithmeticInstrCost(*FOp, ICA.getReturnType(),
16801681
CostKind);
16811682
}

llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,13 +1356,6 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
13561356
return Cost * LT.first;
13571357
break;
13581358
}
1359-
case Intrinsic::vp_fneg: {
1360-
std::optional<unsigned> FOp =
1361-
VPIntrinsic::getFunctionalOpcodeForVP(ICA.getID());
1362-
assert(FOp.has_value());
1363-
return getArithmeticInstrCost(*FOp, ICA.getReturnType(), CostKind);
1364-
break;
1365-
}
13661359
case Intrinsic::vp_select: {
13671360
Intrinsic::ID IID = ICA.getID();
13681361
std::optional<unsigned> FOp = VPIntrinsic::getFunctionalOpcodeForVP(IID);

0 commit comments

Comments
 (0)