LLVM: llvm::X86TTIImpl Class Reference (original) (raw)
#include "[Target/X86/X86TargetTransformInfo.h](X86TargetTransformInfo%5F8h%5Fsource.html)"
Definition at line 28 of file X86TargetTransformInfo.h.
◆ areInlineCompatible()
◆ areTypesABICompatible()
◆ canMacroFuseCmp()
| bool X86TTIImpl::canMacroFuseCmp ( ) const | overridevirtual |
|---|
◆ enableInterleavedAccessVectorization()
| bool X86TTIImpl::enableInterleavedAccessVectorization ( ) const | overridevirtual |
|---|
◆ enableMemCmpExpansion()
◆ forceScalarizeMaskedGather()
◆ forceScalarizeMaskedScatter()
◆ getAddressComputationCost()
◆ getAltInstrCost()
◆ getArithmeticInstrCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 253 of file X86TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::ISD::FADD, llvm::ISD::FDIV, llvm::ISD::FMUL, llvm::ISD::FSUB, llvm::BasicTTIImplBase< X86TTIImpl >::getArithmeticInstrCost(), getArithmeticInstrCost(), getCastInstrCost(), llvm::VectorType::getExtendedElementVectorType(), llvm::TargetTransformInfo::OperandValueInfo::getNoProps(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::MVT::getVectorVT(), llvm::isa(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), llvm::TargetTransformInfo::OperandValueInfo::isNegatedPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isUniform(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), llvm::ISD::MUL, llvm::TargetTransformInfo::None, llvm::ISD::OR, llvm::X86ISD::PMULUDQ, llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SUB, llvm::TargetTransformInfo::TCK_CodeSize, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::ISD::UDIV, llvm::ISD::UREM, and llvm::ISD::XOR.
Referenced by getArithmeticInstrCost(), getArithmeticReductionCost(), getCmpSelInstrCost(), getInterleavedMemoryOpCostAVX512(), getIntrinsicInstrCost(), and getMinMaxReductionCost().
◆ getArithmeticReductionCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 5549 of file X86TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::ISD::FADD, llvm::FixedVectorType::get(), llvm::IntegerType::get(), getArithmeticInstrCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getArithmeticReductionCost(), getArithmeticReductionCost(), getCastInstrCost(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getIntNTy(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getScalarType(), getShuffleCost(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::MVT::getVectorNumElements(), llvm::isPowerOf2_32(), llvm::EVT::isSimple(), llvm::MVT::isVector(), llvm::ISD::MUL, llvm::TargetTransformInfo::None, llvm::TargetTransformInfo::OK_AnyValue, llvm::TargetTransformInfo::OK_UniformConstantValue, llvm::TargetTransformInfo::OP_None, llvm::ISD::OR, llvm::TargetTransformInfo::requiresOrderedReduction(), Size, llvm::TargetTransformInfo::SK_ExtractSubvector, and llvm::TargetTransformInfo::SK_PermuteSingleSrc.
Referenced by getArithmeticReductionCost().
◆ getAtomicMemIntrinsicMaxElementSize()
| unsigned X86TTIImpl::getAtomicMemIntrinsicMaxElementSize ( ) const | overridevirtual |
|---|
◆ getBranchMispredictPenalty()
| InstructionCost X86TTIImpl::getBranchMispredictPenalty ( ) const | overridevirtual |
|---|
◆ getCacheAssociativity()
◆ getCacheSize()
◆ getCastInstrCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 2307 of file X86TargetTransformInfo.cpp.
References assert(), llvm::ConvertCostTableLookup(), CostKind, llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::BasicTTIImplBase< X86TTIImpl >::getCastInstrCost(), getCastInstrCost(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::Type::getWithNewBitWidth(), I, InstructionCost, llvm::isa(), llvm::EVT::isSimple(), N, llvm::TargetTransformInfo::None, llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::TargetTransformInfo::TCC_Free, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::ISD::TRUNCATE, llvm::ISD::UINT_TO_FP, and llvm::ISD::ZERO_EXTEND.
Referenced by getArithmeticInstrCost(), getArithmeticReductionCost(), getCastInstrCost(), getIntrinsicInstrCost(), and getReplicationShuffleCost().
◆ getCFInstrCost()
◆ getCmpSelInstrCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 3333 of file X86TargetTransformInfo.cpp.
References assert(), llvm::CmpInst::BAD_FCMP_PREDICATE, llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::dyn_cast_or_null(), llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UNO, getArithmeticInstrCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getCmpSelInstrCost(), getCmpSelInstrCost(), llvm::MVT::getScalarSizeInBits(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), I, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::MVT::is128BitVector(), llvm::isa(), llvm::MVT::isVector(), llvm::ISD::SELECT, llvm::ISD::SETCC, and llvm::TargetTransformInfo::TCK_Latency.
Referenced by getCmpSelInstrCost(), getIntrinsicInstrCost(), and getMaskedMemoryOpCost().
◆ getGatherScatterOpCost()
Calculate the cost of Gather / Scatter operation.
Definition at line 6276 of file X86TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::dyn_cast(), forceScalarizeMaskedGather(), forceScalarizeMaskedScatter(), llvm::PointerType::getAddressSpace(), llvm::MemIntrinsicCostAttributes::getAlignment(), llvm::MemIntrinsicCostAttributes::getDataType(), llvm::MemIntrinsicCostAttributes::getID(), llvm::BasicTTIImplBase< X86TTIImpl >::getMemIntrinsicInstrCost(), llvm::MemIntrinsicCostAttributes::getPointer(), llvm::Value::getType(), isLegalMaskedGather(), isLegalMaskedScatter(), and llvm::Type::isVectorTy().
Referenced by getMemIntrinsicInstrCost().
◆ getInterleavedMemoryOpCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 6812 of file X86TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::divideCeil(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::FixedVectorType::get(), llvm::Type::getContext(), llvm::BasicTTIImplBase< X86TTIImpl >::getInterleavedMemoryOpCost(), getInterleavedMemoryOpCostAVX512(), llvm::Type::getIntNTy(), getMemoryOpCost(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::Type::isBFloatTy(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), llvm::EVT::isSimple(), llvm::MVT::isVector(), and llvm::ArrayRef< T >::size().
◆ getInterleavedMemoryOpCostAVX512()
Definition at line 6654 of file X86TargetTransformInfo.cpp.
References assert(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::FixedVectorType::get(), llvm::APInt::getAllOnes(), getArithmeticInstrCost(), llvm::Type::getContext(), llvm::VectorType::getElementType(), llvm::Type::getInt1Ty(), getMaskedMemoryOpCost(), getMemoryOpCost(), llvm::FixedVectorType::getNumElements(), getReplicationShuffleCost(), llvm::Type::getScalarType(), getShuffleCost(), llvm::MVT::getStoreSize(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::MVT::getVectorNumElements(), llvm::MVT::getVectorVT(), llvm::APInt::getZero(), llvm::APInt::setBit(), llvm::ArrayRef< T >::size(), llvm::TargetTransformInfo::SK_PermuteSingleSrc, and llvm::TargetTransformInfo::SK_PermuteTwoSrc.
Referenced by getInterleavedMemoryOpCost().
◆ getIntImmCost() [1/2]
◆ getIntImmCost() [2/2]
◆ getIntImmCostInst()
◆ getIntImmCostIntrin()
◆ getIntrinsicInstrCost()
Get intrinsic cost based on arguments.
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 3635 of file X86TargetTransformInfo.cpp.
References llvm::ISD::ABS, llvm::ISD::BITREVERSE, llvm::ISD::BSWAP, CostKind, llvm::CostTableLookup(), llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, llvm::ISD::DELETED_NODE, llvm::dyn_cast(), llvm::ISD::FSHL, llvm::IntrinsicCostAttributes::getArgs(), llvm::IntrinsicCostAttributes::getArgTypes(), getArithmeticInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), llvm::Type::getContainedType(), llvm::IntrinsicCostAttributes::getFlags(), llvm::IntrinsicCostAttributes::getID(), llvm::IntrinsicCostAttributes::getInst(), llvm::BasicTTIImplBase< X86TTIImpl >::getIntrinsicInstrCost(), llvm::IntrinsicCostAttributes::getReturnType(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::Type::getWithNewBitWidth(), llvm::CmpInst::ICMP_EQ, II, llvm::isa(), llvm::MVT::isScalarInteger(), llvm::IntrinsicCostAttributes::isTypeBasedOnly(), llvm::MVT::isVector(), llvm::PatternMatch::m_APIntAllowPoison(), llvm::PatternMatch::match(), llvm::TargetTransformInfo::None, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SADDSAT, llvm::ISD::SMAX, llvm::ISD::SMIN, llvm::ISD::SMULO, llvm::ISD::SSUBSAT, llvm::TargetTransformInfo::TCC_Free, llvm::TargetTransformInfo::TCK_CodeSize, llvm::ISD::UADDO, llvm::ISD::UADDSAT, llvm::ISD::UMAX, llvm::ISD::UMIN, llvm::ISD::UMULO, llvm::ISD::USUBSAT, and llvm::X86ISD::VROTLI.
Referenced by getMinMaxCost().
◆ getLoadStoreVecRegBitWidth()
| unsigned X86TTIImpl::getLoadStoreVecRegBitWidth ( unsigned AS) const | overridevirtual |
|---|
◆ getMaskedMemoryOpCost()
Definition at line 5428 of file X86TargetTransformInfo.cpp.
References llvm::CmpInst::BAD_ICMP_PREDICATE, CostKind, llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::dyn_cast(), llvm::FixedVectorType::get(), llvm::MemIntrinsicCostAttributes::getAddressSpace(), llvm::MemIntrinsicCostAttributes::getAlignment(), llvm::APInt::getAllOnes(), getCFInstrCost(), getCmpSelInstrCost(), llvm::MemIntrinsicCostAttributes::getDataType(), llvm::MemIntrinsicCostAttributes::getID(), llvm::Type::getInt8Ty(), llvm::BasicTTIImplBase< X86TTIImpl >::getMemoryOpCost(), getMemoryOpCost(), getScalarizationOverhead(), getShuffleCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), isLegalMaskedLoad(), isLegalMaskedStore(), llvm::TargetTransformInfo::SK_InsertSubvector, and llvm::TargetTransformInfo::SK_PermuteTwoSrc.
Referenced by getInterleavedMemoryOpCostAVX512(), and getMemIntrinsicInstrCost().
◆ getMaxInterleaveFactor()
◆ getMaxMemIntrinsicInlineSizeThreshold()
| uint64_t llvm::X86TTIImpl::getMaxMemIntrinsicInlineSizeThreshold ( ) const | inlineoverridevirtual |
|---|
◆ getMemIntrinsicInstrCost()
◆ getMemoryOpCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 5243 of file X86TargetTransformInfo.cpp.
References llvm::all_of(), assert(), llvm::commonAlignment(), CostKind, llvm::divideCeil(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::dyn_cast(), llvm::dyn_cast_or_null(), GEP, llvm::FixedVectorType::get(), llvm::IntegerType::get(), llvm::APInt::getBitsSet(), llvm::BasicTTIImplBase< X86TTIImpl >::getMemoryOpCost(), getMemoryOpCost(), getScalarizationOverhead(), getShuffleCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), I, llvm::APInt::popcount(), llvm::TargetTransformInfo::SK_ExtractSubvector, llvm::TargetTransformInfo::SK_InsertSubvector, llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Referenced by getInterleavedMemoryOpCost(), getInterleavedMemoryOpCostAVX512(), getMaskedMemoryOpCost(), getMemoryOpCost(), and getVectorInstrCost().
◆ getMinMaxCost()
◆ getMinMaxReductionCost()
Try to calculate op costs for min/max reduction operations.
Parameters
| CondTy | Conditional type for the Select instruction. |
|---|
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 5806 of file X86TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::FixedVectorType::get(), getArithmeticInstrCost(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getIntNTy(), getMinMaxCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getMinMaxReductionCost(), llvm::MVT::getScalarSizeInBits(), getShuffleCost(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::MVT::getVectorNumElements(), llvm::isPowerOf2_32(), llvm::EVT::isSimple(), llvm::MVT::isVector(), llvm::TargetTransformInfo::OK_AnyValue, llvm::TargetTransformInfo::OK_UniformConstantValue, llvm::TargetTransformInfo::OP_None, Size, llvm::TargetTransformInfo::SK_ExtractSubvector, llvm::TargetTransformInfo::SK_PermuteSingleSrc, llvm::ISD::SMIN, llvm::TargetTransformInfo::TCK_RecipThroughput, and llvm::ISD::UMIN.
◆ getNumberOfRegisters()
| unsigned X86TTIImpl::getNumberOfRegisters ( unsigned ClassID) const | overridevirtual |
|---|
◆ getPointersChainCost()
◆ getPopcntSupport()
◆ getRegisterBitWidth()
◆ getRegisterClassForType()
◆ getReplicationShuffleCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 5137 of file X86TargetTransformInfo.cpp.
References assert(), CostKind, llvm::divideCeil(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::FixedVectorType::get(), getCastInstrCost(), llvm::Type::getContext(), llvm::Type::getIntNTy(), llvm::BasicTTIImplBase< X86TTIImpl >::getReplicationShuffleCost(), getReplicationShuffleCost(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getScalarType(), getShuffleCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::MVT::getVectorNumElements(), llvm::MVT::isVector(), llvm::TargetTransformInfo::None, llvm::APInt::popcount(), llvm::APIntOps::ScaleBitMask(), llvm::TargetTransformInfo::SK_PermuteSingleSrc, and llvm::APInt::zext().
Referenced by getInterleavedMemoryOpCostAVX512(), and getReplicationShuffleCost().
◆ getScalarizationOverhead()
Estimate the overhead of scalarizing an instruction.
Insert and Extract are set if the demanded result elements need to be inserted and/or extracted from vectors.
FIXME: a bitfield is not a reasonable abstraction for talking about which elements are needed from a scalable vector
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 4955 of file X86TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::ArrayRef< T >::empty(), llvm::APInt::extractBits(), llvm::FixedVectorType::get(), llvm::APInt::getBitWidth(), llvm::Constant::getNullValue(), getNumElements(), llvm::BasicTTIImplBase< X86TTIImpl >::getScalarizationOverhead(), getShuffleCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), I, llvm::APInt::isAllOnes(), llvm::MVT::isInteger(), llvm::APInt::isZero(), llvm::APInt::popcount(), llvm::PowerOf2Ceil(), llvm::APIntOps::ScaleBitMask(), llvm::seq(), llvm::TargetTransformInfo::SK_ExtractSubvector, llvm::TargetTransformInfo::SK_InsertSubvector, and llvm::APInt::zext().
Referenced by getMaskedMemoryOpCost(), and getMemoryOpCost().
◆ getScalingFactorCost()
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::BasicTTIImplBase< X86TTIImpl >.
Definition at line 7127 of file X86TargetTransformInfo.cpp.
References llvm::TargetLoweringBase::AddrMode::BaseGV, llvm::TargetLoweringBase::AddrMode::BaseOffs, llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::StackOffset::getFixed(), llvm::InstructionCost::getInvalid(), llvm::StackOffset::getScalable(), llvm::TargetLoweringBase::AddrMode::HasBaseReg, llvm::BasicTTIImplBase< X86TTIImpl >::isLegalAddressingMode(), llvm::TargetLoweringBase::AddrMode::ScalableOffset, and llvm::TargetLoweringBase::AddrMode::Scale.
◆ getShuffleCost()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 1534 of file X86TargetTransformInfo.cpp.
References llvm::alignDown(), llvm::all_of(), llvm::any_of(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::cast(), llvm::copy(), CostKind, llvm::CostTableLookup(), llvm::count_if(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::ArrayRef< T >::empty(), llvm::enumerate(), llvm::FixedVectorType::get(), llvm::VectorType::getDoubleElementsVectorType(), llvm::VectorType::getElementCount(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarType(), llvm::BasicTTIImplBase< X86TTIImpl >::getShuffleCost(), getShuffleCost(), llvm::EVT::getSimpleVT(), llvm::EVT::getSizeInBits(), llvm::MVT::getSizeInBits(), llvm::MVT::getStoreSize(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::InstructionCost::getValue(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), I, llvm::BasicTTIImplBase< X86TTIImpl >::improveShuffleKindFromMask(), llvm::isa(), llvm::ShuffleVectorInst::isIdentityMask(), isLegalBroadcastLoad(), llvm::Type::isScalableTy(), llvm::EVT::isSimple(), llvm::InstructionCost::isValid(), llvm::EVT::isVector(), llvm::MVT::isVector(), llvm::PatternMatch::m_Load(), llvm::MIPatternMatch::m_OneUse(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), P, llvm::PoisonMaskElem, llvm::processShuffleMasks(), 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::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Free, X, and Y.
Referenced by getArithmeticReductionCost(), getInterleavedMemoryOpCostAVX512(), getMaskedMemoryOpCost(), getMemoryOpCost(), getMinMaxReductionCost(), getReplicationShuffleCost(), getScalarizationOverhead(), getShuffleCost(), and getVectorInstrCost().
◆ getStoreMinimumVF()
◆ getVectorInstrCost() [1/3]
◆ getVectorInstrCost() [2/3]
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 4806 of file X86TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< X86TTIImpl >::DL, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::FixedVectorType::get(), getMemoryOpCost(), llvm::Type::getScalarSizeInBits(), llvm::EVT::getScalarType(), llvm::Type::getScalarType(), getShuffleCost(), llvm::EVT::getSizeInBits(), llvm::Value::getType(), llvm::BasicTTIImplBase< X86TTIImpl >::getTypeLegalizationCost(), llvm::BasicTTIImplBase< X86TTIImpl >::getVectorInstrCost(), llvm::isa(), llvm::isa_and_nonnull(), llvm::Type::isFloatingPointTy(), llvm::MVT::isInteger(), llvm::Type::isIntegerTy(), llvm::Type::isVectorTy(), llvm::TargetTransformInfo::SK_PermuteTwoSrc, and llvm::TargetTransformInfo::TCC_Free.
Referenced by getArithmeticReductionCost(), getMinMaxReductionCost(), and getScalarizationOverhead().
◆ getVectorInstrCost() [3/3]
◆ hasConditionalLoadStoreForType()
| bool X86TTIImpl::hasConditionalLoadStoreForType ( Type * Ty, bool IsStore ) const | overridevirtual |
|---|
◆ hasDivRemOp()
| bool X86TTIImpl::hasDivRemOp ( Type * DataType, bool IsSigned ) const | overridevirtual |
|---|
◆ instCombineIntrinsic()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 2154 of file X86InstCombineIntrinsic.cpp.
References llvm::any_of(), assert(), llvm::BitWidth, llvm::InstCombiner::Builder, llvm::CallingConv::C, llvm::cast(), llvm::SelectInst::Create(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateFAdd(), llvm::IRBuilderBase::CreateFDiv(), llvm::IRBuilderBase::CreateFMul(), llvm::IRBuilderBase::CreateFSub(), llvm::IRBuilderBase::CreateInsertElement(), llvm::IRBuilderBase::CreateLShr(), llvm::IRBuilderBase::CreateSelect(), llvm::IRBuilderBase::CreateShl(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::ConstantAggregateZero::get(), llvm::FixedVectorType::get(), llvm::InstCombiner::getDataLayout(), llvm::IRBuilderBase::getInt1Ty(), llvm::APInt::getLowBitsSet(), getNegativeIsTrueBoolVec(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::APInt::getSplat(), llvm::Value::getType(), I, II, llvm::isa(), llvm::isPowerOf2_32(), llvm::APInt::isSubsetOf(), llvm::Type::isVectorTy(), llvm::Length, llvm_unreachable, llvm::APInt::lshr(), llvm::MIPatternMatch::m_OneUse(), llvm::PatternMatch::m_SExt(), llvm::PatternMatch::m_Shuffle(), llvm::PatternMatch::m_Undef(), llvm::PatternMatch::m_Value(), llvm::Masked, llvm::maskTrailingOnes(), llvm::PatternMatch::match(), llvm::InstCombiner::peekThroughBitcast(), llvm::InstCombiner::replaceInstUsesWith(), llvm::InstCombiner::replaceOperand(), llvm::scaleShuffleMaskElts(), llvm::InstCombiner::SimplifyDemandedBits(), llvm::InstCombiner::SimplifyDemandedVectorElts(), simplifyTernarylogic(), simplifyX86addcarry(), simplifyX86extrq(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86insertq(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pmadd(), simplifyX86pmulh(), simplifyX86pshufb(), simplifyX86varShift(), simplifyX86vpermilvar(), simplifyX86VPERMMask(), simplifyX86vpermv(), simplifyX86vpermv3(), and llvm::APInt::zextOrTrunc().
◆ isExpensiveToSpeculativelyExecute()
◆ isFCmpOrdCheaperThanFCmpZero()
| bool X86TTIImpl::isFCmpOrdCheaperThanFCmpZero ( Type * Ty) const | overridevirtual |
|---|
◆ isLegalAltInstr()
◆ isLegalBroadcastLoad()
◆ isLegalMaskedCompressStore()
| bool X86TTIImpl::isLegalMaskedCompressStore ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLegalMaskedExpandLoad()
| bool X86TTIImpl::isLegalMaskedExpandLoad ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLegalMaskedGather()
| bool X86TTIImpl::isLegalMaskedGather ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLegalMaskedGatherScatter()
| bool X86TTIImpl::isLegalMaskedGatherScatter | ( | Type * | DataType, |
|---|---|---|---|
| Align | Alignment ) const |
◆ isLegalMaskedLoad()
◆ isLegalMaskedScatter()
| bool X86TTIImpl::isLegalMaskedScatter ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLegalMaskedStore()
◆ isLegalNTLoad()
| bool X86TTIImpl::isLegalNTLoad ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLegalNTStore()
| bool X86TTIImpl::isLegalNTStore ( Type * DataType, Align Alignment ) const | overridevirtual |
|---|
◆ isLSRCostLess()
◆ isProfitableToSinkOperands()
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7197 of file X86TargetTransformInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::any_of(), llvm::cast(), llvm::dyn_cast(), llvm::VectorType::getElementType(), llvm::getSplatIndex(), I, II, llvm::Type::isIntegerTy(), isVectorShiftByScalarCheap(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_AShr(), llvm::PatternMatch::m_Shl(), llvm::PatternMatch::m_SpecificInt(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
◆ isVectorShiftByScalarCheap()
| bool X86TTIImpl::isVectorShiftByScalarCheap ( Type * Ty) const | overridevirtual |
|---|
◆ preferAlternateOpcodeVectorization()
| bool llvm::X86TTIImpl::preferAlternateOpcodeVectorization ( ) const | inlineoverridevirtual |
|---|
◆ prefersVectorizedAddressing()
| bool X86TTIImpl::prefersVectorizedAddressing ( ) const | overridevirtual |
|---|
◆ simplifyDemandedUseBitsIntrinsic()
◆ simplifyDemandedVectorEltsIntrinsic()
Reimplemented from llvm::BasicTTIImplBase< X86TTIImpl >.
Definition at line 3132 of file X86InstCombineIntrinsic.cpp.
References llvm::InstCombiner::addToWorklist(), assert(), llvm::InstCombiner::Builder, llvm::cast(), llvm::APInt::clearBit(), llvm::IRBuilderBase::CreateBinOp(), llvm::ConstantAggregateZero::get(), llvm::APInt::getLoBits(), llvm::APInt::getSplat(), II, llvm::APInt::isSubsetOf(), llvm::APInt::lshr(), llvm::APIntOps::ScaleBitMask(), llvm::APInt::setBit(), llvm::APInt::setHighBits(), llvm::IRBuilderBase::SetInsertPoint(), and llvm::APInt::zext().
◆ supportsEfficientVectorElementLoadStore()
| bool X86TTIImpl::supportsEfficientVectorElementLoadStore ( ) const | overridevirtual |
|---|
◆ useFastCCForInternalCall()
| bool X86TTIImpl::useFastCCForInternalCall ( Function & F) const | overridevirtual |
|---|
The documentation for this class was generated from the following files:
- lib/Target/X86/X86TargetTransformInfo.h
- lib/Target/X86/X86InstCombineIntrinsic.cpp
- lib/Target/X86/X86TargetTransformInfo.cpp