LLVM  8.0.1
Classes | Public Member Functions | Static Public Member Functions | List of all members
llvm::EVT Struct Reference

Extended Value Type. More...

#include "llvm/CodeGen/ValueTypes.h"

Classes

struct  compareRawBits
 A meaningless but well-behaved order, useful for constructing containers. More...
 

Public Member Functions

constexpr EVT ()=default
 
constexpr EVT (MVT::SimpleValueType SVT)
 
constexpr EVT (MVT S)
 
bool operator== (EVT VT) const
 
bool operator!= (EVT VT) const
 
EVT changeVectorElementTypeToInteger () const
 Return a vector with the same number of elements as this vector, but with the element type converted to an integer type with the same bitwidth. More...
 
EVT changeTypeToInteger ()
 Return the type converted to an equivalently sized integer or vector with integer element type. More...
 
bool isSimple () const
 Test if the given EVT is simple (as opposed to being extended). More...
 
bool isExtended () const
 Test if the given EVT is extended (as opposed to being simple). More...
 
bool isFloatingPoint () const
 Return true if this is a FP or a vector FP type. More...
 
bool isInteger () const
 Return true if this is an integer or a vector integer type. More...
 
bool isScalarInteger () const
 Return true if this is an integer, but not a vector. More...
 
bool isVector () const
 Return true if this is a vector value type. More...
 
bool isScalableVector () const
 Return true if this is a vector type where the runtime length is machine dependent. More...
 
bool is16BitVector () const
 Return true if this is a 16-bit vector type. More...
 
bool is32BitVector () const
 Return true if this is a 32-bit vector type. More...
 
bool is64BitVector () const
 Return true if this is a 64-bit vector type. More...
 
bool is128BitVector () const
 Return true if this is a 128-bit vector type. More...
 
bool is256BitVector () const
 Return true if this is a 256-bit vector type. More...
 
bool is512BitVector () const
 Return true if this is a 512-bit vector type. More...
 
bool is1024BitVector () const
 Return true if this is a 1024-bit vector type. More...
 
bool is2048BitVector () const
 Return true if this is a 2048-bit vector type. More...
 
bool isOverloaded () const
 Return true if this is an overloaded type for TableGen. More...
 
bool isByteSized () const
 Return true if the bit size is a multiple of 8. More...
 
bool isRound () const
 Return true if the size is a power-of-two number of bytes. More...
 
bool bitsEq (EVT VT) const
 Return true if this has the same number of bits as VT. More...
 
bool bitsGT (EVT VT) const
 Return true if this has more bits than VT. More...
 
bool bitsGE (EVT VT) const
 Return true if this has no less bits than VT. More...
 
bool bitsLT (EVT VT) const
 Return true if this has less bits than VT. More...
 
bool bitsLE (EVT VT) const
 Return true if this has no more bits than VT. More...
 
MVT getSimpleVT () const
 Return the SimpleValueType held in the specified simple EVT. More...
 
EVT getScalarType () const
 If this is a vector type, return the element type, otherwise return this. More...
 
EVT getVectorElementType () const
 Given a vector type, return the type of each element. More...
 
unsigned getVectorNumElements () const
 Given a vector type, return the number of elements it contains. More...
 
MVT::ElementCount getVectorElementCount () const
 
unsigned getSizeInBits () const
 Return the size of the specified value type in bits. More...
 
unsigned getScalarSizeInBits () const
 
unsigned getStoreSize () const
 Return the number of bytes overwritten by a store of the specified value type. More...
 
unsigned getStoreSizeInBits () const
 Return the number of bits overwritten by a store of the specified value type. More...
 
EVT getRoundIntegerType (LLVMContext &Context) const
 Rounds the bit-width of the given integer EVT up to the nearest power of two (and at least to eight), and returns the integer EVT with that number of bits. More...
 
EVT getHalfSizedIntegerVT (LLVMContext &Context) const
 Finds the smallest simple value type that is greater than or equal to half the width of this EVT. More...
 
EVT widenIntegerVectorElementType (LLVMContext &Context) const
 Return a VT for an integer vector type with the size of the elements doubled. More...
 
EVT getHalfNumVectorElementsVT (LLVMContext &Context) const
 
bool isPow2VectorType () const
 Returns true if the given vector is a power of 2. More...
 
EVT getPow2VectorType (LLVMContext &Context) const
 Widens the length of the given vector EVT up to the nearest power of 2 and returns that type. More...
 
std::string getEVTString () const
 This function returns value type as a string, e.g. "i32". More...
 
TypegetTypeForEVT (LLVMContext &Context) const
 This method returns an LLVM type corresponding to the specified EVT. More...
 
intptr_t getRawBits () const
 

Static Public Member Functions

static EVT getFloatingPointVT (unsigned BitWidth)
 Returns the EVT that represents a floating-point type with the given number of bits. More...
 
static EVT getIntegerVT (LLVMContext &Context, unsigned BitWidth)
 Returns the EVT that represents an integer with the given number of bits. More...
 
static EVT getVectorVT (LLVMContext &Context, EVT VT, unsigned NumElements, bool IsScalable=false)
 Returns the EVT that represents a vector NumElements in length, where each element is of type VT. More...
 
static EVT getVectorVT (LLVMContext &Context, EVT VT, MVT::ElementCount EC)
 Returns the EVT that represents a vector EC.Min elements in length, where each element is of type VT. More...
 
static EVT getEVT (Type *Ty, bool HandleUnknown=false)
 Return the value type corresponding to the specified type. More...
 

Detailed Description

Extended Value Type.

Capable of holding value types which are not native for any processor (such as the i12345 type), as well as the types an MVT can represent.

Definition at line 34 of file ValueTypes.h.

Constructor & Destructor Documentation

◆ EVT() [1/3]

constexpr llvm::EVT::EVT ( )
default

◆ EVT() [2/3]

constexpr llvm::EVT::EVT ( MVT::SimpleValueType  SVT)
inline

Definition at line 41 of file ValueTypes.h.

◆ EVT() [3/3]

constexpr llvm::EVT::EVT ( MVT  S)
inline

Definition at line 42 of file ValueTypes.h.

Member Function Documentation

◆ bitsEq()

bool llvm::EVT::bitsEq ( EVT  VT) const
inline

Return true if this has the same number of bits as VT.

Definition at line 223 of file ValueTypes.h.

References getSizeInBits().

Referenced by CollectOpsToWiden(), combineMinNumMaxNum(), getConstantValue(), narrowExtractedVectorLoad(), and ShrinkLoadReplaceStoreWithStore().

◆ bitsGE()

bool llvm::EVT::bitsGE ( EVT  VT) const
inline

◆ bitsGT()

bool llvm::EVT::bitsGT ( EVT  VT) const
inline

◆ bitsLE()

bool llvm::EVT::bitsLE ( EVT  VT) const
inline

◆ bitsLT()

bool llvm::EVT::bitsLT ( EVT  VT) const
inline

◆ changeTypeToInteger()

EVT llvm::EVT::changeTypeToInteger ( )
inline

Return the type converted to an equivalently sized integer or vector with integer element type.

Similar to changeVectorElementTypeToInteger, but also handles scalars.

Definition at line 115 of file ValueTypes.h.

References changeVectorElementTypeToInteger(), llvm::MVT::getIntegerVT(), getSizeInBits(), isSimple(), and isVector().

Referenced by adjustLoadValueTypeImpl(), getLoadExtOrTrunc(), isClampZeroToOne(), llvm::SITargetLowering::isTypeDesirableForOp(), and llvm::AMDGPUTargetLowering::performTruncateCombine().

◆ changeVectorElementTypeToInteger()

EVT llvm::EVT::changeVectorElementTypeToInteger ( ) const
inline

◆ getEVT()

EVT EVT::getEVT ( Type Ty,
bool  HandleUnknown = false 
)
static

◆ getEVTString()

std::string EVT::getEVTString ( ) const

This function returns value type as a string, e.g. "i32".

getEVTString - This function returns value type as a string, e.g. "i32".

Definition at line 115 of file ValueTypes.cpp.

References llvm::MVT::ExceptRef, llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::f80, getEVTString(), getSizeInBits(), getVectorElementType(), getVectorNumElements(), llvm::MVT::Glue, llvm::MVT::i1, llvm::MVT::i128, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, isInteger(), isVector(), llvm::MVT::isVoid, llvm_unreachable, llvm::MVT::Metadata, llvm::MVT::Other, llvm::MVT::ppcf128, llvm::MVT::SimpleTy, llvm::MVT::Untyped, llvm::utostr(), llvm::MVT::v1024i1, llvm::MVT::v128i1, llvm::MVT::v128i16, llvm::MVT::v128i8, llvm::MVT::v16f32, llvm::MVT::v16i1, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i64, llvm::MVT::v16i8, llvm::MVT::v1f32, llvm::MVT::v1f64, llvm::MVT::v1i1, llvm::MVT::v1i128, llvm::MVT::v1i16, llvm::MVT::v1i32, llvm::MVT::v1i64, llvm::MVT::v1i8, llvm::MVT::v256i8, llvm::MVT::v2f16, llvm::MVT::v2f32, llvm::MVT::v2f64, llvm::MVT::v2i1, llvm::MVT::v2i16, llvm::MVT::v2i32, llvm::MVT::v2i64, llvm::MVT::v2i8, llvm::MVT::v32i1, llvm::MVT::v32i16, llvm::MVT::v32i32, llvm::MVT::v32i64, llvm::MVT::v32i8, llvm::MVT::v4f16, llvm::MVT::v4f32, llvm::MVT::v4f64, llvm::MVT::v4i1, llvm::MVT::v4i16, llvm::MVT::v4i32, llvm::MVT::v4i64, llvm::MVT::v4i8, llvm::MVT::v512i1, llvm::MVT::v64i1, llvm::MVT::v64i16, llvm::MVT::v64i32, llvm::MVT::v64i8, llvm::MVT::v8f16, llvm::MVT::v8f32, llvm::MVT::v8f64, llvm::MVT::v8i1, llvm::MVT::v8i16, llvm::MVT::v8i32, llvm::MVT::v8i64, llvm::MVT::v8i8, and llvm::MVT::x86mmx.

Referenced by llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeReturn(), AnalyzeReturnValues(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), getEVTString(), getPow2VectorType(), llvm::CCState::getRemainingRegParmsForType(), llvm::AArch64TargetLowering::isFPImmLegal(), llvm::HexagonTargetLowering::LowerBITCAST(), LowerCallResult(), llvm::BPFTargetLowering::LowerOperation(), PrepareCall(), and llvm::SDNode::print_types().

◆ getFloatingPointVT()

static EVT llvm::EVT::getFloatingPointVT ( unsigned  BitWidth)
inlinestatic

Returns the EVT that represents a floating-point type with the given number of bits.

There are two floating-point types with 128 bits - this returns f128 rather than ppcf128.

Definition at line 58 of file ValueTypes.h.

References llvm::MVT::getFloatingPointVT().

Referenced by combineConcatVectorOfScalars(), IsSingleInstrConstant(), lowerFP_TO_SINT_STORE(), llvm::MipsTargetLowering::lowerSTORE(), and LowerVECTOR_SHUFFLE().

◆ getHalfNumVectorElementsVT()

EVT llvm::EVT::getHalfNumVectorElementsVT ( LLVMContext Context) const
inline

◆ getHalfSizedIntegerVT()

EVT llvm::EVT::getHalfSizedIntegerVT ( LLVMContext Context) const
inline

Finds the smallest simple value type that is greater than or equal to half the width of this EVT.

If no simple value type can be found, an extended integer value type of half the size (rounded up) is returned.

Definition at line 328 of file ValueTypes.h.

References assert(), EVT(), llvm::MVT::FIRST_INTEGER_VALUETYPE, getIntegerVT(), getSizeInBits(), isInteger(), isVector(), and llvm::MVT::LAST_INTEGER_VALUETYPE.

Referenced by llvm::TargetLowering::expandUnalignedStore(), llvm::AMDGPUTargetLowering::LowerSDIVREM(), and llvm::AMDGPUTargetLowering::LowerUDIVREM64().

◆ getIntegerVT()

static EVT llvm::EVT::getIntegerVT ( LLVMContext Context,
unsigned  BitWidth 
)
inlinestatic

Returns the EVT that represents an integer with the given number of bits.

Definition at line 64 of file ValueTypes.h.

References llvm::MVT::getIntegerVT(), llvm::MVT::INVALID_SIMPLE_VALUE_TYPE, and llvm::MVT::SimpleTy.

Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::allowsMisalignedMemoryAccesses(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), calculateByteProvider(), combineConcatVectorOfScalars(), combineHorizontalPredicateResult(), combineShuffleToVectorExtend(), combineSIntToFP(), combineStore(), combinevXi1ConstantToInteger(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), foldBitcastedFPLogic(), getCopyFromParts(), llvm::RegsForValue::getCopyFromRegs(), getCopyToParts(), getCopyToPartsVector(), llvm::AMDGPUTargetLowering::getEquivalentMemType(), getEVT(), getExpandedMinMaxOps(), getHalfSizedIntegerVT(), getLoadExtOrTrunc(), getMemCmpLoad(), getMemsetValue(), getPermuteMask(), GetPromotionOpcode(), getRoundIntegerType(), getUnderlyingArgReg(), llvm::MVT::getVT(), llvm::TargetLowering::IncrementMemoryAddress(), isTruncateOf(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), llvm::SITargetLowering::LowerFormalArguments(), LowerLoad(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), numVectorEltsOrZero(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorStore(), llvm::FastISel::selectFNeg(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::TargetLowering::ShrinkDemandedOp(), ShrinkLoadReplaceStoreWithStore(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), truncateVectorWithPACK(), and widenIntegerVectorElementType().

◆ getPow2VectorType()

EVT llvm::EVT::getPow2VectorType ( LLVMContext Context) const
inline

◆ getRawBits()

intptr_t llvm::EVT::getRawBits ( ) const
inline

◆ getRoundIntegerType()

EVT llvm::EVT::getRoundIntegerType ( LLVMContext Context) const
inline

Rounds the bit-width of the given integer EVT up to the nearest power of two (and at least to eight), and returns the integer EVT with that number of bits.

Definition at line 317 of file ValueTypes.h.

References assert(), EVT(), getIntegerVT(), getSizeInBits(), llvm::MVT::i8, isInteger(), isVector(), and llvm::Log2_32_Ceil().

Referenced by llvm::TargetLoweringBase::setJumpIsExpensive().

◆ getScalarSizeInBits()

unsigned llvm::EVT::getScalarSizeInBits ( ) const
inline

Definition at line 298 of file ValueTypes.h.

References getScalarType(), and getSizeInBits().

Referenced by llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), buildVector(), calculateByteProvider(), canReduceVMulWidth(), combineAnd(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineLogicBlendIntoPBLENDV(), combineMaskedLoad(), combineMaskedStore(), combineOr(), combineShuffleToVectorExtend(), combineSIntToFP(), combineStore(), combineSubToSubus(), combineTargetShuffle(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineTruncationShuffle(), combineUIntToFP(), combineVectorPack(), combineVectorShiftImm(), combineVSelectWithAllOnesOrZeros(), llvm::SelectionDAG::computeKnownBits(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), computeNumSignBitsBinOp(), llvm::SystemZTargetLowering::ComputeNumSignBitsForTargetNode(), ConvertSelectToConcatVector(), createBSWAPShuffleMask(), createVariablePermute(), detectSSatPattern(), detectUSatPattern(), EmitKORTEST(), llvm::TargetLowering::expandABS(), llvm::TargetLowering::expandMUL_LOHI(), llvm::PPCTargetLowering::expandVSXStoreForLE(), extractShiftForRotate(), foldAddSubOfSignBit(), foldBitcastedFPLogic(), foldExtendedSignBitTest(), FoldIntToFPToInt(), llvm::SelectionDAG::getAllOnesConstant(), llvm::GCNTTIImpl::getArithmeticReductionCost(), getAsCarry(), getConstantValue(), getCopyFromPartsVector(), llvm::SelectionDAG::GetDemandedBits(), getExpandedMinMaxOps(), getExtendInVec(), getFauxShuffleMask(), getMad64_32(), getMemsetValue(), llvm::GCNTTIImpl::getMinMaxReductionCost(), llvm::SelectionDAG::getNode(), getShiftAmountTyForConstant(), getTargetConstantBitsFromNode(), llvm::SystemZTargetLowering::getTargetNodeName(), llvm::TargetLowering::IncrementMemoryAddress(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::X86TargetLowering::isDesirableToCombineBuildVectorToShuffleTruncate(), isExtendedBUILD_VECTOR(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), isPerfectIncrement(), isREVMask(), isSETCCorConvertedSETCC(), llvm::ARMTargetLowering::isShuffleMaskLegal(), IsSingleInstrConstant(), isTruncateOf(), isVREVMask(), isVShiftLImm(), isVShiftRImm(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), LowerADDSUBCARRY(), LowerCTPOP(), llvm::R600TargetLowering::LowerFormalArguments(), lowerMSABitClearImm(), LowerVECTOR_SHUFFLE(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), matchRotateSub(), mayTailCallThisCC(), narrowExtractedVectorLoad(), performConcatVectorsCombine(), performDSPShiftCombine(), performExtendCombine(), performPostLD1Combine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformVDUPLANECombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), SkipExtensionForVMULL(), stripModuloOnShift(), truncateVectorWithPACK(), tryCombineToBSL(), tryFoldToZero(), tryLowerToSLI(), tryToFoldExtendOfConstant(), and useSinCos().

◆ getScalarType()

EVT llvm::EVT::getScalarType ( ) const
inline

If this is a vector type, return the element type, otherwise return this.

Definition at line 260 of file ValueTypes.h.

References getVectorElementType(), and isVector().

Referenced by llvm::AMDGPUTargetLowering::allUsesHaveSourceMods(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), asmClobbersCTR(), BuildExactSDIV(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), calculateByteProvider(), CollectOpsToWiden(), combineAnd(), combineBitcast(), combineConcatVectorOfExtracts(), combineExtSetcc(), combineFMA(), combineFneg(), combineHorizontalMinMaxResult(), combineLoad(), combineMaskedLoad(), combineMaskedStore(), combineSelect(), combineShuffleOfScalars(), combineStore(), combineToExtendBoolVectorInReg(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineTruncateWithSat(), CombineVMOVDRRCandidateWithVecOp(), ConstantAddressBlock(), createBSWAPShuffleMask(), llvm::SITargetLowering::denormalsEnabledForType(), detectPMADDUBSW(), llvm::SelectionDAG::EVTToAPFloatSemantics(), FoldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromPartsVector(), getCopyToPartsVector(), getEstimate(), getEstimateRefinementSteps(), getExpandedMinMaxOps(), getFPTernOp(), llvm::SelectionDAG::getLoad(), getLog2EVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::SITargetLowering::getNumRegistersForCallingConv(), getReciprocalOpName(), llvm::SITargetLowering::getRegisterTypeForCallingConv(), getScalarSizeInBits(), llvm::SDValue::getScalarValueSizeInBits(), getShiftAmountTyForConstant(), llvm::SelectionDAG::getTruncStore(), getVectorCompareInfo(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::SelectionDAG::getZeroExtendInReg(), llvm::SITargetLowering::hasBitPreservingFPLogic(), hasOnlySelectUsers(), llvm::SITargetLowering::isCanonicalized(), llvm::isConstOrConstSplat(), isConstOrDemandedConstSplat(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SITargetLowering::isFPExtFoldable(), llvm::AMDGPUTargetLowering::isFPImmLegal(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), isSATValidOnAVX512Subtarget(), isSETCCorConvertedSETCC(), isTruncateOf(), llvm::X86TargetLowering::isVectorLoadExtDesirable(), LowerBUILD_VECTORAsVariablePermute(), lowerMSASplatImm(), llvm::AMDGPUTargetLowering::LowerSIGN_EXTEND_INREG(), llvm::ISD::matchBinaryPredicate(), matchPMADDWD(), matchPMADDWD_2(), llvm::ISD::matchUnaryPredicate(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), PerformSTORECombine(), PromoteMaskArithmetic(), reduceBuildVecToShuffleWithZero(), ReorganizeVector(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::AMDGPUTargetLowering::shouldCombineMemoryType(), llvm::X86TargetLowering::shouldScalarizeBinop(), llvm::AMDGPUTargetLowering::ShouldShrinkFPConstant(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), tryToFoldExtendOfConstant(), and widenSubVector().

◆ getSimpleVT()

MVT llvm::EVT::getSimpleVT ( ) const
inline

Return the SimpleValueType held in the specified simple EVT.

Definition at line 253 of file ValueTypes.h.

References assert(), and isSimple().

Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), AddCombineBUILD_VECTORToVPADDL(), llvm::MipsSETargetLowering::allowsMisalignedMemoryAccesses(), llvm::HexagonTargetLowering::allowsMisalignedMemoryAccesses(), llvm::ARMTargetLowering::allowsMisalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPUTargetLowering::allUsesHaveSourceMods(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), AnalyzeReturnValues(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), CallingConvSupported(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), changeVectorElementTypeToInteger(), combineBitcastvxi1(), combineBVOfVecSExt(), combineVectorPack(), combineVectorShiftImm(), combineVectorSignBitsTruncation(), computeBytesPoppedByCalleeForSRet(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), createVariablePermute(), llvm::SITargetLowering::denormalsEnabledForType(), EnsureStackAlignment(), llvm::SelectionDAG::EVTToAPFloatSemantics(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), FindOptimalMemOpLowering(), findUser(), llvm::SelectionDAG::FoldSetCC(), foldVectorXorShiftIntoCmp(), getAL(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), getCompareCC(), getComparePred(), getContiguousRangeOfSetBits(), getDivRemArgList(), getExpandedMinMaxOps(), getExtensionTo64Bits(), GetFPLibCall(), getFPTernOp(), getImplicitScaleFactor(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX2(), llvm::TargetLoweringBase::getLoadExtAction(), getLog2EVal(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), llvm::SITargetLowering::getRegisterTypeForCallingConv(), llvm::AVRTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), llvm::SDValue::getSimpleValueType(), llvm::TargetLoweringBase::getTruncStoreAction(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::SelectionDAG::getValueType(), getVCmpInst(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::ISD::InputArg::InputArg(), is32Bit(), isAddSubOrSubAdd(), llvm::X86TargetLowering::isDesirableToCombineBuildVectorToShuffleTruncate(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::ARMTargetLowering::isFNegFree(), llvm::PPCTargetLowering::isFPImmLegal(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), isLegalT1AddressImmediate(), isLegalT2AddressImmediate(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), llvm::TargetLoweringBase::isLoadBitCastBeneficial(), isMemOPCandidate(), isMulPowOf2(), isNEONModifiedImm(), isOpcWithIntImmediate(), isPerfectIncrement(), isSExtLoad(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSupportedType(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTypeLegal(), llvm::HexagonInstrInfo::isValidAutoIncImm(), isValidIndexedLoad(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), lowerCallResult(), LowerCallResult(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::BPFTargetLowering::LowerOperation(), lowerRegToMasks(), llvm::HexagonTargetLowering::LowerStore(), mayTailCallThisCC(), NarrowVector(), numVectorEltsOrZero(), llvm::ISD::OutputArg::OutputArg(), parseTexFail(), performBitcastCombine(), performConcatVectorsCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), pickOpcodeForVT(), PrepareCall(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::HexagonDAGToDAGISel::SelectD2P(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectFNeg(), llvm::AVRDAGToDAGISel::selectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::HexagonDAGToDAGISel::SelectP2D(), llvm::HexagonDAGToDAGISel::SelectQ2V(), llvm::HvxSelector::selectRor(), llvm::HvxSelector::selectShuffle(), llvm::HexagonDAGToDAGISel::SelectTypecast(), llvm::HexagonDAGToDAGISel::SelectV2Q(), llvm::HexagonDAGToDAGISel::SelectVAlign(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::HexagonTargetLowering::shouldExpandAtomicRMWInIR(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), usePartialVectorLoads(), useSinCos(), VerifySDNode(), llvm::SelectionDAGBuilder::visitBitTestHeader(), WidenVector(), X86ChooseCmpImmediateOpcode(), X86ChooseCmpOpcode(), and XFormVExtractWithShuffleIntoLoad().

◆ getSizeInBits()

unsigned llvm::EVT::getSizeInBits ( ) const
inline

Return the size of the specified value type in bits.

Definition at line 292 of file ValueTypes.h.

References llvm::MVT::getSizeInBits(), and isSimple().

Referenced by addRequiredExtensionForVectorMULL(), AddRequiredExtensionForVMULL(), llvm::StatepointLoweringState::allocateStackSlot(), llvm::SITargetLowering::allowsMisalignedMemoryAccesses(), llvm::X86TargetLowering::allowsMisalignedMemoryAccesses(), allUsesTruncate(), llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), atomicSizeSupported(), bitsEq(), bitsGE(), bitsGT(), bitsLE(), bitsLT(), llvm::X86TargetLowering::BuildFILD(), buildVector(), llvm::R600TargetLowering::canMergeStoresTo(), llvm::SITargetLowering::canMergeStoresTo(), llvm::AArch64TargetLowering::canMergeStoresTo(), llvm::ARMTargetLowering::canMergeStoresTo(), llvm::X86TargetLowering::canMergeStoresTo(), changeTypeToInteger(), clampDynamicVectorIndex(), CollectOpsToWiden(), CombineBaseUpdate(), combineBasicSADPattern(), combineBEXTR(), combineCMP(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtractSubvector(), combineExtractWithShuffle(), combineExtSetcc(), combineHorizontalMinMaxResult(), combineHorizontalPredicateResult(), combineLoopSADPattern(), combineMaskedLoad(), combineMaskedStore(), combineShiftRightArithmetic(), combineSignExtendInReg(), combineStore(), combineToExtendBoolVectorInReg(), combineToExtendVectorInReg(), combineVectorCompareAndMaskUnaryOp(), combineVectorPack(), combineVectorSizedSetCCEquality(), combineVectorTruncationWithPACKUS(), combineVSelectWithAllOnesOrZeros(), computeBytesPoppedByCalleeForSRet(), llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), ConstantBuildVector(), ConvertSelectToConcatVector(), createBSWAPShuffleMask(), createPSADBW(), detectAVGPattern(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), determineLocInfo(), EltsFromConsecutiveLoads(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), EmitVectorComparison(), EnsureStackAlignment(), llvm::TargetLowering::expandMUL_LOHI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), extractSubVector(), findMatchingInlineAsmOperand(), FindMemType(), FindOptimalMemOpLowering(), findUser(), foldBitcastedFPLogic(), foldExtendedSignBitTest(), FoldIntToFPToInt(), foldVectorXorShiftIntoCmp(), foldXorTruncShiftIntoCmp(), GeneratePerfectShuffle(), GenerateTBL(), llvm::SelectionDAG::getConstant(), getConstantValue(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getDUPLANEOp(), getEstimate(), getEVTString(), getExpandedMinMaxOps(), getExtendInVec(), getExtensionTo64Bits(), getExtFactor(), GetFPLibCall(), getHalfSizedIntegerVT(), getIPMConversion(), getLeftShift(), getLoadExtOrTrunc(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::TargetLoweringBase::getNumRegisters(), llvm::SITargetLowering::getNumRegistersForCallingConv(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), getOnesVector(), getOpenCLAlignment(), getPackDemandedElts(), getPromotedVectorElementType(), GetPromotionOpcode(), llvm::FastISel::getRegForValue(), llvm::SITargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterTypeForCallingConv(), llvm::MipsTargetLowering::getRegisterTypeForCallingConv(), getRoundIntegerType(), getScalarSizeInBits(), llvm::SDValue::getScalarValueSizeInBits(), getShiftAmountTyForConstant(), getStoreSize(), getTargetConstantBitsFromNode(), getTestBitOperand(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::SDValue::getValueSizeInBits(), getVectorCompareInfo(), llvm::TargetLowering::getVectorElementPointer(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::MipsTargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::SelectionDAG::getZeroExtendInReg(), getZeroVector(), llvm::AArch64TargetLowering::hasAndNot(), llvm::X86TargetLowering::hasAndNot(), llvm::AArch64TargetLowering::hasPairedLoad(), hasSameExtUse(), hasSingleUsesFromRoot(), llvm::TargetLowering::IncrementMemoryAddress(), insertSubVector(), isBitfieldDstMask(), isBitfieldExtractOpFromSExtInReg(), isBitfieldExtractOpFromShr(), isBitfieldPositioningOp(), isByteSized(), isClampZeroToOne(), isConcatMask(), isConditionalZeroOrAllOnes(), isConsecutiveLSLoc(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::ISD::isConstantSplatVector(), llvm::TargetLowering::isExtendedTrueVal(), llvm::X86TargetLowering::isExtractSubvectorCheap(), isI24(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), IsMulWideOperandDemotable(), llvm::AMDGPUTargetLowering::isNarrowingProfitable(), isPerfectIncrement(), isRound(), isSATValidOnAVX512Subtarget(), isSETCCorConvertedSETCC(), llvm::AArch64TargetLowering::isShuffleMaskLegal(), IsSingleInstrConstant(), llvm::RISCVTargetLowering::isTruncateFree(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::AMDGPUTargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::ARMTargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::PPCTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), isTruncateOf(), llvm::HexagonInstrInfo::isValidAutoIncImm(), isVectorReductionOp(), llvm::AArch64TargetLowering::isZExtFree(), lowerAddSubToHorizontalOp(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), LowerCTTZ(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerLoad(), lowerMSABitClearImm(), lowerMSASplatImm(), LowerMULH(), llvm::HexagonTargetLowering::LowerSETCC(), llvm::LanaiTargetLowering::LowerSHL_PARTS(), llvm::AMDGPUTargetLowering::LowerUDIVREM64(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerX86CmpEqZeroToCtlzSrl(), llvm::ARMTargetLowering::LowerXConstraint(), maskMatters(), mayTailCallThisCC(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), NarrowVector(), NormalizeBuildVector(), llvm::AMDGPUTargetLowering::numBitsSigned(), llvm::AMDGPUTargetLowering::numBitsUnsigned(), numVectorEltsOrZero(), operator!=(), parseTexFail(), performANDCombine(), PerformARMBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performExtendCombine(), performIntegerAbsCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), performNEONPostLDSTCombine(), performORCombine(), performSelectCombine(), performSHLCombine(), performSRACombine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), performVectorCompareAndMaskUnaryOpCombine(), performVSelectCombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), reduceVMULWidth(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceZeroVectorStore(), resolveBuildVector(), scalarizeExtractedBinop(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::HexagonDAGToDAGISel::SelectAnyInt(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FastISel::selectFNeg(), selectI64Imm(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::TargetLoweringBase::setJumpIsExpensive(), shouldGuaranteeTCO(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), shouldTransformMulToShiftsAddsSubs(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), SplitOpsAndApply(), splitStores(), splitStoreSplat(), stripExtractLoElt(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), truncateVectorWithPACK(), tryAdvSIMDModImm16(), tryAdvSIMDModImm32(), tryAdvSIMDModImm321s(), tryAdvSIMDModImm64(), tryAdvSIMDModImm8(), tryAdvSIMDModImmFP(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), tryCombineToEXTR(), tryLowerToSLI(), TryMULWIDECombine(), tryToElideArgumentCopy(), tryToFoldExtendOfConstant(), UnpackFromArgumentSlot(), unpackFromMemLoc(), UnrollVectorShift(), VerifySDNode(), llvm::SelectionDAGBuilder::visitBitTestHeader(), visitFMinMax(), VisitGlobalVariableForEmission(), llvm::WebAssemblyTargetLowering::WebAssemblyTargetLowering(), widenIntegerVectorElementType(), and widenVec().

◆ getStoreSize()

unsigned llvm::EVT::getStoreSize ( ) const
inline

Return the number of bytes overwritten by a store of the specified value type.

Definition at line 304 of file ValueTypes.h.

References getSizeInBits().

Referenced by llvm::StatepointLoweringState::allocateStackSlot(), llvm::SITargetLowering::allowsMisalignedMemoryAccesses(), llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), CalculateStackSlotAlignment(), CalculateStackSlotSize(), CanMergeParamLoadStoresStartingAt(), ComputePTXValueVTs(), ConstantAddressBlock(), ConvertSelectToConcatVector(), llvm::SelectionDAG::CreateStackTemporary(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), EnsureStackAlignment(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), findConsecutiveLoad(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getAtomicCmpSwap(), getBuildPairElt(), getExpandedMinMaxOps(), getGeneralPermuteNode(), llvm::SelectionDAG::getLoad(), getLoadExtOrTrunc(), llvm::SelectionDAG::getMemIntrinsicNode(), getParamsForOneTrueMaskedElt(), llvm::SelectionDAG::getStore(), getStoreSizeInBits(), llvm::SystemZTargetLowering::getTargetNodeName(), llvm::PPCTargetLowering::getTgtMemIntrinsic(), llvm::SelectionDAG::getTruncStore(), getUniformBase(), getVectorCompareInfo(), getVPermMask(), hasOnlySelectUsers(), haveEfficientBuildVectorPattern(), llvm::TargetLowering::IncrementMemoryAddress(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::AMDGPUTargetLowering::loadStackInputValue(), LowerADDSUBCARRY(), llvm::R600TargetLowering::LowerFormalArguments(), LowerTruncateVectorStore(), lowerVectorShuffleAsBroadcast(), llvm::MemSDNode::MemSDNode(), narrowExtractedVectorLoad(), parseTexFail(), llvm::SITargetLowering::passSpecialInputs(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), llvm::R600TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::AMDGPUTargetLowering::shouldCombineMemoryType(), shouldGuaranteeTCO(), ShrinkLoadReplaceStoreWithStore(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), tryBuildVectorByteMask(), and tryToElideArgumentCopy().

◆ getStoreSizeInBits()

unsigned llvm::EVT::getStoreSizeInBits ( ) const
inline

◆ getTypeForEVT()

Type * EVT::getTypeForEVT ( LLVMContext Context) const

This method returns an LLVM type corresponding to the specified EVT.

getTypeForEVT - This method returns an LLVM type corresponding to the specified EVT.

For integer types, this returns an unsigned type. Note that this will abort for types that cannot be represented.

Definition at line 202 of file ValueTypes.cpp.

References assert(), llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::f80, llvm::IntegerType::get(), llvm::VectorType::get(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getFP128Ty(), llvm::Type::getHalfTy(), llvm::Type::getInt128Ty(), llvm::Type::getInt16Ty(), llvm::Type::getInt1Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Type::getMetadataTy(), llvm::Type::getPPC_FP128Ty(), llvm::Type::getVoidTy(), llvm::Type::getX86_FP80Ty(), llvm::Type::getX86_MMXTy(), llvm::MVT::i1, llvm::MVT::i128, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, isExtended(), llvm::MVT::isVoid, llvm::MVT::Metadata, llvm::MVT::ppcf128, llvm::MVT::SimpleTy, llvm::MVT::v1024i1, llvm::MVT::v128i1, llvm::MVT::v128i16, llvm::MVT::v128i8, llvm::MVT::v16f32, llvm::MVT::v16i1, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i64, llvm::MVT::v16i8, llvm::MVT::v1f32, llvm::MVT::v1f64, llvm::MVT::v1i1, llvm::MVT::v1i128, llvm::MVT::v1i16, llvm::MVT::v1i32, llvm::MVT::v1i64, llvm::MVT::v1i8, llvm::MVT::v256i8, llvm::MVT::v2f16, llvm::MVT::v2f32, llvm::MVT::v2f64, llvm::MVT::v2i1, llvm::MVT::v2i16, llvm::MVT::v2i32, llvm::MVT::v2i64, llvm::MVT::v2i8, llvm::MVT::v32i1, llvm::MVT::v32i16, llvm::MVT::v32i32, llvm::MVT::v32i64, llvm::MVT::v32i8, llvm::MVT::v4f16, llvm::MVT::v4f32, llvm::MVT::v4f64, llvm::MVT::v4i1, llvm::MVT::v4i16, llvm::MVT::v4i32, llvm::MVT::v4i64, llvm::MVT::v4i8, llvm::MVT::v512i1, llvm::MVT::v64i1, llvm::MVT::v64i16, llvm::MVT::v64i32, llvm::MVT::v64i8, llvm::MVT::v8f16, llvm::MVT::v8f32, llvm::MVT::v8f64, llvm::MVT::v8i1, llvm::MVT::v8i16, llvm::MVT::v8i32, llvm::MVT::v8i64, llvm::MVT::v8i8, and llvm::MVT::x86mmx.

Referenced by llvm::TargetLoweringBase::allowsMemoryAccess(), buildPCRelGlobalAddress(), CallingConvSupported(), canFoldInAddressingMode(), llvm::SelectionDAG::CreateStackTemporary(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), ExpandBVWithShuffles(), getBuildPairElt(), getDivRemArgList(), llvm::SelectionDAG::getEVTAlignment(), getExpandedMinMaxOps(), getFPTernOp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), getMemsetStringVal(), getPow2VectorType(), llvm::AVRTargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getTgtMemIntrinsic(), llvm::TargetLoweringBase::getValueType(), isSupportedType(), llvm::SITargetLowering::isTypeDesirableForOp(), isWordAligned(), LowerADDSUBCARRY(), LowerBUILD_VECTORAsVariablePermute(), llvm::TargetLowering::LowerCallTo(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerFPOWI(), LowerFSINCOS(), LowerMULH(), LowerVectorINT_TO_FP(), llvm::TargetLowering::makeLibCall(), mayTailCallThisCC(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), ShrinkLoadReplaceStoreWithStore(), tryToElideArgumentCopy(), useSinCos(), llvm::X86CallLowering::X86CallLowering(), and XFormVExtractWithShuffleIntoLoad().

◆ getVectorElementCount()

MVT::ElementCount llvm::EVT::getVectorElementCount ( ) const
inline

◆ getVectorElementType()

EVT llvm::EVT::getVectorElementType ( ) const
inline

Given a vector type, return the type of each element.

Definition at line 265 of file ValueTypes.h.

References assert(), llvm::MVT::getVectorElementType(), isSimple(), and isVector().

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineVUZPToVPADDL(), CollectOpsToWiden(), combineAddToSUBUS(), CombineBaseUpdate(), combineBasicSADPattern(), combineBitcast(), combineCastedMaskArithmetic(), combineConcatVectorOfExtracts(), combineExtractWithShuffle(), combineExtSetcc(), combineLoopSADPattern(), combineMaskedLoad(), combineMaskedStore(), combineMulToPMADDWD(), combineMulToPMULDQ(), combinePMULH(), combineScalarToVector(), combineSelect(), combineSetCC(), combineShuffleOfConcatUndef(), combineVectorTruncation(), combineVectorTruncationWithPACKUS(), combineVSelectToBLENDV(), combineVSelectWithAllOnesOrZeros(), combinevXi1ConstantToInteger(), CompactSwizzlableVector(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), ComputePTXValueVTs(), ConstantBuildVector(), constructRetValue(), createBSWAPShuffleMask(), detectAVGPattern(), detectPMADDUBSW(), detectZextAbsDiff(), EmitVectorComparison(), ExpandBVWithShuffles(), extractSubVector(), FindMemType(), findUser(), foldBitcastedFPLogic(), foldVectorXorShiftIntoCmp(), GeneratePerfectShuffle(), GenerateTBL(), getConstantValue(), getContiguousRangeOfSetBits(), getCopyFromPartsVector(), getCopyToPartsVector(), getDUPLANEOp(), getEVTString(), getExpandedMinMaxOps(), getExtFactor(), GetFPLibCall(), getGeneralPermuteNode(), getHalfNumVectorElementsVT(), getLoadExtOrTrunc(), getMemsetStringVal(), getMOVL(), llvm::SelectionDAG::getNode(), getParamsForOneTrueMaskedElt(), getPow2VectorType(), GetPromotionOpcode(), getScalarType(), getShiftAmountTyForConstant(), getShuffleScalarElt(), llvm::SelectionDAG::getSplatBuildVector(), llvm::SystemZTargetLowering::getTargetNodeName(), getVectorCompareInfo(), llvm::TargetLowering::getVectorElementPointer(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVPermMask(), hasOnlySelectUsers(), insertSubVector(), isClampZeroToOne(), llvm::ISD::isConstantSplatVector(), llvm::X86TargetLowering::isExtractSubvectorCheap(), llvm::X86TargetLowering::isLoadBitCastBeneficial(), isPerfectIncrement(), isSETCCorConvertedSETCC(), IsSingleInstrConstant(), isTruncateOf(), llvm::X86TargetLowering::isTypeDesirableForOp(), LowerCTTZ(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::R600TargetLowering::LowerFormalArguments(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSAStoreIntr(), LowerMSCATTER(), LowerStore(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerVectorShuffleAsTruncBroadcast(), LowerVSETCC(), matchPMADDWD(), matchPMADDWD_2(), narrowExtractedVectorLoad(), NarrowVector(), NormalizeBuildVector(), originalEVTTypeIsVectorFloat(), Passv64i1ArgInRegs(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), PerformInsertEltCombine(), performPostLD1Combine(), PerformVDUPCombine(), performVSelectCombine(), pickOpcodeForVT(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), reduceMaskedLoadToScalarLoad(), reduceMaskedStoreToScalarStore(), ReorganizeVector(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceZeroVectorStore(), scalarizeExtractedBinop(), llvm::TargetLoweringBase::setJumpIsExpensive(), ShrinkLoadReplaceStoreWithStore(), splitStores(), tryBuildVectorByteMask(), tryFormConcatFromShuffle(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), widenIntegerVectorElementType(), widenVec(), WidenVector(), and widenVectorToPartType().

◆ getVectorNumElements()

unsigned llvm::EVT::getVectorNumElements ( ) const
inline

Given a vector type, return the number of elements it contains.

Definition at line 273 of file ValueTypes.h.

References assert(), llvm::MVT::getVectorNumElements(), isSimple(), and isVector().

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineVUZPToVPADDL(), AddNodeIDCustom(), addShuffleForVecExtend(), adjustLoadValueTypeImpl(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), buildScalarToVector(), buildVector(), calculateByteProvider(), changeVectorElementTypeToInteger(), clampDynamicVectorIndex(), CollectOpsToWiden(), combineAddToSUBUS(), combineAnd(), CombineBaseUpdate(), combineBasicSADPattern(), combineBitcast(), combineConcatVectorOfExtracts(), combineExtractWithShuffle(), combineGatherScatter(), combineHorizontalMinMaxResult(), combineHorizontalPredicateResult(), combineLoopMAddPattern(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineMulToPMADDWD(), combineMulToPMULDQ(), combinePMULH(), combineSetCC(), combineShuffle(), combineShuffleOfConcatUndef(), combineShuffleOfScalars(), combineShuffleToVectorExtend(), combineSIntToFP(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineToExtendVectorInReg(), combineTruncateWithSat(), combineTruncationShuffle(), combineUIntToFP(), combineVectorPack(), combineVectorShiftImm(), combineVectorShiftVar(), combineVectorTruncation(), CombineVMOVDRRCandidateWithVecOp(), combinevXi1ConstantToInteger(), combineX86INT_TO_FP(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), ComputePTXValueVTs(), ConstantBuildVector(), constructRetValue(), ConvertSelectToConcatVector(), createBSWAPShuffleMask(), createShuffleMaskFromVSELECT(), createVariablePermute(), detectAVGPattern(), detectPMADDUBSW(), EmitVectorComparison(), ExpandBITCAST(), ExtendUsesToFormExtLoad(), extractSubVector(), findUser(), foldBitcastedFPLogic(), FoldBUILD_VECTOR(), FoldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), getBuildVectorSplat(), llvm::SelectionDAG::getConstant(), getConstantValue(), getContiguousRangeOfSetBits(), getCopyFromPartsVector(), getCopyToPartsVector(), getDemandedSrcElements(), getDUPLANEOp(), getEVTString(), getExpandedMinMaxOps(), getExtendInVec(), getFauxShuffleMask(), llvm::SelectionDAG::getLoad(), getLoadExtOrTrunc(), llvm::ShuffleVectorSDNode::getMask(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedScatter(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), llvm::SITargetLowering::getNumRegistersForCallingConv(), getOneTrueElt(), getPow2VectorType(), GetPromotionOpcode(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::SITargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), getShiftAmountTyForConstant(), getShuffleScalarElt(), llvm::SelectionDAG::getSplatBuildVector(), llvm::ShuffleVectorSDNode::getSplatIndex(), getTargetConstantBitsFromNode(), llvm::SelectionDAG::getTruncStore(), getUnderlyingArgReg(), llvm::SelectionDAG::getVectorShuffle(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::MipsTargetLowering::getVectorTypeBreakdownForCallingConv(), getVPermMask(), hasNormalLoadOperand(), hasOnlySelectUsers(), llvm::TargetLowering::IncrementMemoryAddress(), isAllConstantBuildVector(), isBSwapHWordElement(), isClampZeroToOne(), isConcatMask(), isConstOrDemandedConstSplat(), llvm::X86TargetLowering::isDesirableToCombineBuildVectorToShuffleTruncate(), isEXTMask(), llvm::AArch64TargetLowering::isExtractSubvectorCheap(), llvm::ARMTargetLowering::isExtractSubvectorCheap(), llvm::X86TargetLowering::isExtractSubvectorCheap(), isHorizontalBinOpPart(), isNonZeroElementsInOrder(), isPow2VectorType(), isReverseMask(), isREVMask(), isSETCCorConvertedSETCC(), llvm::AArch64TargetLowering::isShuffleMaskLegal(), llvm::ARMTargetLowering::isShuffleMaskLegal(), IsSingleInstrConstant(), isSingletonEXTMask(), isSingletonVEXTMask(), llvm::ShuffleVectorSDNode::isSplatMask(), llvm::SelectionDAG::isSplatValue(), IsSplatVector(), isTRN_v_undef_Mask(), isTRNMask(), isTruncateOf(), isUZP_v_undef_Mask(), isUZPMask(), isVEXTMask(), isVREVMask(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), isZIP_v_undef_Mask(), isZIPMask(), LowerINTRINSIC_W_CHAIN(), lowerMSABitClearImm(), lowerMSASplatZExt(), LowerStore(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorAllZeroTest(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), LowerVSETCC(), llvm::SelectionDAG::matchBinOpReduction(), matchPMADDWD(), matchPMADDWD_2(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), NarrowVector(), numVectorEltsOrZero(), partitionShuffleOfConcats(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), PerformBUILD_VECTORCombine(), performConcatVectorsCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), PerformInsertEltCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVECTOR_SHUFFLECombine(), performVSelectCombine(), pickOpcodeForVT(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), reduceVMULWidth(), ReorganizeVector(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceSplatVectorStore(), replaceZeroVectorStore(), scalarizeExtractedBinop(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::TargetLoweringBase::setJumpIsExpensive(), setTargetShuffleZeroElements(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), SplitOpsAndApply(), splitStores(), llvm::SelectionDAG::SplitVector(), llvm::AMDGPUTargetLowering::SplitVectorStore(), truncateVectorWithPACK(), tryBuildVectorShuffle(), tryCombineToBSL(), tryFormConcatFromShuffle(), tryToFoldExtendOfConstant(), VerifySDNode(), widenVec(), WidenVector(), widenVectorToPartType(), and XFormVExtractWithShuffleIntoLoad().

◆ getVectorVT() [1/2]

static EVT llvm::EVT::getVectorVT ( LLVMContext Context,
EVT  VT,
unsigned  NumElements,
bool  IsScalable = false 
)
inlinestatic

Returns the EVT that represents a vector NumElements in length, where each element is of type VT.

Definition at line 73 of file ValueTypes.h.

References assert(), llvm::MVT::getVectorVT(), llvm::MVT::INVALID_SIMPLE_VALUE_TYPE, and llvm::MVT::SimpleTy.

Referenced by AddCombineVUZPToVPADDL(), adjustLoadValueTypeImpl(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), calculateByteProvider(), CollectOpsToWiden(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineGatherScatter(), combineHorizontalMinMaxResult(), combineLoad(), combineLoopMAddPattern(), combineMaskedLoad(), combineMaskedStore(), combineShuffleToVectorExtend(), combineSIntToFP(), combineStore(), combineToExtendBoolVectorInReg(), combineToExtendVectorInReg(), combineTruncateWithSat(), combineUIntToFP(), combineVectorTruncationWithPACKUS(), CombineVMOVDRRCandidateWithVecOp(), ConstantBuildVector(), constructRetValue(), createBSWAPShuffleMask(), detectPMADDUBSW(), extractSubVector(), foldBitcastedFPLogic(), llvm::SelectionDAG::getConstant(), getCopyFromPartsVector(), getCopyToPartsVector(), llvm::AMDGPUTargetLowering::getEquivalentMemType(), getEVT(), getHalfNumVectorElementsVT(), getMemsetStringVal(), getPow2VectorType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::SITargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), getShiftAmountTyForConstant(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), getUnderlyingArgReg(), getUniformBase(), llvm::TargetLoweringBase::getValueType(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::MVT::getVT(), hasOnlySelectUsers(), isPerfectIncrement(), isSETCCorConvertedSETCC(), IsSingleInstrConstant(), isTruncateOf(), LowerAsSplatVectorLoad(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerLoad(), LowerMSCATTER(), LowerVECTOR_SHUFFLE(), LowerVSETCC(), matchPMADDWD(), matchPMADDWD_2(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), parseTexFail(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), performExtendCombine(), PerformInsertEltCombine(), performSelectCombine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), reduceVMULWidth(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), llvm::TargetLoweringBase::setJumpIsExpensive(), ShrinkLoadReplaceStoreWithStore(), splitStores(), truncateVectorWithPACK(), tryFormConcatFromShuffle(), llvm::SelectionDAG::UnrollVectorOp(), widenIntegerVectorElementType(), and widenVec().

◆ getVectorVT() [2/2]

static EVT llvm::EVT::getVectorVT ( LLVMContext Context,
EVT  VT,
MVT::ElementCount  EC 
)
inlinestatic

Returns the EVT that represents a vector EC.Min elements in length, where each element is of type VT.

Definition at line 85 of file ValueTypes.h.

References assert(), llvm::MVT::getVectorVT(), llvm::MVT::INVALID_SIMPLE_VALUE_TYPE, llvm::MVT::ElementCount::Min, llvm::MVT::ElementCount::Scalable, and llvm::MVT::SimpleTy.

◆ is1024BitVector()

bool llvm::EVT::is1024BitVector ( ) const
inline

Return true if this is a 1024-bit vector type.

Definition at line 197 of file ValueTypes.h.

References llvm::MVT::is1024BitVector(), and isSimple().

◆ is128BitVector()

bool llvm::EVT::is128BitVector ( ) const
inline

◆ is16BitVector()

bool llvm::EVT::is16BitVector ( ) const
inline

Return true if this is a 16-bit vector type.

Definition at line 167 of file ValueTypes.h.

References llvm::MVT::is16BitVector(), and isSimple().

◆ is2048BitVector()

bool llvm::EVT::is2048BitVector ( ) const
inline

Return true if this is a 2048-bit vector type.

Definition at line 202 of file ValueTypes.h.

References llvm::MVT::is2048BitVector(), and isSimple().

◆ is256BitVector()

bool llvm::EVT::is256BitVector ( ) const
inline

◆ is32BitVector()

bool llvm::EVT::is32BitVector ( ) const
inline

Return true if this is a 32-bit vector type.

Definition at line 172 of file ValueTypes.h.

References llvm::MVT::is32BitVector(), and isSimple().

◆ is512BitVector()

bool llvm::EVT::is512BitVector ( ) const
inline

◆ is64BitVector()

bool llvm::EVT::is64BitVector ( ) const
inline

◆ isByteSized()

bool llvm::EVT::isByteSized ( ) const
inline

◆ isExtended()

bool llvm::EVT::isExtended ( ) const
inline

◆ isFloatingPoint()

bool llvm::EVT::isFloatingPoint ( ) const
inline

Return true if this is a FP or a vector FP type.

Definition at line 136 of file ValueTypes.h.

References llvm::MVT::isFloatingPoint(), and isSimple().

Referenced by combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtractWithShuffle(), combineSelect(), combineShuffle(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), ConstantBuildVector(), convertIntLogicToFPLogic(), createFPCmp(), EmitCMP(), emitComparison(), emitConditionalComparison(), emitConjunctionRec(), EmitTest(), EmitVectorComparison(), llvm::AArch64TargetLowering::enableAggressiveFMAFusion(), llvm::PPCTargetLowering::enableAggressiveFMAFusion(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), FindOptimalMemOpLowering(), foldBitcastedFPLogic(), llvm::TargetLoweringBase::getBooleanContents(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstantFP(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getEstimate(), getLoadExtOrTrunc(), llvm::SelectionDAG::getNode(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAGBuilder::getValueImpl(), getVCmpInst(), llvm::AArch64TargetLowering::hasPairedLoad(), llvm::AMDGPUTargetLowering::isFAbsFree(), llvm::TargetLoweringBase::isFAbsFree(), isFNEG(), llvm::AMDGPUTargetLowering::isFNegFree(), llvm::TargetLoweringBase::isFNegFree(), llvm::TargetLoweringBase::isFPExtFoldable(), llvm::PPCTargetLowering::isFPExtFree(), llvm::TargetLoweringBase::isFPExtFree(), llvm::SelectionDAG::isKnownNeverZero(), llvm::SelectionDAG::isKnownNeverZeroFloat(), isLegalToCombineMinNumMaxNum(), llvm::X86TargetLowering::isMultiStoresCheaperThanBitsMerge(), llvm::ARMTargetLowering::isReadOnly(), IsSingleInstrConstant(), isSupportedType(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::ConstantFPSDNode::isValueValidForType(), llvm::NVPTXTargetLowering::LowerCall(), LowerVSETCC(), llvm::ARMTargetLowering::LowerXConstraint(), llvm::X86TargetLowering::LowerXConstraint(), llvm::TargetLowering::LowerXConstraint(), mayTailCallThisCC(), NormalizeBuildVector(), numVectorEltsOrZero(), originalEVTTypeIsVectorFloat(), PerformARMBUILD_VECTORCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PrepareCall(), replaceShuffleOfInsert(), replaceSplatVectorStore(), llvm::TargetLowering::SimplifyDemandedBits(), VerifySDNode(), and widenVec().

◆ isInteger()

bool llvm::EVT::isInteger ( ) const
inline

Return true if this is an integer or a vector integer type.

Definition at line 141 of file ValueTypes.h.

References llvm::MVT::isInteger(), and isSimple().

Referenced by AddCombineBUILD_VECTORToVPADDL(), calculateByteProvider(), combineAddOrSubToADCOrSBB(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineLogicBlendIntoPBLENDV(), combineMinNumMaxNum(), combineShuffle(), combineShuffleOfScalars(), combineShuffleToVectorExtend(), combineTruncationShuffle(), combineVSelectWithAllOnesOrZeros(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), ConstantBuildVector(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), EltsFromConsecutiveLoads(), emitConjunctionRec(), EmitVectorComparison(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), findMatchingInlineAsmOperand(), FindOptimalMemOpLowering(), findUnwindDestinations(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), FoldIntToFPToInt(), llvm::SelectionDAG::FoldSetCC(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstant(), getCopyFromParts(), getCopyToParts(), getDUPLANEOp(), getEVTString(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getMemcpyLoadsAndStores(), getMemsetStringVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), getOpenCLAlignment(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), getPromotedVectorElementType(), llvm::TargetLoweringBase::getRegisterType(), llvm::SITargetLowering::getRegisterTypeForCallingConv(), llvm::GetReturnInfo(), getRoundIntegerType(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::SelectionDAG::getSplatBuildVector(), llvm::SelectionDAG::getTruncStore(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::AArch64TargetLowering::hasPairedLoad(), isAnyConstantBuildVector(), llvm::TargetLowering::isExtendedTrueVal(), isMemOPCandidate(), llvm::X86TargetLowering::isMultiStoresCheaperThanBitsMerge(), isSETCCorConvertedSETCC(), isSlicingProfitable(), isSupportedType(), llvm::RISCVTargetLowering::isTruncateFree(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::ARMTargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::PPCTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), llvm::XCoreTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), LowerBR_CC(), lowerBuildVectorAsBroadcast(), llvm::NVPTXTargetLowering::LowerCall(), lowerMSAStoreIntr(), LowerMUL(), LowerMULH(), LowerSELECT_CC(), llvm::TargetLowering::LowerXConstraint(), maskMatters(), mayTailCallThisCC(), numVectorEltsOrZero(), OptimizeNoopCopyExpression(), PerformADDCombineWithOperands(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), performIntegerAbsCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), performSELECTCombine(), performXORCombine(), reduceBuildVecToShuffleWithZero(), llvm::R600TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), llvm::HexagonDAGToDAGISel::SelectAnyInt(), llvm::TargetLoweringBase::setJumpIsExpensive(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), useSinCos(), VerifySDNode(), visitFMinMax(), VisitGlobalVariableForEmission(), and XFormVExtractWithShuffleIntoLoad().

◆ isOverloaded()

bool llvm::EVT::isOverloaded ( ) const
inline

Return true if this is an overloaded type for TableGen.

Definition at line 207 of file ValueTypes.h.

References llvm::MVT::fAny, llvm::MVT::iAny, llvm::MVT::iPTRAny, and llvm::MVT::vAny.

◆ isPow2VectorType()

bool llvm::EVT::isPow2VectorType ( ) const
inline

Returns true if the given vector is a power of 2.

Definition at line 359 of file ValueTypes.h.

References getVectorNumElements().

Referenced by ExtendUsesToFormExtLoad(), getPow2VectorType(), and llvm::TargetLoweringBase::setJumpIsExpensive().

◆ isRound()

bool llvm::EVT::isRound ( ) const
inline

Return true if the size is a power-of-two number of bytes.

Definition at line 217 of file ValueTypes.h.

References getSizeInBits().

Referenced by hasSameExtUse(), simplifyDivRem(), and llvm::TargetLowering::SimplifySetCC().

◆ isScalableVector()

bool llvm::EVT::isScalableVector ( ) const
inline

Return true if this is a vector type where the runtime length is machine dependent.

Definition at line 157 of file ValueTypes.h.

References llvm::MVT::isScalableVector(), and isSimple().

Referenced by changeVectorElementTypeToInteger(), getPow2VectorType(), and getVectorElementCount().

◆ isScalarInteger()

bool llvm::EVT::isScalarInteger ( ) const
inline

◆ isSimple()

bool llvm::EVT::isSimple ( ) const
inline

Test if the given EVT is simple (as opposed to being extended).

Definition at line 126 of file ValueTypes.h.

References llvm::MVT::INVALID_SIMPLE_VALUE_TYPE, and llvm::MVT::SimpleTy.

Referenced by llvm::R600TargetLowering::allowsMisalignedMemoryAccesses(), llvm::ARMTargetLowering::allowsMisalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsMisalignedMemoryAccesses(), CC_MipsO32_FP64(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), changeTypeToInteger(), changeVectorElementTypeToInteger(), combineAndMaskToShift(), combineBasicSADPattern(), combineBitcastvxi1(), combineLoopSADPattern(), combineVectorSignBitsTruncation(), combineVectorTruncation(), computeBytesPoppedByCalleeForSRet(), foldVectorXorShiftIntoCmp(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), getCompareCC(), getComparePred(), getDivRemArgList(), getExtensionTo64Bits(), getImplicitScaleFactor(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX2(), getLoadExtOrTrunc(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), getRawBits(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), getSimpleVT(), getSizeInBits(), llvm::SystemZTargetLowering::getTargetNodeName(), llvm::SelectionDAG::getValueType(), getVectorElementCount(), getVectorElementType(), getVectorNumElements(), llvm::AArch64TargetLowering::hasPairedLoad(), is1024BitVector(), is128BitVector(), is16BitVector(), is2048BitVector(), is256BitVector(), is32BitVector(), is512BitVector(), is64BitVector(), isExtended(), isFloatingPoint(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::ARMTargetLowering::isFNegFree(), llvm::PPCTargetLowering::isFPImmLegal(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isInteger(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::TargetLoweringBase::isLoadBitCastBeneficial(), isMemOPCandidate(), isMulPowOf2(), isScalableVector(), isScalarInteger(), isSExtLoad(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSupportedType(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTypeLegal(), isVector(), llvm::XCoreTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), llvm::AMDGPUCallLowering::lowerFormalArguments(), mayTailCallThisCC(), llvm::PPCTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), PerformVCVTCombine(), PerformVDIVCombine(), pickOpcodeForVT(), reduceBuildVecToShuffleWithZero(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::TargetLoweringBase::setJumpIsExpensive(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyDivRem(), usePartialVectorLoads(), and X86ChooseCmpImmediateOpcode().

◆ isVector()

bool llvm::EVT::isVector ( ) const
inline

Return true if this is a vector value type.

Definition at line 151 of file ValueTypes.h.

References isSimple(), and llvm::MVT::isVector().

Referenced by adjustLoadValueTypeImpl(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), asmClobbersCTR(), BuildExactSDIV(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), calculateByteProvider(), CC_MipsO32_FP64(), changeTypeToInteger(), CollectOpsToWiden(), combineAddToSUBUS(), combineAnd(), combineBitcast(), combineCastedMaskArithmetic(), combineCCMask(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtSetcc(), combineFMinNumFMaxNum(), combineLoopMAddPattern(), combineLoopSADPattern(), combineMul(), combineMulToPMADDWD(), combineMulToPMULDQ(), combineOr(), combinePMULH(), combineScalarToVector(), combineSelect(), combineSetCC(), combineSext(), combineShiftLeft(), combineShiftRightArithmetic(), combineShuffle(), combineSIntToFP(), combineStore(), combineToExtendBoolVectorInReg(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineTruncateWithSat(), combineUIntToFP(), combineVectorCompareAndMaskUnaryOp(), combineVectorSignBitsTruncation(), combineVectorTruncation(), CombineVMOVDRRCandidateWithVecOp(), combineVSelectWithAllOnesOrZeros(), combineZext(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), ComputePTXValueVTs(), ConstantAddressBlock(), constructRetValue(), llvm::X86TargetLowering::convertSelectOfConstantsToMath(), createBSWAPShuffleMask(), detectAVGPattern(), detectPMADDUBSW(), EmitTest(), llvm::TargetLowering::expandABS(), ExpandBITCAST(), llvm::TargetLowering::expandMUL_LOHI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), FindOptimalMemOpLowering(), foldAddSubOfSignBit(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldExtendedSignBitTest(), foldFPToIntToFP(), FoldIntToFPToInt(), foldVectorXorShiftIntoCmp(), llvm::TargetLoweringBase::getBooleanContents(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getDemandedSrcElements(), getEstimate(), getEVTString(), getExpandedMinMaxOps(), getExtendInVec(), getFauxShuffleMask(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getLoadExtOrTrunc(), getMad64_32(), getMemcpyLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), getMOVL(), llvm::SelectionDAG::getNode(), getNullFPConstForNullVal(), llvm::TargetLoweringBase::getNumRegisters(), llvm::SITargetLowering::getNumRegistersForCallingConv(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), getPromotedVectorElementType(), getReciprocalOpName(), llvm::TargetLoweringBase::getRegisterType(), llvm::SITargetLowering::getRegisterTypeForCallingConv(), llvm::MipsTargetLowering::getRegisterTypeForCallingConv(), getRoundIntegerType(), getScalarType(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAG::getSelect(), llvm::SelectionDAG::getSetCC(), llvm::R600TargetLowering::getSetCCResultType(), llvm::RISCVTargetLowering::getSetCCResultType(), llvm::AVRTargetLowering::getSetCCResultType(), llvm::SparcTargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::AArch64TargetLowering::getSetCCResultType(), llvm::ARMTargetLowering::getSetCCResultType(), llvm::SITargetLowering::getSetCCResultType(), llvm::MipsTargetLowering::getSetCCResultType(), llvm::SystemZTargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::TargetLoweringBase::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), llvm::SelectionDAG::getShiftAmountOperand(), llvm::TargetLoweringBase::getShiftAmountTy(), getShiftAmountTyForConstant(), getShuffleScalarElt(), getSplatConstantFP(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::SystemZTargetLowering::getTargetNodeName(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeToExpandTo(), getUniformBase(), getVCmpInst(), getVectorElementCount(), getVectorElementType(), getVectorNumElements(), llvm::SITargetLowering::getVectorTypeBreakdownForCallingConv(), llvm::SelectionDAG::getZeroExtendInReg(), getZeroVector(), llvm::AArch64TargetLowering::hasAndNot(), llvm::X86TargetLowering::hasAndNot(), llvm::X86TargetLowering::hasAndNotCompare(), llvm::X86TargetLowering::hasBitPreservingFPLogic(), hasOnlySelectUsers(), isAnyConstantBuildVector(), isBooleanFlip(), isBSwapHWordElement(), llvm::BuildVectorSDNode::isConstantSplat(), isContractable(), isHorizontalBinOpPart(), llvm::AArch64TargetLowering::isIntDivCheap(), llvm::X86TargetLowering::isIntDivCheap(), llvm::X86TargetLowering::isLoadBitCastBeneficial(), isSATValidOnAVX512Subtarget(), isSETCCorConvertedSETCC(), isSortedByValueNo(), llvm::SelectionDAG::isSplatValue(), isSupportedType(), llvm::RISCVTargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::ARMTargetLowering::isTruncateFree(), isTruncateOf(), llvm::X86TargetLowering::isTypeDesirableForOp(), isVShiftLImm(), isVShiftRImm(), llvm::AArch64TargetLowering::isZExtFree(), LowerADDSUBCARRY(), lowerBuildVectorAsBroadcast(), LowerCTTZ(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::R600TargetLowering::LowerFormalArguments(), LowerFPToInt(), LowerLoad(), LowerMUL(), llvm::ARMTargetLowering::LowerOperation(), LowerShift(), LowerStore(), LowerTruncateVectorStore(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerVectorShuffleAsTruncBroadcast(), llvm::ARMTargetLowering::LowerXConstraint(), matchPMADDWD(), matchPMADDWD_2(), mayTailCallThisCC(), narrowExtractedVectorBinOp(), numVectorEltsOrZero(), originalEVTTypeIsVectorFloat(), Passv64i1ArgInRegs(), PerformADDCombineWithOperands(), performBitcastCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), PerformLOADCombine(), performMADD_MSUBCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performMULCombine(), llvm::AMDGPUTargetLowering::performMulhsCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), PerformORCombine(), performSelectCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVectorCompareAndMaskUnaryOpCombine(), pickOpcodeForVT(), llvm::X86TargetLowering::preferShiftsToClearExtremeBits(), PrepareCall(), PromoteMaskArithmetic(), reduceBuildVecToShuffleWithZero(), ReorganizeVector(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::AMDGPUTargetLowering::shouldCombineMemoryType(), llvm::TargetLoweringBase::shouldReduceLoadWidth(), llvm::AArch64TargetLowering::shouldTransformSignedTruncationCheck(), llvm::X86TargetLowering::shouldTransformSignedTruncationCheck(), llvm::TargetLowering::ShrinkDemandedOp(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), splitStores(), stripModuloOnShift(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), truncateVectorWithPACK(), tryCombineToBSL(), tryFoldToZero(), tryLowerToSLI(), tryToFoldExtendOfConstant(), tryToFoldExtOfExtload(), tryToFoldExtOfLoad(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), VerifyVectorType(), visitFMinMax(), widenVec(), widenVectorToPartType(), and XFormVExtractWithShuffleIntoLoad().

◆ operator!=()

bool llvm::EVT::operator!= ( EVT  VT) const
inline

Definition at line 47 of file ValueTypes.h.

References llvm::MVT::INVALID_SIMPLE_VALUE_TYPE, and llvm::MVT::SimpleTy.

◆ operator==()

bool llvm::EVT::operator== ( EVT  VT) const
inline

Definition at line 44 of file ValueTypes.h.

◆ widenIntegerVectorElementType()

EVT llvm::EVT::widenIntegerVectorElementType ( LLVMContext Context) const
inline

Return a VT for an integer vector type with the size of the elements doubled.

The typed returned may be an extended type.

Definition at line 342 of file ValueTypes.h.

References getIntegerVT(), getSizeInBits(), getVectorElementCount(), getVectorElementType(), and getVectorVT().


The documentation for this struct was generated from the following files: