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

EVT - Extended Value Type. More...

#include <ValueTypes.h>

Classes

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

Public Member Functions

constexpr EVT ()
 
constexpr EVT (MVT::SimpleValueType SVT)
 
constexpr EVT (MVT S)
 
bool operator== (EVT VT) const
 
bool operator!= (EVT VT) const
 
EVT changeVectorElementTypeToInteger () const
 changeVectorElementTypeToInteger - 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
 isSimple - Test if the given EVT is simple (as opposed to being extended). More...
 
bool isExtended () const
 isExtended - Test if the given EVT is extended (as opposed to being simple). More...
 
bool isFloatingPoint () const
 isFloatingPoint - Return true if this is a FP, or a vector FP type. More...
 
bool isInteger () const
 isInteger - Return true if this is an integer, or a vector integer type. More...
 
bool isScalarInteger () const
 isScalarInteger - Return true if this is an integer, but not a vector. More...
 
bool isVector () const
 isVector - Return true if this is a vector value type. More...
 
bool is16BitVector () const
 is16BitVector - Return true if this is a 16-bit vector type. More...
 
bool is32BitVector () const
 is32BitVector - Return true if this is a 32-bit vector type. More...
 
bool is64BitVector () const
 is64BitVector - Return true if this is a 64-bit vector type. More...
 
bool is128BitVector () const
 is128BitVector - Return true if this is a 128-bit vector type. More...
 
bool is256BitVector () const
 is256BitVector - Return true if this is a 256-bit vector type. More...
 
bool is512BitVector () const
 is512BitVector - Return true if this is a 512-bit vector type. More...
 
bool is1024BitVector () const
 is1024BitVector - Return true if this is a 1024-bit vector type. More...
 
bool is2048BitVector () const
 is2048BitVector - Return true if this is a 2048-bit vector type. More...
 
bool isOverloaded () const
 isOverloaded - Return true if this is an overloaded type for TableGen. More...
 
bool isByteSized () const
 isByteSized - Return true if the bit size is a multiple of 8. More...
 
bool isRound () const
 isRound - Return true if the size is a power-of-two number of bytes. More...
 
bool bitsEq (EVT VT) const
 bitsEq - Return true if this has the same number of bits as VT. More...
 
bool bitsGT (EVT VT) const
 bitsGT - Return true if this has more bits than VT. More...
 
bool bitsGE (EVT VT) const
 bitsGE - Return true if this has no less bits than VT. More...
 
bool bitsLT (EVT VT) const
 bitsLT - Return true if this has less bits than VT. More...
 
bool bitsLE (EVT VT) const
 bitsLE - Return true if this has no more bits than VT. More...
 
MVT getSimpleVT () const
 getSimpleVT - Return the SimpleValueType held in the specified simple EVT. More...
 
EVT getScalarType () const
 getScalarType - If this is a vector type, return the element type, otherwise return this. More...
 
EVT getVectorElementType () const
 getVectorElementType - Given a vector type, return the type of each element. More...
 
unsigned getVectorNumElements () const
 getVectorNumElements - Given a vector type, return the number of elements it contains. More...
 
unsigned getSizeInBits () const
 getSizeInBits - Return the size of the specified value type in bits. More...
 
unsigned getScalarSizeInBits () const
 
unsigned getStoreSize () const
 getStoreSize - Return the number of bytes overwritten by a store of the specified value type. More...
 
unsigned getStoreSizeInBits () const
 getStoreSizeInBits - Return the number of bits overwritten by a store of the specified value type. More...
 
EVT getRoundIntegerType (LLVMContext &Context) const
 getRoundIntegerType - 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
 getHalfSizedIntegerVT - 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...
 
bool isPow2VectorType () const
 isPow2VectorType - Returns true if the given vector is a power of 2. More...
 
EVT getPow2VectorType (LLVMContext &Context) const
 getPow2VectorType - Widens the length of the given vector EVT up to the nearest power of 2 and returns that type. More...
 
std::string getEVTString () const
 getEVTString - This function returns value type as a string, e.g. More...
 
TypegetTypeForEVT (LLVMContext &Context) const
 getTypeForEVT - 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)
 getFloatingPointVT - Returns the EVT that represents a floating point type with the given number of bits. More...
 
static EVT getIntegerVT (LLVMContext &Context, unsigned BitWidth)
 getIntegerVT - Returns the EVT that represents an integer with the given number of bits. More...
 
static EVT getVectorVT (LLVMContext &Context, EVT VT, unsigned NumElements)
 getVectorVT - Returns the EVT that represents a vector NumElements in length, where each element is of type VT. More...
 
static EVT getEVT (Type *Ty, bool HandleUnknown=false)
 getEVT - Return the value type corresponding to the specified type. More...
 

Detailed Description

EVT - 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 a MVT can represent.

Definition at line 31 of file ValueTypes.h.

Constructor & Destructor Documentation

constexpr llvm::EVT::EVT ( )
inline

Definition at line 37 of file ValueTypes.h.

Referenced by getHalfSizedIntegerVT(), and getRoundIntegerType().

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

Definition at line 38 of file ValueTypes.h.

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

Definition at line 39 of file ValueTypes.h.

Member Function Documentation

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

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

Definition at line 194 of file ValueTypes.h.

References getSizeInBits().

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

bitsGE - Return true if this has no less bits than VT.

Definition at line 206 of file ValueTypes.h.

References getSizeInBits().

Referenced by combineOrCmpEqZeroToCtlzSrl(), getCopyToPartsVector(), and getMemcpyLoadsAndStores().

bool llvm::EVT::bitsGT ( EVT  VT) const
inline
bool llvm::EVT::bitsLE ( EVT  VT) const
inline
bool llvm::EVT::bitsLT ( EVT  VT) const
inline
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 95 of file ValueTypes.h.

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

EVT llvm::EVT::changeVectorElementTypeToInteger ( ) const
inline
EVT EVT::getEVT ( Type Ty,
bool  HandleUnknown = false 
)
static

getEVT - Return the value type corresponding to the specified type.

This returns all pointers as iPTR. If HandleUnknown is true, unknown types are returned as Other, otherwise they are invalid.

This returns all pointers as MVT::iPTR. If HandleUnknown is true, unknown types are returned as Other, otherwise they are invalid.

Definition at line 309 of file ValueTypes.cpp.

References getBitWidth(), llvm::Type::getContext(), llvm::SequentialType::getElementType(), getIntegerVT(), llvm::SequentialType::getNumElements(), llvm::Type::getTypeID(), getVectorVT(), llvm::MVT::getVT(), llvm::Type::IntegerTyID, and llvm::Type::VectorTyID.

Referenced by llvm::ARMTargetLowering::allowTruncateForTailCall(), llvm::X86TargetLowering::allowTruncateForTailCall(), getMangledTypeStr(), llvm::FastISel::getRegForGEPIndex(), llvm::TargetLoweringBase::getValueType(), llvm::TargetLoweringBase::isExtFree(), isNoopBitcast(), llvm::HexagonTargetLowering::isTruncateFree(), and llvm::FastISel::selectBinaryOp().

std::string EVT::getEVTString ( ) const

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

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

"i32".

Definition at line 120 of file ValueTypes.cpp.

References 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::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::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(), getEVTString(), getMangledTypeStr(), llvm::CCState::getRemainingRegParmsForType(), and llvm::SDNode::print_types().

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

getFloatingPointVT - 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 55 of file ValueTypes.h.

References llvm::MVT::getFloatingPointVT().

Referenced by combineConcatVectorOfScalars(), lowerFP_TO_SINT_STORE(), and LowerVECTOR_SHUFFLE().

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

getHalfSizedIntegerVT - 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 293 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().

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

getPow2VectorType - Widens the length of the given vector EVT up to the nearest power of 2 and returns that type.

Definition at line 321 of file ValueTypes.h.

References getVectorElementType(), getVectorNumElements(), getVectorVT(), isPow2VectorType(), and llvm::Log2_32_Ceil().

Referenced by llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute().

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

getRoundIntegerType - 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 281 of file ValueTypes.h.

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

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

Definition at line 262 of file ValueTypes.h.

References getScalarType(), and getSizeInBits().

Referenced by llvm::TargetLowering::BuildSDIV(), canReduceVMulWidth(), canTreatAsByteVector(), combineAnd(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineLogicBlendIntoPBLENDV(), combineMaskedLoad(), combineMaskedStore(), combinePCMPAnd1(), combineSIntToFP(), combineStore(), combineToExtendVectorInReg(), combineVectorShift(), combineVSelectWithAllOnesOrZeros(), llvm::SelectionDAG::computeKnownBits(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::X86TargetLowering::ComputeNumSignBitsForTargetNode(), llvm::TargetLowering::expandMUL_LOHI(), FoldIntToFPToInt(), llvm::TargetLowering::getConstTrueVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::SystemZTargetLowering::getPreferredVectorAction(), llvm::PPCTargetLowering::getPreferredVectorAction(), llvm::TargetLowering::IncrementMemoryAddress(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), isREVMask(), llvm::ARMTargetLowering::isShuffleMaskLegal(), isVREVMask(), isVShiftLImm(), isVShiftRImm(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), LowerExtendedLoad(), llvm::R600TargetLowering::LowerFormalArguments(), lowerMSABitClearImm(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), performConcatVectorsCombine(), performDSPShiftCombine(), performExtendCombine(), performPostLD1Combine(), PerformSTORECombine(), PerformVDUPLANECombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::TargetLowering::SimplifyDemandedBits(), truncateVectorCompareWithPACKSS(), tryCombineToBSL(), tryLowerToSLI(), tryToFoldExtendOfConstant(), and WidenMaskArithmetic().

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

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

Definition at line 233 of file ValueTypes.h.

References getVectorElementType(), and isVector().

Referenced by llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), combineFMA(), combineFneg(), combineLoad(), combineMaskedLoad(), combineMaskedStore(), combineSelect(), combineSetCC(), combineShuffleOfScalars(), combineSIntToFP(), combineStore(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineUIntToFP(), CombineVMOVDRRCandidateWithVecOp(), llvm::SelectionDAG::EVTToAPFloatSemantics(), FoldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromPartsVector(), getEstimateRefinementSteps(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getLogicalNOT(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::SITargetLowering::getPreferredVectorAction(), llvm::NVPTXTargetLowering::getPreferredVectorAction(), getReciprocalOpName(), getScalarSizeInBits(), llvm::SDValue::getScalarValueSizeInBits(), llvm::SelectionDAG::getTruncStore(), llvm::isConstOrConstSplat(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AMDGPUTargetLowering::isFPImmLegal(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), LowerExtended1BitVectorLoad(), LowerExtendedLoad(), lowerMSASplatImm(), llvm::AMDGPUTargetLowering::LowerSIGN_EXTEND_INREG(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), PerformSTORECombine(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::AMDGPUTargetLowering::shouldCombineMemoryType(), llvm::AMDGPUTargetLowering::ShouldShrinkFPConstant(), llvm::TargetLowering::SimplifyDemandedBits(), and tryToFoldExtendOfConstant().

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

getSimpleVT - Return the SimpleValueType held in the specified simple EVT.

Definition at line 226 of file ValueTypes.h.

References assert(), and isSimple().

Referenced by AddCombineBUILD_VECTORToVPADDL(), llvm::MipsSETargetLowering::allowsMisalignedMemoryAccesses(), llvm::HexagonTargetLowering::allowsMisalignedMemoryAccesses(), llvm::ARMTargetLowering::allowsMisalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), changeVectorElementTypeToInteger(), combineVectorShift(), combineVectorSignBitsTruncation(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), createSplat(), EmitKTEST(), llvm::SelectionDAG::EVTToAPFloatSemantics(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), FindOptimalMemOpLowering(), llvm::SelectionDAG::FoldSetCC(), foldVectorXorShiftIntoCmp(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), getExtensionTo64Bits(), llvm::TargetLoweringBase::getLoadExtAction(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), llvm::AArch64TargetLowering::getPreferredVectorAction(), llvm::X86TargetLowering::getPreferredVectorAction(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), llvm::X86TargetLowering::getSetCCResultType(), llvm::SDValue::getSimpleValueType(), llvm::SDNode::getSimpleValueType(), llvm::TargetLoweringBase::getSimpleValueType(), llvm::TargetLoweringBase::getTruncStoreAction(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::SelectionDAG::getValueType(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::ISD::InputArg::InputArg(), insert128BitVector(), is32Bit(), isDivRemLibcallAvailable(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFPImmLegal(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), isLegalT1AddressImmediate(), isLegalT2AddressImmediate(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), llvm::TargetLoweringBase::isLoadBitCastBeneficial(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSupportedType(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTypeLegal(), isValidIndexedLoad(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), LowerExtended1BitVectorLoad(), llvm::HexagonTargetLowering::LowerEXTRACT_VECTOR(), llvm::SystemZTargetLowering::LowerFormalArguments(), LowerMSCATTER(), lowerRegToMasks(), llvm::HexagonTargetLowering::LowerVECTOR_SHIFT(), NarrowVector(), llvm::ISD::OutputArg::OutputArg(), performBitcastCombine(), performConcatVectorsCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performShiftToAllZeros(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectFNeg(), llvm::AVRDAGToDAGISel::selectIndexedLoad(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), llvm::TargetLowering::SimplifySetCC(), llvm::SelectionDAGBuilder::visitBitTestHeader(), WidenVector(), X86ChooseCmpImmediateOpcode(), X86ChooseCmpOpcode(), and XFormVExtractWithShuffleIntoLoad().

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

getSizeInBits - Return the size of the specified value type in bits.

Definition at line 256 of file ValueTypes.h.

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

Referenced by addRequiredExtensionForVectorMULL(), AddRequiredExtensionForVMULL(), llvm::StatepointLoweringState::allocateStackSlot(), llvm::SITargetLowering::allowsMisalignedMemoryAccesses(), llvm::X86TargetLowering::allowsMisalignedMemoryAccesses(), llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), bitsEq(), bitsGE(), bitsGT(), bitsLE(), bitsLT(), llvm::X86TargetLowering::BuildFILD(), BuildVectorFromScalar(), changeTypeToInteger(), clampDynamicVectorIndex(), combineAnd(), CombineBaseUpdate(), combineBasicSADPattern(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtractVectorElt(), combineIntegerAbs(), combineLoopSADPattern(), combineMaskedLoad(), combineMaskedStore(), combineOr(), combinePCMPAnd1(), combineSext(), combineShiftRightAlgebraic(), combineSignExtendInReg(), combineStore(), combineToExtendVectorInReg(), combineVectorCompareAndMaskUnaryOp(), combineVectorTruncation(), combineVectorTruncationWithPACKUS(), llvm::SelectionDAG::computeKnownBits(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), createPSADBW(), detectAVGPattern(), EltsFromConsecutiveLoads(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), EmitVectorComparison(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL_LOHI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), extractSubVector(), FindMemType(), FindOptimalMemOpLowering(), foldBitcastedFPLogic(), foldVectorXorShiftIntoCmp(), foldXorTruncShiftIntoCmp(), genConstMult(), GeneratePerfectShuffle(), GenerateTBL(), llvm::SelectionDAG::getAnyExtendVectorInReg(), llvm::SelectionDAG::getConstant(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getEVTString(), getExtensionTo64Bits(), getExtFactor(), getHalfSizedIntegerVT(), getLeftShift(), getLoadStackGuard(), llvm::SelectionDAG::getLogicalNOT(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::TargetLoweringBase::getNumRegisters(), getOnesVector(), llvm::SITargetLowering::getRegisterByName(), getRoundIntegerType(), getScalarSizeInBits(), llvm::SDValue::getScalarValueSizeInBits(), llvm::SelectionDAG::getSignExtendVectorInReg(), getStoreSize(), getTargetConstantBitsFromNode(), getTestBitOperand(), llvm::SDValue::getValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), llvm::TargetLowering::getVectorElementPointer(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::SelectionDAG::getZeroExtendInReg(), llvm::SelectionDAG::getZeroExtendVectorInReg(), llvm::AArch64TargetLowering::hasPairedLoad(), llvm::TargetLowering::IncrementMemoryAddress(), insertSubVector(), isBitfieldDstMask(), isBitfieldExtractOpFromSExtInReg(), isBitfieldExtractOpFromShr(), isBitfieldPositioningOp(), isByteSized(), isConcatMask(), isConditionalZeroOrAllOnes(), isConsecutiveLSLoc(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::ISD::isConstantSplatVector(), isI24(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), IsMulWideOperandDemotable(), llvm::AMDGPUTargetLowering::isNarrowingProfitable(), isRound(), llvm::AArch64TargetLowering::isShuffleMaskLegal(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::AMDGPUTargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::PPCTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), isU24(), llvm::AArch64TargetLowering::isZExtFree(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), LowerCTTZ(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), LowerExtendedLoad(), llvm::HexagonTargetLowering::LowerEXTRACT_SUBVECTOR_HVX(), llvm::HexagonTargetLowering::LowerEXTRACT_VECTOR(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerINSERT_VECTOR(), lowerMSASplatImm(), llvm::LanaiTargetLowering::LowerSHL_PARTS(), LowerTruncatingStore(), llvm::AMDGPUTargetLowering::LowerUDIVREM64(), LowerVAARG(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerX86CmpEqZeroToCtlzSrl(), llvm::ARMTargetLowering::LowerXConstraint(), NormalizeBuildVector(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), performANDCombine(), PerformARMBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), performIntegerAbsCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), performNEONPostLDSTCombine(), performORCombine(), performSelectCombine(), performSRACombine(), PerformSTORECombine(), performVectorCompareAndMaskUnaryOpCombine(), performVSelectCombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceVMULWidth(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceZeroVectorStore(), resolveBuildVector(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FastISel::selectFNeg(), llvm::HexagonTargetLowering::shouldExpandBuildVectorWithShuffles(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyI24(), llvm::TargetLowering::SimplifySetCC(), splitStores(), splitStoreSplat(), truncateVectorCompareWithPACKSS(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), tryCombineToEXTR(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), UnpackFromArgumentSlot(), VerifySDNode(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and widenIntegerVectorElementType().

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

getStoreSizeInBits - Return the number of bits overwritten by a store of the specified value type.

Definition at line 274 of file ValueTypes.h.

References getStoreSize().

Referenced by llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), EltsFromConsecutiveLoads(), llvm::AMDGPUTargetLowering::getEquivalentMemType(), llvm::NVPTXTargetLowering::LowerCall(), and llvm::AMDGPUTargetLowering::shouldReduceLoadWidth().

Type * EVT::getTypeForEVT ( LLVMContext Context) const

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 204 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::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::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(), canFoldInAddressingMode(), llvm::SelectionDAG::CreateStackTemporary(), llvm::SelectionDAG::expandVAArg(), getDivRemArgList(), llvm::SelectionDAG::getEVTAlignment(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), getMemsetStringVal(), llvm::TargetLoweringBase::getValueType(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerFPOWI(), LowerFSINCOS(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::TargetLowering::makeLibCall(), llvm::PPCTargetLowering::PerformDAGCombine(), ReplaceLoadVector(), and XFormVExtractWithShuffleIntoLoad().

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

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

Definition at line 239 of file ValueTypes.h.

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

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineVUZPToVPADDL(), canReduceVMulWidth(), CombineBaseUpdate(), combineBasicSADPattern(), combineExtractVectorElt(), combineLoopSADPattern(), combineMaskedLoad(), combineMaskedStore(), combineSelect(), combineShuffle(), combineShuffleOfConcatUndef(), combineVectorTruncation(), combineVectorTruncationWithPACKUS(), combineVSelectWithAllOnesOrZeros(), ComputePTXValueVTs(), detectAVGPattern(), detectZextAbsDiff(), EmitVectorComparison(), extractSubVector(), llvm::SelectionDAG::ExtractVectorElements(), FindMemType(), foldVectorXorShiftIntoCmp(), GeneratePerfectShuffle(), GenerateTBL(), getCopyFromPartsVector(), getCopyToPartsVector(), getEVTString(), getExtFactor(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), getOneTrueElt(), getParamsForOneTrueMaskedElt(), getPow2VectorType(), llvm::X86TargetLowering::getPreferredVectorAction(), getScalarType(), llvm::X86TargetLowering::getSetCCResultType(), getShuffleScalarElt(), llvm::SelectionDAG::getSplatBuildVector(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::TargetLowering::getVectorElementPointer(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVPermMask(), insert128BitVector(), insertSubVector(), llvm::ISD::isConstantSplatVector(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), llvm::NVPTXTargetLowering::LowerCall(), LowerCTPOP(), LowerCTTZ(), llvm::HexagonTargetLowering::LowerEXTRACT_VECTOR(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerINSERT_VECTOR(), lowerMSACopyIntr(), llvm::NVPTXTargetLowering::LowerReturn(), LowerTruncatingStore(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerVectorShuffleAsTruncBroadcast(), LowerVSETCC(), NarrowVector(), NormalizeBuildVector(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), PerformInsertEltCombine(), performPostLD1Combine(), PerformVDUPCombine(), performVSelectCombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceMaskedLoadToScalarLoad(), reduceMaskedStoreToScalarStore(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceZeroVectorStore(), llvm::HexagonTargetLowering::shouldExpandBuildVectorWithShuffles(), splitStores(), tryBuildVectorByteMask(), tryFormConcatFromShuffle(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), widenIntegerVectorElementType(), WidenMaskArithmetic(), and WidenVector().

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

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

Definition at line 248 of file ValueTypes.h.

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

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineVUZPToVPADDL(), AddNodeIDCustom(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), buildScalarToVector(), changeVectorElementTypeToInteger(), clampDynamicVectorIndex(), CombineBaseUpdate(), combineBasicSADPattern(), combineConcatVectorOfExtracts(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineShuffle(), combineShuffleOfConcatUndef(), combineShuffleOfScalars(), combineSIntToFP(), combineUIntToFP(), combineVectorTruncation(), CombineVMOVDRRCandidateWithVecOp(), llvm::SelectionDAG::computeKnownBits(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), ComputePTXValueVTs(), ConvertSelectToConcatVector(), detectAVGPattern(), ExpandBITCAST(), extractSubVector(), llvm::SelectionDAG::ExtractVectorElements(), FoldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), llvm::SelectionDAG::getAnyExtendVectorInReg(), getBuildVectorSplat(), llvm::SelectionDAG::getConstant(), getCopyFromPartsVector(), getCopyToPartsVector(), getEVTString(), llvm::SelectionDAG::getLoad(), llvm::ShuffleVectorSDNode::getMask(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedScatter(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), getOneTrueElt(), getPow2VectorType(), llvm::SITargetLowering::getPreferredVectorAction(), llvm::TargetLoweringBase::getPreferredVectorAction(), llvm::NVPTXTargetLowering::getPreferredVectorAction(), llvm::X86TargetLowering::getPreferredVectorAction(), llvm::SITargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), getShuffleScalarElt(), llvm::SelectionDAG::getSignExtendVectorInReg(), llvm::SelectionDAG::getSplatBuildVector(), llvm::ShuffleVectorSDNode::getSplatIndex(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::SelectionDAG::getTruncStore(), llvm::SelectionDAG::getVectorShuffle(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVPermMask(), llvm::SelectionDAG::getZeroExtendVectorInReg(), hasNormalLoadOperand(), llvm::TargetLowering::IncrementMemoryAddress(), isAllConstantBuildVector(), isConcatMask(), isEXTMask(), llvm::ARMTargetLowering::isExtractSubvectorCheap(), llvm::X86TargetLowering::isExtractSubvectorCheap(), isHorizontalBinOp(), isNonZeroElementsInOrder(), isPow2VectorType(), isReverseMask(), isREVMask(), llvm::AArch64TargetLowering::isShuffleMaskLegal(), llvm::ARMTargetLowering::isShuffleMaskLegal(), isSingletonEXTMask(), isSingletonVEXTMask(), llvm::ShuffleVectorSDNode::isSplatMask(), isTRN_v_undef_Mask(), isTRNMask(), 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(), llvm::NVPTXTargetLowering::LowerCall(), LowerCONCAT_VECTORSvXi1(), llvm::AMDGPUTargetLowering::LowerEXTRACT_SUBVECTOR(), llvm::HexagonTargetLowering::LowerEXTRACT_SUBVECTOR_HVX(), llvm::HexagonTargetLowering::LowerEXTRACT_VECTOR(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerINSERT_VECTOR(), LowerINTRINSIC_W_CHAIN(), lowerMSASplatZExt(), llvm::SITargetLowering::LowerReturn(), llvm::NVPTXTargetLowering::LowerReturn(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorAllZeroTest(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), LowerVSETCC(), matchBinOpReduction(), NarrowVector(), partitionShuffleOfConcats(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), PerformBUILD_VECTORCombine(), performConcatVectorsCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), PerformInsertEltCombine(), performNEONPostLDSTCombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVECTOR_SHUFFLECombine(), performVSelectCombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceVMULWidth(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), replaceSplatVectorStore(), replaceZeroVectorStore(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), simplifyShuffleOperandRecursively(), simplifyShuffleOperands(), splitStores(), llvm::SelectionDAG::SplitVector(), llvm::AMDGPUTargetLowering::SplitVectorStore(), truncateVectorCompareWithPACKSS(), tryBuildVectorShuffle(), tryCombineToBSL(), tryFormConcatFromShuffle(), tryMatchAcrossLaneShuffleForReduction(), tryToFoldExtendOfConstant(), VerifySDNode(), widenIntegerVectorElementType(), WidenVector(), and XFormVExtractWithShuffleIntoLoad().

static EVT llvm::EVT::getVectorVT ( LLVMContext Context,
EVT  VT,
unsigned  NumElements 
)
inlinestatic

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

Definition at line 70 of file ValueTypes.h.

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

Referenced by AddCombineVUZPToVPADDL(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), BuildVectorFromScalar(), combineConcatVectorOfScalars(), combineLoad(), combineMaskedLoad(), combineMaskedStore(), combineSIntToFP(), combineStore(), combineToExtendVectorInReg(), combineUIntToFP(), combineVectorTruncation(), CombineVMOVDRRCandidateWithVecOp(), extractSubVector(), llvm::SelectionDAG::getConstant(), llvm::AMDGPUTargetLowering::getEquivalentMemType(), getEVT(), getMemsetStringVal(), getPow2VectorType(), llvm::SITargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), getUniformBase(), llvm::TargetLoweringBase::getValueType(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), LowerAsSplatVectorLoad(), LowerBITCAST(), llvm::NVPTXTargetLowering::LowerCall(), LowerExtendedLoad(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerReturn(), LowerVECTOR_SHUFFLE(), LowerVSETCC(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), performExtendCombine(), PerformInsertEltCombine(), performSelectCombine(), PerformSTORECombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceVMULWidth(), llvm::X86TargetLowering::ReplaceNodeResults(), splitStores(), truncateVectorCompareWithPACKSS(), tryFormConcatFromShuffle(), llvm::SelectionDAG::UnrollVectorOp(), and widenIntegerVectorElementType().

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

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

Definition at line 168 of file ValueTypes.h.

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

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

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

Definition at line 138 of file ValueTypes.h.

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

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

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

Definition at line 173 of file ValueTypes.h.

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

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

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

Definition at line 143 of file ValueTypes.h.

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

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

isByteSized - Return true if the bit size is a multiple of 8.

Definition at line 183 of file ValueTypes.h.

References getSizeInBits().

Referenced by llvm::HexagonTargetLowering::LowerEXTRACT_SUBVECTOR_HVX(), llvm::TargetLowering::scalarizeVectorLoad(), and llvm::AMDGPUTargetLowering::shouldCombineMemoryType().

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

isFloatingPoint - Return true if this is a FP, or a vector FP type.

Definition at line 118 of file ValueTypes.h.

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

Referenced by combineConcatVectorOfScalars(), combineSelect(), combineShuffle(), convertIntLogicToFPLogic(), createFPCmp(), EmitCMP(), emitComparison(), emitConditionalComparison(), emitConjunctionDisjunctionTreeRec(), EmitVectorComparison(), llvm::PPCTargetLowering::enableAggressiveFMAFusion(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), FindOptimalMemOpLowering(), foldBitcastedFPLogic(), llvm::TargetLoweringBase::getBooleanContents(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstantFP(), getCopyFromParts(), getCopyToParts(), llvm::SelectionDAG::getNode(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::AArch64TargetLowering::hasPairedLoad(), llvm::AMDGPUTargetLowering::isFAbsFree(), llvm::TargetLoweringBase::isFAbsFree(), isFNEG(), llvm::TargetLoweringBase::isFNegFree(), llvm::PPCTargetLowering::isFPExtFree(), llvm::TargetLoweringBase::isFPExtFree(), llvm::X86TargetLowering::isMultiStoresCheaperThanBitsMerge(), llvm::ConstantFPSDNode::isValueValidForType(), lowerVectorSETCC(), LowerVSETCC(), llvm::ARMTargetLowering::LowerXConstraint(), llvm::X86TargetLowering::LowerXConstraint(), llvm::TargetLowering::LowerXConstraint(), NormalizeBuildVector(), PerformARMBUILD_VECTORCombine(), replaceSplatVectorStore(), llvm::TargetLowering::SimplifyDemandedBits(), and VerifySDNode().

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

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

Definition at line 123 of file ValueTypes.h.

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

Referenced by AddCombineBUILD_VECTORToVPADDL(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), combineConcatVectorOfScalars(), combineIntegerAbs(), combineShiftRightAlgebraic(), combineShuffle(), combineShuffleOfScalars(), combineVSelectWithAllOnesOrZeros(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), EltsFromConsecutiveLoads(), emitConjunctionDisjunctionTreeRec(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), llvm::SelectionDAG::FoldSetCC(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstant(), getCopyFromParts(), getCopyToParts(), getEVTString(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getMemcpyLoadsAndStores(), getMemsetStringVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getRegisterType(), llvm::GetReturnInfo(), getRoundIntegerType(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::SelectionDAG::getSplatBuildVector(), llvm::SelectionDAG::getTruncStore(), llvm::AArch64TargetLowering::hasPairedLoad(), llvm::X86TargetLowering::isMultiStoresCheaperThanBitsMerge(), isSupportedType(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::AArch64TargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::PPCTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), LowerBR_CC(), llvm::NVPTXTargetLowering::LowerCall(), LowerMUL(), LowerSELECT_CC(), LowerVectorBroadcast(), llvm::TargetLowering::LowerXConstraint(), OptimizeConditionalInDecrement(), OptimizeNoopCopyExpression(), PerformADDCombineWithOperands(), llvm::R600TargetLowering::PerformDAGCombine(), performIntegerAbsCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), performSELECTCombine(), performVSELECTCombine(), performXORCombine(), llvm::TargetLowering::SimplifySetCC(), VerifySDNode(), and XFormVExtractWithShuffleIntoLoad().

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

isOverloaded - Return true if this is an overloaded type for TableGen.

Definition at line 178 of file ValueTypes.h.

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

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

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

Definition at line 314 of file ValueTypes.h.

References getVectorNumElements().

Referenced by getPow2VectorType().

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

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

Definition at line 188 of file ValueTypes.h.

References getSizeInBits().

Referenced by llvm::TargetLowering::SimplifySetCC().

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

isScalarInteger - Return true if this is an integer, but not a vector.

Definition at line 128 of file ValueTypes.h.

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

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

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

Definition at line 107 of file ValueTypes.h.

References llvm::MVT::SimpleTy.

Referenced by llvm::R600TargetLowering::allowsMisalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), changeTypeToInteger(), changeVectorElementTypeToInteger(), combineBasicSADPattern(), combineLoopSADPattern(), combineVectorSignBitsTruncation(), combineVectorTruncation(), detectAVGPattern(), foldVectorXorShiftIntoCmp(), llvm::AMDGPUTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), getExtensionTo64Bits(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), getRawBits(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), llvm::X86TargetLowering::getSetCCResultType(), getSimpleVT(), getSizeInBits(), llvm::SelectionDAG::getValueType(), getVectorElementType(), getVectorNumElements(), llvm::AArch64TargetLowering::hasPairedLoad(), is1024BitVector(), is128BitVector(), is16BitVector(), is2048BitVector(), is256BitVector(), is32BitVector(), is512BitVector(), is64BitVector(), isDivRemLibcallAvailable(), isExtended(), isFloatingPoint(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFPImmLegal(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isInteger(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::TargetLoweringBase::isLoadBitCastBeneficial(), isScalarInteger(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSupportedType(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTypeLegal(), isVector(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), llvm::PPCTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), PerformVCVTCombine(), PerformVDIVCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), and llvm::TargetLowering::SimplifyDemandedBits().

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

isVector - Return true if this is a vector value type.

Definition at line 133 of file ValueTypes.h.

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

Referenced by llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), canTreatAsByteVector(), changeTypeToInteger(), combineAnd(), combineConcatVectorOfScalars(), combineFMinNumFMaxNum(), combineLoopSADPattern(), combineMul(), combineSelect(), combineShiftLeft(), combineShiftRightAlgebraic(), combineShuffle(), combineSignExtendInReg(), combineSIntToFP(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineUIntToFP(), combineVectorCompareAndMaskUnaryOp(), combineVectorSignBitsTruncation(), combineVectorTruncation(), CombineVMOVDRRCandidateWithVecOp(), combineVSelectWithAllOnesOrZeros(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), ComputePTXValueVTs(), detectAVGPattern(), ExpandBITCAST(), llvm::TargetLowering::expandMUL_LOHI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), FindOptimalMemOpLowering(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldVectorXorShiftIntoCmp(), llvm::SelectionDAG::getAnyExtendVectorInReg(), llvm::TargetLoweringBase::getBooleanContents(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getEVTString(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getMemcpyLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), getNullFPConstForNullVal(), llvm::TargetLoweringBase::getNumRegisters(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), getReciprocalOpName(), llvm::TargetLoweringBase::getRegisterType(), getRoundIntegerType(), getScalarType(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAG::getSelect(), llvm::SelectionDAG::getSetCC(), llvm::R600TargetLowering::getSetCCResultType(), llvm::AVRTargetLowering::getSetCCResultType(), llvm::SparcTargetLowering::getSetCCResultType(), llvm::SITargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::MipsTargetLowering::getSetCCResultType(), llvm::ARMTargetLowering::getSetCCResultType(), llvm::AArch64TargetLowering::getSetCCResultType(), llvm::SystemZTargetLowering::getSetCCResultType(), llvm::TargetLoweringBase::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), llvm::SelectionDAG::getShiftAmountOperand(), llvm::TargetLoweringBase::getShiftAmountTy(), getShuffleScalarElt(), llvm::SelectionDAG::getSignExtendVectorInReg(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeToExpandTo(), getUniformBase(), getVectorElementType(), getVectorNumElements(), llvm::SelectionDAG::getZeroExtendInReg(), llvm::SelectionDAG::getZeroExtendVectorInReg(), getZeroVector(), llvm::X86TargetLowering::hasBitPreservingFPLogic(), llvm::BuildVectorSDNode::isConstantSplat(), isHorizontalBinOp(), llvm::AArch64TargetLowering::isIntDivCheap(), llvm::X86TargetLowering::isIntDivCheap(), isSupportedType(), llvm::AArch64TargetLowering::isTruncateFree(), isVShiftLImm(), isVShiftRImm(), llvm::AArch64TargetLowering::isZExtFree(), llvm::TargetLowering::LowerCallTo(), LowerCTTZ(), LowerExtended1BitVectorLoad(), LowerExtendedLoad(), llvm::HexagonTargetLowering::LowerEXTRACT_SUBVECTOR_HVX(), llvm::HexagonTargetLowering::LowerEXTRACT_VECTOR(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerINSERT_VECTOR(), llvm::ARMTargetLowering::LowerOperation(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::HexagonTargetLowering::LowerSETCC(), LowerShift(), LowerTruncatingStore(), LowerVectorBroadcast(), lowerVectorShuffleAsTruncBroadcast(), llvm::ARMTargetLowering::LowerXConstraint(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), PerformADDCombineWithOperands(), performBitcastCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performExtendCombine(), performFDivCombine(), performFpToIntCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), PerformLOADCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performMULCombine(), llvm::AMDGPUTargetLowering::performMulhsCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), PerformORCombine(), performSelectCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVectorCompareAndMaskUnaryOpCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::AMDGPUTargetLowering::shouldCombineMemoryType(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), splitStores(), tryCombineToBSL(), tryFoldToZero(), tryLowerToSLI(), tryMatchAcrossLaneShuffleForReduction(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), VerifyVectorType(), and XFormVExtractWithShuffleIntoLoad().

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

Definition at line 44 of file ValueTypes.h.

References llvm::MVT::SimpleTy.

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

Definition at line 41 of file ValueTypes.h.

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 307 of file ValueTypes.h.

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


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