|
LLVM 22.0.0git
|
#include "Target/AArch64/AArch64TargetTransformInfo.h"
Definition at line 42 of file AArch64TargetTransformInfo.h.
|
inlineexplicit |
Definition at line 87 of file AArch64TargetTransformInfo.h.
References F, and llvm::TargetTransformInfoImplBase::getDataLayout().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 272 of file AArch64TargetTransformInfo.cpp.
References llvm::SMECallAttrs::callee(), llvm::SMECallAttrs::caller(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::TargetMachine::getSubtargetImpl(), llvm::SMEAttrs::hasNonStreamingInterfaceAndBody(), hasPossibleIncompatibleOps(), llvm::SMEAttrs::hasStreamingBody(), llvm::SMEAttrs::hasStreamingInterfaceOrBody(), llvm::SMEAttrs::isNewZA(), llvm::SMEAttrs::isNewZT0(), llvm::SMECallAttrs::requiresLazySave(), llvm::SMECallAttrs::requiresPreservingAllZAState(), llvm::SMECallAttrs::requiresPreservingZT0(), llvm::SMECallAttrs::requiresSMChange(), llvm::SMEAttrs::set(), llvm::SMEAttrs::SM_Compatible, and llvm::SMEAttrs::SM_Enabled.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 315 of file AArch64TargetTransformInfo.cpp.
References llvm::any_of(), and llvm::TargetTransformInfoImplBase::areTypesABICompatible().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 125 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 127 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4737 of file AArch64TargetTransformInfo.cpp.
References Options.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 427 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3012 of file AArch64TargetTransformInfo.cpp.
References EnableScalableAutovecInStreamingMode.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 517 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4556 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::TargetTransformInfoImplBase::isConstantStridedAccessLessThan(), llvm::Type::isVectorTy(), and NeonNonConstStrideOverhead.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4219 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::ISD::FADD, llvm::ISD::FDIV, llvm::ISD::FMUL, llvm::ISD::FREM, llvm::ISD::FSUB, getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCallInstrCost(), getCastInstrCost(), getFP16BF16PromoteCost(), llvm::InstructionCost::getInvalid(), llvm::TargetTransformInfo::OperandValueInfo::getNoProps(), llvm::User::getOperand(), llvm::ElementCount::getScalable(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::Value::hasOneUse(), llvm::isa(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), llvm::TargetTransformInfo::OperandValueInfo::isNegatedPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isUniform(), llvm::PatternMatch::m_FMul(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::ISD::MUL, llvm::TargetTransformInfo::None, llvm::ISD::OR, llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::ISD::UDIV, llvm::ISD::UREM, llvm::Value::user_begin(), and llvm::ISD::XOR.
Referenced by getArithmeticInstrCost(), getArithmeticReductionCost(), getArithmeticReductionCostSVE(), and getIntrinsicInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5574 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::dyn_cast(), llvm::ISD::FADD, llvm::FixedVectorType::get(), getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getArithmeticReductionCost(), getArithmeticReductionCostSVE(), llvm::InstructionCost::getInvalid(), getMaxNumElements(), llvm::ElementCount::getScalable(), llvm::Type::getScalarType(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::MVT::getVectorNumElements(), llvm::isa(), llvm::isPowerOf2_32(), llvm::MVT::isVector(), llvm::Log2_32(), llvm::ISD::OR, llvm::TargetTransformInfo::requiresOrderedReduction(), and llvm::ISD::XOR.
| InstructionCost AArch64TTIImpl::getArithmeticReductionCostSVE | ( | unsigned | Opcode, |
| VectorType * | ValTy, | ||
| TTI::TargetCostKind | CostKind ) const |
Definition at line 5548 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), CostKind, llvm::ISD::FADD, getArithmeticInstrCost(), llvm::InstructionCost::getInvalid(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by getArithmeticReductionCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3229 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::EVT::bitsGT(), llvm::cast(), llvm::ConvertCostTableLookup(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ScalableVectorType::get(), getCastInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCastInstrCost(), llvm::InstructionCost::getInvalid(), getNumElements(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getScalarizationOverhead(), llvm::EVT::getScalarSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::EVT::getScalarType(), llvm::EVT::getSimpleVT(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::EVT::getVectorNumElements(), llvm::Type::getWithNewBitWidth(), I, llvm::isa(), isExtPartOfAvgExpr(), llvm::EVT::isFixedLengthVector(), llvm::EVT::isSimple(), llvm::TargetTransformInfo::Masked, llvm::TargetTransformInfo::None, llvm::TargetTransformInfo::Normal, llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::AArch64::SVEBitsPerBlock, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::ISD::TRUNCATE, llvm::TargetLoweringBase::TypePromoteInteger, llvm::TargetLoweringBase::TypeSplitVector, llvm::ISD::UINT_TO_FP, and llvm::ISD::ZERO_EXTEND.
Referenced by getArithmeticInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), getExtractWithExtendCost(), getFP16BF16PromoteCost(), getIntrinsicInstrCost(), and getSpliceCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3954 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, I, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4601 of file AArch64TargetTransformInfo.cpp.
References llvm::any_of(), llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::cast(), llvm::ConvertCostTableLookup(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::BasicTTIImplBase< AArch64TTIImpl >::getCallInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCmpSelInstrCost(), getFP16BF16PromoteCost(), llvm::VectorType::getInteger(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), hasKnownLowerThroughputFromSchedulingModel(), I, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::isa(), llvm::CmpInst::isIntPredicate(), llvm::EVT::isSimple(), llvm::CmpInst::isUnsigned(), llvm::Type::isVectorTy(), llvm::PatternMatch::m_AllOnes(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_Cmp(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::TargetTransformInfo::None, llvm::TargetTransformInfo::TCK_Latency, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Referenced by getCmpSelInstrCost(), getIntrinsicInstrCost(), and getSpliceCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5006 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, getMemoryOpCost(), I, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6304 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5704 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getExtendedReductionCost(), llvm::EVT::getSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), and llvm::EVT::isSimple().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3895 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, getCastInstrCost(), llvm::VectorType::getElementType(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::isa(), llvm_unreachable, and llvm::TargetTransformInfo::None.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 255 of file AArch64TargetTransformInfo.cpp.
References F, llvm::AArch64::getFMVPriority(), isMultiversionedFunction(), and llvm::StringRef::split().
| std::optional< InstructionCost > AArch64TTIImpl::getFP16BF16PromoteCost | ( | Type * | Ty, |
| TTI::TargetCostKind | CostKind, | ||
| TTI::OperandValueInfo | Op1Info, | ||
| TTI::OperandValueInfo | Op2Info, | ||
| bool | IncludeTrunc, | ||
| bool | CanUseSVE, | ||
| std::function< InstructionCost(Type *)> | InstCost ) const |
FP16 and BF16 operations are lowered to fptrunc(op(fpext, fpext) if the architecture features are not present.
Definition at line 4195 of file AArch64TargetTransformInfo.cpp.
References CostKind, getCastInstrCost(), llvm::Type::getFloatTy(), llvm::Type::getWithNewType(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), and llvm::TargetTransformInfo::None.
Referenced by getArithmeticInstrCost(), and getCmpSelInstrCost().
| InstructionCost AArch64TTIImpl::getGatherScatterOpCost | ( | const MemIntrinsicCostAttributes & | MICA, |
| TTI::TargetCostKind | CostKind ) const |
Definition at line 4822 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::MemIntrinsicCostAttributes::getAlignment(), llvm::MemIntrinsicCostAttributes::getDataType(), llvm::MemIntrinsicCostAttributes::getID(), llvm::MemIntrinsicCostAttributes::getInst(), llvm::InstructionCost::getInvalid(), getMaxNumElements(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost(), getMemoryOpCost(), llvm::ElementCount::getScalable(), getSVEGatherScatterOverhead(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), I, isElementTypeLegalForScalableVector(), isLegalMaskedGatherScatter(), and useNeonVector().
Referenced by getMemIntrinsicInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 442 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4164 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::getIndexedVectorInstrCostFromEnd(), llvm::isa(), and llvm::TargetTransformInfo::TCK_CodeSize.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 340 of file AArch64TargetTransformInfo.cpp.
References Call, llvm::SMECallAttrs::callee(), llvm::SMECallAttrs::caller(), CallPenaltyChangeSM, F, InlineCallPenaltyChangeSM, and llvm::SMECallAttrs::requiresSMChange().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4963 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::VectorType::get(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getInterleavedMemoryOpCost(), llvm::InstructionCost::getInvalid(), llvm::isPowerOf2_32(), and llvm::Type::isScalableTy().
|
overridevirtual |
Calculate the cost of materializing the given constant.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 406 of file AArch64TargetTransformInfo.cpp.
References llvm::APInt::ashr(), assert(), CostKind, getIntImmCost(), llvm::APInt::getSExtValue(), and llvm::APInt::sextOrTrunc().
| InstructionCost AArch64TTIImpl::getIntImmCost | ( | int64_t | Val | ) | const |
Calculate the cost of materializing a 64-bit value.
This helper method might only calculate a fraction of a larger immediate. Therefore it is valid to return a cost of ZERO.
Definition at line 390 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64_IMM::expandMOVImm(), llvm::AArch64_AM::isLogicalImmediate(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by getIntImmCost(), getIntImmCostInst(), and getIntImmCostIntrin().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 431 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 500 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), llvm::isInt(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 608 of file AArch64TargetTransformInfo.cpp.
References _, llvm::any_of(), llvm::CallingConv::C, llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::ISD::CTPOP, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::CmpInst::FCMP_UNO, llvm::VectorType::get(), llvm::IntrinsicCostAttributes::getArgs(), llvm::IntrinsicCostAttributes::getArgTypes(), getArithmeticInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), llvm::TargetTransformInfoImplBase::getDataLayout(), llvm::Type::getFloatTy(), getHistogramCost(), llvm::IntrinsicCostAttributes::getID(), llvm::Type::getIntNTy(), getIntrinsicInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getIntrinsicInstrCost(), llvm::InstructionCost::getInvalid(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::TargetTransformInfo::getOperandInfo(), llvm::IntrinsicCostAttributes::getReturnType(), llvm::ElementCount::getScalable(), llvm::EVT::getScalarSizeInBits(), llvm::MVT::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::EVT::getSimpleVT(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::DataLayout::getTypeSizeInBits(), llvm::EVT::getVectorNumElements(), llvm::Type::getWithNewBitWidth(), llvm::CmpInst::ICMP_UGT, llvm::isa(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), llvm::Type::isDoubleTy(), llvm::EVT::isFixedLengthVector(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::isPowerOf2_64(), llvm::EVT::isSimple(), llvm::BasicTTIImplBase< AArch64TTIImpl >::isTypeLegal(), llvm::TargetTransformInfo::OperandValueInfo::isUniform(), isUnpackedVectorVT(), llvm::InstructionCost::isValid(), llvm::MVT::isVector(), llvm::ConstantInt::isZero(), llvm::TargetTransformInfo::None, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::TargetTransformInfo::TCC_Free, llvm::TargetLoweringBase::TypeLegal, and llvm::TargetLoweringBase::TypeSplitVector.
Referenced by getIntrinsicInstrCost(), and getMinMaxReductionCost().
| InstructionCost AArch64TTIImpl::getMaskedMemoryOpCost | ( | const MemIntrinsicCostAttributes & | MICA, |
| TTI::TargetCostKind | CostKind ) const |
Definition at line 4774 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::MemIntrinsicCostAttributes::getDataType(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost(), llvm::ElementCount::getScalable(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), and useNeonVector().
Referenced by getMemIntrinsicInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5020 of file AArch64TargetTransformInfo.cpp.
|
inline |
Try to return an estimate cost factor that can be used as a multiplier when scalarizing an operation for a vector with ElementCount VF.
For scalable vectors this currently takes the most pessimistic view based upon the maximum possible value for vscale.
Definition at line 174 of file AArch64TargetTransformInfo.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable().
Referenced by getArithmeticReductionCost(), and getGatherScatterOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4760 of file AArch64TargetTransformInfo.cpp.
References CostKind, getGatherScatterOpCost(), llvm::MemIntrinsicCostAttributes::getID(), getMaskedMemoryOpCost(), and llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4867 of file AArch64TargetTransformInfo.cpp.
References llvm::CallingConv::C, llvm::cast(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemoryOpCost(), llvm::ElementCount::getScalable(), llvm::EVT::getScalarSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), llvm::EVT::getVectorVT(), I, llvm::isPowerOf2_32(), llvm::NextPowerOf2(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::TargetTransformInfo::TCK_CodeSize, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::TargetTransformInfo::TCK_SizeAndLatency, and useNeonVector().
Referenced by getCostOfKeepingLiveOverCall(), and getGatherScatterOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5522 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::dyn_cast(), getIntrinsicInstrCost(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMinMaxReductionCost(), llvm::ElementCount::getScalable(), llvm::EVT::getTypeForEVT(), and llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 532 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 444 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 157 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5732 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getMulAccReductionCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), and llvm::EVT::isSimple().
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 131 of file AArch64TargetTransformInfo.h.
References llvm::Vector.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5381 of file AArch64TargetTransformInfo.cpp.
References llvm::CallBase::arg_size(), llvm::dyn_cast(), llvm::PoisonValue::get(), llvm::CallBase::getArgOperand(), llvm::IntrinsicInst::getIntrinsicID(), and llvm::Value::getType().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5811 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::divideCoefficientBy(), llvm::VectorType::get(), llvm::Type::getContext(), llvm::EVT::getEVT(), llvm::InstructionCost::getInvalid(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::Type::getPrimitiveSizeInBits(), llvm::TypeSize::getScalable(), llvm::Type::getScalarSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::Invalid, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isFixed(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownLT(), llvm::TargetTransformInfo::PR_None, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::TargetLoweringBase::TypeLegal, llvm::TargetLoweringBase::TypePromoteInteger, and llvm::TargetLoweringBase::TypeSplitVector.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5376 of file AArch64TargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::getPeelingPreferences().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 552 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::isPowerOf2_32(), llvm::TargetTransformInfo::PSK_FastHardware, and llvm::TargetTransformInfo::PSK_Software.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 449 of file AArch64TargetTransformInfo.h.
References llvm::DataAndControlFlow, llvm::DataAndControlFlowWithoutRuntimeCheck, and llvm::DataWithoutLaneMask.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3018 of file AArch64TargetTransformInfo.cpp.
References EnableFixedwidthAutovecInStreamingMode, EnableScalableAutovecInStreamingMode, llvm::TypeSize::getFixed(), llvm::TypeSize::getScalable(), llvm_unreachable, llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4181 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getScalarizationOverhead(), llvm::isa(), llvm::APInt::popcount(), and llvm::TargetTransformInfo::TCK_CodeSize.
|
overridevirtual |
Return the cost of the scaling factor used in the addressing mode represented by AM for this target, for a load/store of the specified type.
If the AM is supported, the return value must be >= 0. If the AM is not supported, it returns an invalid cost.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6350 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetLoweringBase::AddrMode::BaseGV, llvm::TargetLoweringBase::AddrMode::BaseOffs, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::StackOffset::getFixed(), llvm::InstructionCost::getInvalid(), llvm::StackOffset::getScalable(), llvm::TargetLoweringBase::AddrMode::HasBaseReg, llvm::BasicTTIImplBase< AArch64TTIImpl >::isLegalAddressingMode(), llvm::TargetLoweringBase::AddrMode::ScalableOffset, and llvm::TargetLoweringBase::AddrMode::Scale.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5911 of file AArch64TargetTransformInfo.cpp.
References llvm::all_of(), assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::drop_begin(), llvm::enumerate(), llvm::VectorType::get(), llvm::VectorType::getElementCount(), llvm::ElementCount::getFixed(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::FixedVectorType::getNumElements(), llvm::getPerfectShuffleCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarType(), getShuffleCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getShuffleCost(), getSpliceCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::Value::hasOneUse(), llvm::BasicTTIImplBase< AArch64TTIImpl >::improveShuffleKindFromMask(), llvm::isa(), llvm::ShuffleVectorInst::isDeInterleaveMaskOfFactor(), llvm::isDUPFirstSegmentMask(), llvm::isDUPQMask(), llvm::ShuffleVectorInst::isInterleaveMask(), isLegalBroadcastLoad(), llvm::isREVMask(), llvm::Type::isScalableTy(), llvm::isUZPMask(), llvm::isZIPMask(), N, llvm::PoisonMaskElem, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::TargetTransformInfo::SK_Broadcast, llvm::TargetTransformInfo::SK_ExtractSubvector, llvm::TargetTransformInfo::SK_InsertSubvector, llvm::TargetTransformInfo::SK_PermuteSingleSrc, llvm::TargetTransformInfo::SK_PermuteTwoSrc, llvm::TargetTransformInfo::SK_Reverse, llvm::TargetTransformInfo::SK_Select, llvm::TargetTransformInfo::SK_Splice, llvm::TargetTransformInfo::SK_Transpose, llvm::AArch64::SVEBitsPerBlock, llvm::TargetTransformInfo::TCK_CodeSize, and llvm::Value::user_begin().
Referenced by getShuffleCost().
| InstructionCost AArch64TTIImpl::getSpliceCost | ( | VectorType * | Tp, |
| int | Index, | ||
| TTI::TargetCostKind | CostKind ) const |
Definition at line 5755 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::CmpInst::BAD_ICMP_PREDICATE, CostKind, llvm::CostTableLookup(), getCastInstrCost(), getCmpSelInstrCost(), llvm::Type::getContext(), llvm::VectorType::getElementCount(), llvm::InstructionCost::getInvalid(), llvm::ElementCount::getScalable(), llvm::EVT::getSimpleVT(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::TargetTransformInfo::None, and llvm::TargetTransformInfo::SK_Splice.
Referenced by getShuffleCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 523 of file AArch64TargetTransformInfo.h.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::getStoreMinimumVF(), llvm::Type::isIntegerTy(), and llvm::isPowerOf2_32().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5418 of file AArch64TargetTransformInfo.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::getArgOperand(), and llvm::IntrinsicInst::getIntrinsicID().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5292 of file AArch64TargetTransformInfo.cpp.
References Aarch64ForceUnrollThreshold, llvm::cast(), llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, EnableFalkorHWPFUnrollFix, F, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::AArch64Subtarget::Generic, getAppleRuntimeUnrollPreferences(), llvm::getBooleanLoopAttribute(), getCalledFunction(), getFalkorUnrollingPreferences(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getUnrollingPreferences(), I, llvm::isa(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::RuntimeUnrollMultiExit, llvm::TargetTransformInfo::UnrollingPreferences::SCEVExpansionBudget, shouldUnrollMultiExitLoop(), llvm::TargetTransformInfo::TCK_SizeAndLatency, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJam, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJamInnerLoopThreshold, llvm::TargetTransformInfo::UnrollingPreferences::UnrollRemainder, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4156 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4134 of file AArch64TargetTransformInfo.cpp.
References CostKind, and llvm::isa().
Referenced by getArithmeticInstrCost(), and getExtractWithExtendCost().
|
overridevirtual |
| 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. |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4148 of file AArch64TargetTransformInfo.cpp.
References CostKind.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 161 of file AArch64TargetTransformInfo.h.
| bool AArch64TTIImpl::hasKnownLowerThroughputFromSchedulingModel | ( | unsigned | Opcode1, |
| unsigned | Opcode2 ) const |
Check whether Opcode1 has less throughput according to the scheduling model than Opcode2.
Definition at line 4577 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::MCSchedModel::getReciprocalThroughput(), llvm::MCSchedClassDesc::isValid(), llvm::MCSchedClassDesc::isVariant(), and TII.
Referenced by getCmpSelInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 2871 of file AArch64TargetTransformInfo.cpp.
References constructSVEIntrinsicInfo(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, I, II, instCombineConvertFromSVBool(), instCombineDMB(), instCombineInStreamingMode(), instCombineLD1GatherIndex(), instCombineMaxMinNM(), instCombinePTrue(), instCombineRDFFR(), instCombineSMECntsd(), instCombineST1ScatterIndex(), instCombineSVECmpNE(), instCombineSVECntElts(), instCombineSVECondLast(), instCombineSVEDup(), instCombineSVEDupqLane(), instCombineSVEDupX(), instCombineSVEInsr(), instCombineSVELast(), instCombineSVELD1(), instCombineSVEPTest(), instCombineSVESDIV(), instCombineSVESel(), instCombineSVESrshl(), instCombineSVEST1(), instCombineSVETBL(), instCombineSVEUnpack(), instCombineSVEUxt(), instCombineSVEUzp1(), instCombineSVEVectorAdd(), instCombineSVEVectorBinOp(), instCombineSVEVectorFAdd(), instCombineSVEVectorFAddU(), instCombineSVEVectorFSub(), instCombineSVEVectorFSubU(), instCombineSVEVectorFuseMulAddSub(), instCombineSVEVectorSub(), instCombineSVEZip(), instCombineWhilelo(), and simplifySVEIntrinsic().
Definition at line 337 of file AArch64TargetTransformInfo.h.
Referenced by isLegalMaskedCompressStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 296 of file AArch64TargetTransformInfo.h.
Referenced by getGatherScatterOpCost(), isLegalMaskedGatherScatter(), isLegalMaskedLoadStore(), and isLegalToVectorizeReduction().
| bool AArch64TTIImpl::isExtPartOfAvgExpr | ( | const Instruction * | ExtUser, |
| Type * | Dst, | ||
| Type * | Src ) const |
Definition at line 3187 of file AArch64TargetTransformInfo.cpp.
References llvm::Add, llvm::cast(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast_or_null(), llvm::Instruction::getOpcode(), llvm::Value::hasOneUse(), llvm::PatternMatch::m_c_Add(), llvm::PatternMatch::m_Instruction(), llvm::PatternMatch::m_SpecificInt(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZExtOrSExt(), and llvm::PatternMatch::match().
Referenced by getCastInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 375 of file AArch64TargetTransformInfo.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getScalarSizeInBits(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable().
Referenced by getShuffleCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 342 of file AArch64TargetTransformInfo.h.
References llvm::isa(), and isElementTypeLegalForCompressStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 367 of file AArch64TargetTransformInfo.h.
References isLegalMaskedGatherScatter().
Definition at line 354 of file AArch64TargetTransformInfo.h.
References llvm::dyn_cast(), and isElementTypeLegalForScalableVector().
Referenced by getGatherScatterOpCost(), isLegalMaskedGather(), and isLegalMaskedScatter().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 325 of file AArch64TargetTransformInfo.h.
References isLegalMaskedLoadStore().
Definition at line 313 of file AArch64TargetTransformInfo.h.
References llvm::isa(), and isElementTypeLegalForScalableVector().
Referenced by isLegalMaskedLoad(), and isLegalMaskedStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 371 of file AArch64TargetTransformInfo.h.
References isLegalMaskedGatherScatter().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 331 of file AArch64TargetTransformInfo.h.
References isLegalMaskedLoadStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 414 of file AArch64TargetTransformInfo.h.
References llvm::TargetTransformInfoImplBase::isLegalNTLoad(), and isLegalNTStoreLoad().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 410 of file AArch64TargetTransformInfo.h.
References isLegalNTStoreLoad().
Definition at line 393 of file AArch64TargetTransformInfo.h.
References llvm::dyn_cast(), llvm::TargetTransformInfoImplBase::isLegalNTStore(), and llvm::isPowerOf2_64().
Referenced by isLegalNTLoad(), and isLegalNTStore().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5490 of file AArch64TargetTransformInfo.cpp.
References llvm::Add, llvm::AddChainWithSubs, llvm::And, llvm::AnyOf, llvm::FAdd, llvm::FMax, llvm::FMin, llvm::FMulAdd, llvm::RecurrenceDescriptor::getRecurrenceKind(), llvm::RecurrenceDescriptor::getRecurrenceType(), isElementTypeLegalForScalableVector(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::Or, llvm::SMax, llvm::SMin, llvm::Sub, llvm::UMax, llvm::UMin, and llvm::Xor.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6392 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetTransformInfo::LSRCost::AddRecCost, EnableLSRCostOpt, llvm::TargetTransformInfo::LSRCost::ImmCost, llvm::TargetTransformInfo::LSRCost::Insns, llvm::TargetTransformInfoImplBase::isLSRCostLess(), llvm::TargetTransformInfo::LSRCost::NumBaseAdds, llvm::TargetTransformInfo::LSRCost::NumIVMuls, llvm::TargetTransformInfo::LSRCost::NumRegs, llvm::TargetTransformInfo::LSRCost::ScaleCost, and llvm::TargetTransformInfo::LSRCost::SetupCost.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 264 of file AArch64TargetTransformInfo.cpp.
References F.
Referenced by getFeatureMask().
|
overridevirtual |
Check if sinking I's operands to I's basic block is profitable, because the operands can be folded into a target instruction, e.g.
shufflevectors extracts and/or sext/zext can be folded into (u,s)subl(2).
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6557 of file AArch64TargetTransformInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::any_of(), areExtractExts(), areExtractShuffleVectors(), areOperandsOfVmullHighP64(), llvm::cast(), Cond, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), getCondition(), llvm::APInt::getHighBitsSet(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::User::getOperandUse(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, II, llvm::isa(), isSplatShuffle(), llvm::ConstantInt::isZero(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_c_And(), llvm::PatternMatch::m_c_Or(), llvm::PatternMatch::m_Instruction(), llvm::PatternMatch::m_Load(), llvm::MIPatternMatch::m_Not(), llvm::MIPatternMatch::m_OneUse(), llvm::PatternMatch::m_SExt(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZExtOrSExt(), llvm::MaskedValueIsZero(), llvm::PatternMatch::match(), shouldSinkVectorOfPtrs(), and shouldSinkVScale().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 165 of file AArch64TargetTransformInfo.h.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6292 of file AArch64TargetTransformInfo.cpp.
References SVEPreferFixedOverScalableIfEqualCost.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 473 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6308 of file AArch64TargetTransformInfo.cpp.
References llvm::LoopBase< BlockT, LoopT >::blocks(), containsDecreasingPointers(), llvm::Disabled, llvm::LoopVectorizationLegality::getDominatorTree(), llvm::LoopVectorizationLegality::getFixedOrderRecurrences(), llvm::LoopVectorizationLegality::getLoop(), llvm::LoopVectorizationLegality::getPredicatedScalarEvolution(), llvm::LoopVectorizationLegality::getReductionVars(), llvm::InterleavedAccessInfo::hasGroups(), llvm::TailFoldingInfo::IAI, llvm::TailFoldingInfo::LVL, llvm::Recurrences, llvm::Reductions, llvm::Required, llvm::Reverse, llvm::Simple, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::size(), llvm::SmallPtrSetImplBase::size(), SVETailFoldInsnThreshold, and TailFoldingOptionLoc.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4755 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
See if I should be considered for address type promotion.
We check if I is a sext with right type and used in memory accesses. If it used in a "complex" getelementptr, we allow it to be promoted without finding other sext instructions that sign extended the same initial value. A getelementptr is considered as "complex" if it has more than 2 operands.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5463 of file AArch64TargetTransformInfo.cpp.
References llvm::dyn_cast(), llvm::Type::getInt64Ty(), I, and llvm::isa().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 438 of file AArch64TargetTransformInfo.h.
References II.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 375 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6373 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), EnableOrLikeSelectOpt, I, llvm::isa(), and llvm::TargetTransformInfoImplBase::shouldTreatInstructionLikeSelect().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 2986 of file AArch64TargetTransformInfo.cpp.
References II.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 464 of file AArch64TargetTransformInfo.h.
Definition at line 4863 of file AArch64TargetTransformInfo.cpp.
References llvm::isa().
Referenced by getGatherScatterOpCost(), getMaskedMemoryOpCost(), and getMemoryOpCost().