diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 8468992ed4b7a..30c24494e3995 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -1675,7 +1675,8 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { return thisT()->getMemoryOpCost(*FOp, ICA.getArgTypes()[0], Alignment, AS, CostKind); } - if (VPBinOpIntrinsic::isVPBinOp(ICA.getID())) { + if (VPBinOpIntrinsic::isVPBinOp(ICA.getID()) || + ICA.getID() == Intrinsic::vp_fneg) { return thisT()->getArithmeticInstrCost(*FOp, ICA.getReturnType(), CostKind); } diff --git a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp index c46400a1936ad..da77bae18962c 100644 --- a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp +++ b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp @@ -1356,13 +1356,6 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA, return Cost * LT.first; break; } - case Intrinsic::vp_fneg: { - std::optional FOp = - VPIntrinsic::getFunctionalOpcodeForVP(ICA.getID()); - assert(FOp.has_value()); - return getArithmeticInstrCost(*FOp, ICA.getReturnType(), CostKind); - break; - } case Intrinsic::vp_select: { Intrinsic::ID IID = ICA.getID(); std::optional FOp = VPIntrinsic::getFunctionalOpcodeForVP(IID);