LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Static Public Member Functions | List of all members
llvm::EVT Struct Reference

#include <ValueTypes.h>

Classes

struct  compareRawBits
 

Public Member Functions

 EVT ()
 
 EVT (MVT::SimpleValueType SVT)
 
 EVT (MVT S)
 
bool operator== (EVT VT) const
 
bool operator!= (EVT VT) const
 
EVT changeVectorElementTypeToInteger () const
 
bool isSimple () const
 
bool isExtended () const
 
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 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 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
 
EVT getScalarType () const
 
EVT getVectorElementType () const
 
unsigned getVectorNumElements () const
 
unsigned getSizeInBits () const
 getSizeInBits - Return the size of the specified value type in bits. More...
 
unsigned getStoreSize () const
 
unsigned getStoreSizeInBits () const
 
EVT getRoundIntegerType (LLVMContext &Context) const
 
EVT getHalfSizedIntegerVT (LLVMContext &Context) const
 
bool isPow2VectorType () const
 isPow2VectorType - Returns true if the given vector is a power of 2. More...
 
EVT getPow2VectorType (LLVMContext &Context) const
 
std::string getEVTString () const
 getEVTString - This function returns value type as a string, e.g. "i32". More...
 
TypegetTypeForEVT (LLVMContext &Context) const
 
intptr_t getRawBits () const
 

Static Public Member Functions

static EVT getFloatingPointVT (unsigned BitWidth)
 
static EVT getIntegerVT (LLVMContext &Context, unsigned BitWidth)
 
static EVT getVectorVT (LLVMContext &Context, EVT VT, unsigned NumElements)
 
static EVT getEVT (Type *Ty, bool HandleUnknown=false)
 

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

Constructor & Destructor Documentation

llvm::EVT::EVT ( )
inline

Definition at line 582 of file ValueTypes.h.

Referenced by getHalfSizedIntegerVT(), and getRoundIntegerType().

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

Definition at line 584 of file ValueTypes.h.

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

Definition at line 585 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 717 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 729 of file ValueTypes.h.

References getSizeInBits().

Referenced by 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::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.

getEVT - Return the value type corresponding to the specified type. This returns all pointers as MVT::iPTR. If HandleUnknown is true, unknown types are returned as Other, otherwise they are invalid.

Definition at line 275 of file ValueTypes.cpp.

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

Referenced by llvm::ARMTargetLowering::allowTruncateForTailCall(), llvm::X86TargetLowering::allowTruncateForTailCall(), llvm::Intrinsic::getName(), llvm::FastISel::getRegForGEPIndex(), llvm::TargetLoweringBase::getValueType(), INITIALIZE_PASS(), isNoopBitcast(), and llvm::HexagonTargetLowering::isTruncateFree().

std::string EVT::getEVTString ( ) const

getEVTString - 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 106 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::v16f32, llvm::MVT::v16i1, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i64, llvm::MVT::v16i8, llvm::MVT::v1f32, llvm::MVT::v1f64, llvm::MVT::v1i16, llvm::MVT::v1i32, llvm::MVT::v1i64, llvm::MVT::v1i8, 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::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::v64i1, 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::Hexagon_CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallOperands(), llvm::MipsTargetLowering::MipsCC::analyzeCallOperands(), llvm::Hexagon_CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeCallResult(), llvm::Hexagon_CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeFormalArguments(), llvm::MipsTargetLowering::MipsCC::analyzeFormalArguments(), llvm::Hexagon_CCState::AnalyzeReturn(), llvm::CCState::AnalyzeReturn(), getEVTString(), llvm::Intrinsic::getName(), 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 601 of file ValueTypes.h.

References llvm::MVT::getFloatingPointVT().

Referenced by 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 812 of file ValueTypes.h.

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

Referenced by ExpandUnalignedStore().

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

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

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

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

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

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

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

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

Definition at line 749 of file ValueTypes.h.

References isSimple().

Referenced by AddCombineToVPADDL(), llvm::MipsSETargetLowering::allowsUnalignedMemoryAccesses(), llvm::ARMTargetLowering::allowsUnalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsUnalignedMemoryAccesses(), llvm::X86TargetLowering::BuildFILD(), changeVectorElementTypeToInteger(), llvm::SelectionDAG::EVTToAPFloatSemantics(), FindOptimalMemOpLowering(), llvm::SelectionDAG::FoldSetCC(), getCmpXChgOpcode(), getExtensionTo64Bits(), getLoadOpcode(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), getPseudoCMOVOpc(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), llvm::SDValue::getSimpleValueType(), llvm::TargetLoweringBase::getSimpleValueType(), llvm::SDNode::getSimpleValueType(), getTargetVShiftNode(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::SelectionDAG::getValueType(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::Hexagon_CCState::HandleByVal(), llvm::ISD::InputArg::InputArg(), is32Bit(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AMDGPUTargetLowering::isFPImmLegal(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), isLegalT1AddressImmediate(), isLegalT2AddressImmediate(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), llvm::TargetLoweringBase::isLoadExtLegal(), llvm::X86TargetLowering::isShuffleMaskLegal(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTruncStoreLegal(), llvm::TargetLoweringBase::isTypeLegal(), isValidIndexedLoad(), llvm::X86TargetLowering::isVectorClearMaskLegal(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), Lower256IntArith(), LowerCMP_SWAP(), llvm::SystemZTargetLowering::LowerFormalArguments(), LowerScalarVariableShift(), LowerShift(), LowerZERO_EXTEND_AVX512(), matchIntegerMINMAX(), llvm::ISD::OutputArg::OutputArg(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), llvm::AMDGPUTargetLowering::ShouldShrinkFPConstant(), llvm::TargetLowering::SimplifySetCC(), llvm::SelectionDAGBuilder::visitBitTestHeader(), X86ChooseCmpImmediateOpcode(), X86ChooseCmpOpcode(), and XFormVExtractWithShuffleIntoLoad().

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

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

Definition at line 779 of file ValueTypes.h.

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

Referenced by AddRequiredExtensionForVMULL(), adjustForTestUnderMask(), bitsEq(), bitsGE(), bitsGT(), bitsLE(), bitsLT(), llvm::X86TargetLowering::BuildFILD(), llvm::TargetLowering::BuildSDIV(), BuildVectorFromScalar(), CalculateStackSlotSize(), CalculateTailCallArgDest(), CombineBaseUpdate(), llvm::SelectionDAG::ComputeMaskedBits(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::X86TargetLowering::ComputeNumSignBitsForTargetNode(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), EltsFromConsecutiveLoads(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), ExpandUnalignedLoad(), ExpandUnalignedStore(), ExtractSubVector(), findMaskedBFI(), FindMemType(), FindOptimalMemOpLowering(), genConstMult(), llvm::SelectionDAG::getConstant(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getEVTString(), getExtensionTo64Bits(), getHalfSizedIntegerVT(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::TargetLoweringBase::getNumRegisters(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), llvm::NVPTXTargetLowering::getPrototype(), getRoundIntegerType(), getStoreSize(), getTargetVShiftByConstNode(), llvm::TargetLoweringBase::getTypeConversion(), llvm::SDValue::getValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::SelectionDAG::getZeroExtendInReg(), InsertSubVector(), llvm::ISD::isBuildVectorAllOnes(), isByteSized(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), isConsecutiveLS(), llvm::BuildVectorSDNode::isConstantSplat(), isConstantSplatVector(), isExtendedBUILD_VECTOR(), llvm::AMDGPUTargetLowering::isLoadBitCastBeneficial(), isMOVLMask(), isREVMask(), isRound(), llvm::ARMTargetLowering::isShuffleMaskLegal(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSimpleShift(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), isVREVMask(), isVShiftLImm(), isVShiftRImm(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), llvm::AArch64TargetLowering::LowerBUILD_VECTOR(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), LowerCTLZ(), LowerCTLZ_ZERO_UNDEF(), LowerCTTZ(), LowerEXTRACT_VECTOR_ELT(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), LowerIntVSETCC_AVX512(), lowerMSABitClearImm(), llvm::SITargetLowering::LowerOperation(), llvm::NVPTXTargetLowering::LowerReturn(), LowerSDIV(), LowerVAARG(), llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), LowerVectorBroadcast(), LowerVSETCC(), MatchingStackOffset(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformARMBUILD_VECTORCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDSPShiftCombine(), PerformEXTRACT_VECTOR_ELTCombine(), performIntegerAbsCombine(), PerformIntrinsicCombine(), PerformLOADCombine(), performORCombine(), PerformOrCombine(), PerformSELECTCombine(), PerformSExtCombine(), performShiftToAllZeros(), PerformSIGN_EXTEND_INREGCombine(), performSRACombine(), PerformSRACombine(), PerformSTORECombine(), PerformVDUPLANECombine(), PerformVZEXT_MOVLCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::SelectionDAG::SignBitIsZero(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), tryCombineToBFI(), tryCombineToEXTR(), tryCombineToLargerBFI(), ValueHasExactlyOneBitSet(), VerifyNodeCommon(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and WidenMaskArithmetic().

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

References getStoreSize().

Referenced by adjustSubwordCmp(), llvm::SelectionDAG::CreateStackTemporary(), and llvm::NVPTXTargetLowering::LowerCall().

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 180 of file ValueTypes.cpp.

References 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::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::v16f32, llvm::MVT::v16i1, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i64, llvm::MVT::v16i8, llvm::MVT::v1f32, llvm::MVT::v1f64, llvm::MVT::v1i16, llvm::MVT::v1i32, llvm::MVT::v1i64, llvm::MVT::v1i8, 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::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::v64i1, 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 canFoldInAddressingMode(), llvm::SelectionDAG::CreateStackTemporary(), getMemsetStringVal(), llvm::TargetLoweringBase::getValueType(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::AArch64TargetLowering::LowerF128ToCall(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerFSINCOS(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::TargetLowering::makeLibCall(), llvm::PPCTargetLowering::PerformDAGCombine(), and XFormVExtractWithShuffleIntoLoad().

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

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

Definition at line 762 of file ValueTypes.h.

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

Referenced by AddCombineToVPADDL(), ComputePTXValueVTs(), EltsFromConsecutiveLoads(), ExtractSubVector(), FindMemType(), GeneratePerfectShuffle(), getCopyFromPartsVector(), getCopyToPartsVector(), getEVTString(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), getPow2VectorType(), getScalarType(), getShuffleScalarElt(), llvm::SelectionDAG::GetSplitDestVTs(), getTargetVShiftByConstNode(), getTargetVShiftNode(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), InsertSubVector(), llvm::ISD::isBuildVectorAllOnes(), llvm::BuildVectorSDNode::isConstantSplat(), isConstantSplatVector(), isExtendedBUILD_VECTOR(), isMOVLMask(), isREVMask(), llvm::ARMTargetLowering::isShuffleMaskLegal(), isVREVMask(), isVShiftLImm(), isVShiftRImm(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), Lower256IntArith(), llvm::AArch64TargetLowering::LowerBUILD_VECTOR(), llvm::NVPTXTargetLowering::LowerCall(), LowerCTPOP(), LowerEXTRACT_VECTOR_ELT(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerIntVSETCC_AVX512(), lowerMSABitClearImm(), lowerMSACopyIntr(), llvm::NVPTXTargetLowering::LowerReturn(), LowerScalarVariableShift(), LowerSDIV(), LowerShift(), llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), LowerVSETCC(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), performDSPShiftCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformInsertEltCombine(), PerformIntrinsicCombine(), PerformLOADCombine(), PerformOrCombine(), PerformSELECTCombine(), performShiftToAllZeros(), PerformShuffleCombine(), PerformSTORECombine(), PerformVDUPLANECombine(), PerformVZEXT_MOVLCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), llvm::SelectionDAG::UnrollVectorOp(), and VerifyNodeCommon().

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

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

Definition at line 771 of file ValueTypes.h.

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

Referenced by AddCombineToVPADDL(), AddNodeIDCustom(), llvm::X86TargetLowering::BuildFILD(), BuildSplatI(), changeVectorElementTypeToInteger(), CombineBaseUpdate(), ComputePTXValueVTs(), ExtractSubVector(), getBuildVectorSplat(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromPartsVector(), getCopyToPartsVector(), getEVTString(), getGatherNode(), llvm::SelectionDAG::getLoad(), llvm::ShuffleVectorSDNode::getMask(), getMemsetStringVal(), getMGatherNode(), getMOVL(), getMScatterNode(), llvm::SelectionDAG::getNode(), getPow2VectorType(), getScatterNode(), llvm::SITargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), getShuffleScalarElt(), llvm::ShuffleVectorSDNode::getSplatIndex(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeConversion(), llvm::SelectionDAG::getVectorShuffle(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), hasNormalLoadOperand(), isConstVecPow2(), llvm::AArch64TargetLowering::isKnownShuffleVector(), isMOVLMask(), isPermuteMask(), isPow2VectorType(), isReverseMask(), isREVMask(), isShuffleHigh128VectorInsertLow(), isShuffleLow128VectorInsertHigh(), llvm::ARMTargetLowering::isShuffleMaskLegal(), isSingletonVEXTMask(), llvm::ShuffleVectorSDNode::isSplatMask(), isVEXTMask(), isVREVMask(), isVTRN_v_undef_Mask(), isVTRNMask(), isVUZP_v_undef_Mask(), isVUZPMask(), isVZIP_v_undef_Mask(), isVZIPMask(), isZeroShuffle(), Lower256IntArith(), llvm::AArch64TargetLowering::LowerBUILD_VECTOR(), llvm::NVPTXTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerFormalArguments(), lowerMSASplatZExt(), llvm::NVPTXTargetLowering::LowerReturn(), LowerScalarImmediateShift(), LowerScalarVariableShift(), LowerSDIV(), LowerShift(), llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorAllZeroTest(), partitionShuffleOfConcats(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformInsertEltCombine(), PerformSELECTCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVECTOR_SHUFFLECombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::SelectionDAG::SplitVector(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), VerifyNodeCommon(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().

static EVT llvm::EVT::getVectorVT ( LLVMContext Context,
EVT  VT,
unsigned  NumElements 
)
inlinestatic
bool llvm::EVT::is1024BitVector ( ) const
inline

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

Definition at line 696 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 666 of file ValueTypes.h.

References llvm::MVT::is16BitVector(), 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 671 of file ValueTypes.h.

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

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

is512BitVector - Return true if this is a 512-bit vector type.

Definition at line 691 of file ValueTypes.h.

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

Referenced by Extract128BitVector(), Extract256BitVector(), getZeroVector(), and LowerVSETCC().

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

References getSizeInBits().

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

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

Definition at line 646 of file ValueTypes.h.

References isSimple().

Referenced by llvm::TargetLoweringBase::getOperationAction(), getTypeForEVT(), and llvm::SelectionDAG::getValueType().

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

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

Definition at line 656 of file ValueTypes.h.

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

Referenced by AddCombineToVPADDL(), llvm::SelectionDAG::ComputeNumSignBits(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::FoldSetCC(), llvm::SelectionDAG::getConstant(), getCopyFromParts(), getCopyToParts(), getEVTString(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getMemcpyLoadsAndStores(), getMemsetStringVal(), getMemsetValue(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::NVPTXTargetLowering::getPrototype(), llvm::TargetLoweringBase::getRegisterType(), llvm::GetReturnInfo(), getRoundIntegerType(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeConversion(), llvm::MSP430TargetLowering::isTruncateFree(), llvm::SystemZTargetLowering::isTruncateFree(), llvm::X86TargetLowering::isTruncateFree(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), Lower256IntArith(), LowerADD(), llvm::AArch64TargetLowering::LowerBR_CC(), LowerBR_CC(), llvm::NVPTXTargetLowering::LowerCall(), LowerMUL(), llvm::AArch64TargetLowering::LowerSELECT_CC(), LowerSELECT_CC(), llvm::AArch64TargetLowering::LowerSETCC(), LowerSUB(), LowerVectorBroadcast(), LowerVectorSETCC(), llvm::TargetLowering::LowerXConstraint(), OptimizeConditionalInDecrement(), OptimizeNoopCopyExpression(), llvm::R600TargetLowering::PerformDAGCombine(), performIntegerAbsCombine(), performSELECTCombine(), PerformSELECTCombine(), performVSELECTCombine(), performXORCombine(), llvm::TargetLowering::SimplifySetCC(), and VerifyNodeCommon().

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

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

Definition at line 701 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 825 of file ValueTypes.h.

References getVectorNumElements().

Referenced by getPow2VectorType(), and llvm::TargetLoweringBase::getTypeConversion().

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

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

Definition at line 711 of file ValueTypes.h.

References getSizeInBits().

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

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

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

Definition at line 640 of file ValueTypes.h.

References llvm::MVT::SimpleTy.

Referenced by llvm::SITargetLowering::allowsUnalignedMemoryAccesses(), llvm::PPCTargetLowering::allowsUnalignedMemoryAccesses(), changeVectorElementTypeToInteger(), getExtensionTo64Bits(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), getRawBits(), llvm::FastISel::getRegForValue(), llvm::TargetLoweringBase::getRegisterType(), getSimpleVT(), getSizeInBits(), llvm::TargetLoweringBase::getTypeConversion(), llvm::SelectionDAG::getValueType(), getVectorElementType(), getVectorNumElements(), is1024BitVector(), is128BitVector(), is16BitVector(), is256BitVector(), is32BitVector(), is512BitVector(), is64BitVector(), isExtended(), isFloatingPoint(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::TargetLoweringBase::isIndexedLoadLegal(), llvm::TargetLoweringBase::isIndexedStoreLegal(), isInteger(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::TargetLoweringBase::isLoadExtLegal(), llvm::X86TargetLowering::isShuffleMaskLegal(), llvm::HexagonTargetLowering::isTruncateFree(), llvm::TargetLoweringBase::isTruncStoreLegal(), llvm::TargetLoweringBase::isTypeLegal(), isVector(), llvm::X86TargetLowering::isVectorClearMaskLegal(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), and llvm::TargetLowering::SimplifyDemandedBits().

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

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

Definition at line 661 of file ValueTypes.h.

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

Referenced by llvm::X86TargetLowering::BuildFILD(), llvm::SelectionDAG::ComputeMaskedBits(), llvm::SelectionDAG::ComputeNumSignBits(), ComputePTXValueVTs(), ExpandUnalignedLoad(), ExpandUnalignedStore(), FindOptimalMemOpLowering(), FoldOperand(), llvm::SelectionDAG::FoldSetCC(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getEVTString(), getHalfSizedIntegerVT(), llvm::SelectionDAG::getLoad(), getMemcpyLoadsAndStores(), getMemsetStores(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getNumRegisters(), llvm::AMDGPUTargetLowering::getOriginalFunctionArgs(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), llvm::TargetLoweringBase::getRegisterType(), getRoundIntegerType(), getScalarType(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAG::getSelect(), llvm::SelectionDAG::getSetCC(), llvm::R600TargetLowering::getSetCCResultType(), llvm::SITargetLowering::getSetCCResultType(), llvm::NVPTXTargetLowering::getSetCCResultType(), llvm::HexagonTargetLowering::getSetCCResultType(), llvm::SystemZTargetLowering::getSetCCResultType(), llvm::TargetLoweringBase::getSetCCResultType(), llvm::MipsTargetLowering::getSetCCResultType(), llvm::ARMTargetLowering::getSetCCResultType(), llvm::AArch64TargetLowering::getSetCCResultType(), llvm::PPCTargetLowering::getSetCCResultType(), llvm::X86TargetLowering::getSetCCResultType(), llvm::SelectionDAG::getShiftAmountOperand(), llvm::TargetLoweringBase::getShiftAmountTy(), getShuffleScalarElt(), llvm::SelectionDAG::GetSplitDestVTs(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getTypeToExpandTo(), getVectorElementType(), getVectorNumElements(), llvm::SelectionDAG::getZeroExtendInReg(), getZeroVector(), llvm::BuildVectorSDNode::isConstantSplat(), isVShiftLImm(), isVShiftRImm(), llvm::TargetLowering::LowerCallTo(), LowerFP_TO_INT(), LowerINT_TO_FP(), llvm::SITargetLowering::LowerOperation(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerSETCC(), LowerShift(), llvm::AMDGPUTargetLowering::LowerSTORE(), LowerVectorBroadcast(), matchIntegerMINMAX(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), performMULCombine(), PerformORCombine(), PerformSELECTCombine(), PerformSExtCombine(), PerformSHLCombine(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::SelectionDAG::SignBitIsZero(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), tryFoldToZero(), llvm::SelectionDAG::UnrollVectorOp(), and VerifyNodeCommon().

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

Definition at line 590 of file ValueTypes.h.

References llvm::MVT::SimpleTy.

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

Definition at line 587 of file ValueTypes.h.


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