LLVM  3.7.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::MVT Class Reference

MVT - Machine Value Type. More...

#include <MachineValueType.h>

Collaboration diagram for llvm::MVT:
[legend]

Public Types

enum  SimpleValueType {
  INVALID_SIMPLE_VALUE_TYPE = -1, Other = 0, i1 = 1, i8 = 2,
  i16 = 3, i32 = 4, i64 = 5, i128 = 6,
  FIRST_INTEGER_VALUETYPE = i1, LAST_INTEGER_VALUETYPE = i128, f16 = 7, f32 = 8,
  f64 = 9, f80 = 10, f128 = 11, ppcf128 = 12,
  FIRST_FP_VALUETYPE = f16, LAST_FP_VALUETYPE = ppcf128, v2i1 = 13, v4i1 = 14,
  v8i1 = 15, v16i1 = 16, v32i1 = 17, v64i1 = 18,
  v1i8 = 19, v2i8 = 20, v4i8 = 21, v8i8 = 22,
  v16i8 = 23, v32i8 = 24, v64i8 = 25, v1i16 = 26,
  v2i16 = 27, v4i16 = 28, v8i16 = 29, v16i16 = 30,
  v32i16 = 31, v1i32 = 32, v2i32 = 33, v4i32 = 34,
  v8i32 = 35, v16i32 = 36, v1i64 = 37, v2i64 = 38,
  v4i64 = 39, v8i64 = 40, v16i64 = 41, v1i128 = 42,
  FIRST_INTEGER_VECTOR_VALUETYPE = v2i1, LAST_INTEGER_VECTOR_VALUETYPE = v1i128, v2f16 = 43, v4f16 = 44,
  v8f16 = 45, v1f32 = 46, v2f32 = 47, v4f32 = 48,
  v8f32 = 49, v16f32 = 50, v1f64 = 51, v2f64 = 52,
  v4f64 = 53, v8f64 = 54, FIRST_FP_VECTOR_VALUETYPE = v2f16, LAST_FP_VECTOR_VALUETYPE = v8f64,
  FIRST_VECTOR_VALUETYPE = v2i1, LAST_VECTOR_VALUETYPE = v8f64, x86mmx = 55, Glue = 56,
  isVoid = 57, Untyped = 58, FIRST_VALUETYPE = 0, LAST_VALUETYPE = 59,
  MAX_ALLOWED_VALUETYPE = 64, Metadata = 250, iPTRAny = 251, vAny = 252,
  fAny = 253, iAny = 254, iPTR = 255, Any = 256
}
 

Public Member Functions

LLVM_CONSTEXPR MVT ()
 
LLVM_CONSTEXPR MVT (SimpleValueType SVT)
 
bool operator> (const MVT &S) const
 
bool operator< (const MVT &S) const
 
bool operator== (const MVT &S) const
 
bool operator!= (const MVT &S) const
 
bool operator>= (const MVT &S) const
 
bool operator<= (const MVT &S) const
 
bool isValid () const
 isValid - Return true if this is a valid simple valuetype. 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 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 isPow2VectorType () const
 isPow2VectorType - Returns true if the given vector is a power of 2. More...
 
MVT getPow2VectorType () const
 getPow2VectorType - Widens the length of the given vector MVT up to the nearest power of 2 and returns that type. More...
 
MVT getScalarType () const
 getScalarType - If this is a vector type, return the element type, otherwise return this. More...
 
MVT getVectorElementType () const
 
unsigned getVectorNumElements () const
 
unsigned getSizeInBits () const
 
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...
 
bool bitsGT (MVT VT) const
 Return true if this has more bits than VT. More...
 
bool bitsGE (MVT VT) const
 Return true if this has no less bits than VT. More...
 
bool bitsLT (MVT VT) const
 Return true if this has less bits than VT. More...
 
bool bitsLE (MVT VT) const
 Return true if this has no more bits than VT. More...
 

Static Public Member Functions

static MVT getFloatingPointVT (unsigned BitWidth)
 
static MVT getIntegerVT (unsigned BitWidth)
 
static MVT getVectorVT (MVT VT, unsigned NumElements)
 
static MVT getVT (Type *Ty, bool HandleUnknown=false)
 Return the value type corresponding to the specified type. More...
 
static mvt_range all_valuetypes ()
 SimpleValueType Iteration. More...
 
static mvt_range integer_valuetypes ()
 
static mvt_range fp_valuetypes ()
 
static mvt_range vector_valuetypes ()
 
static mvt_range integer_vector_valuetypes ()
 
static mvt_range fp_vector_valuetypes ()
 

Public Attributes

SimpleValueType SimpleTy
 

Detailed Description

MVT - Machine Value Type.

Every type that is supported natively by some processor targeted by LLVM occurs here. This means that any legal value type can be represented by an MVT.

Definition at line 29 of file MachineValueType.h.

Member Enumeration Documentation

Enumerator
INVALID_SIMPLE_VALUE_TYPE 
Other 
i1 
i8 
i16 
i32 
i64 
i128 
FIRST_INTEGER_VALUETYPE 
LAST_INTEGER_VALUETYPE 
f16 
f32 
f64 
f80 
f128 
ppcf128 
FIRST_FP_VALUETYPE 
LAST_FP_VALUETYPE 
v2i1 
v4i1 
v8i1 
v16i1 
v32i1 
v64i1 
v1i8 
v2i8 
v4i8 
v8i8 
v16i8 
v32i8 
v64i8 
v1i16 
v2i16 
v4i16 
v8i16 
v16i16 
v32i16 
v1i32 
v2i32 
v4i32 
v8i32 
v16i32 
v1i64 
v2i64 
v4i64 
v8i64 
v16i64 
v1i128 
FIRST_INTEGER_VECTOR_VALUETYPE 
LAST_INTEGER_VECTOR_VALUETYPE 
v2f16 
v4f16 
v8f16 
v1f32 
v2f32 
v4f32 
v8f32 
v16f32 
v1f64 
v2f64 
v4f64 
v8f64 
FIRST_FP_VECTOR_VALUETYPE 
LAST_FP_VECTOR_VALUETYPE 
FIRST_VECTOR_VALUETYPE 
LAST_VECTOR_VALUETYPE 
x86mmx 
Glue 
isVoid 
Untyped 
FIRST_VALUETYPE 
LAST_VALUETYPE 
MAX_ALLOWED_VALUETYPE 
Metadata 
iPTRAny 
vAny 
fAny 
iAny 
iPTR 
Any 

Definition at line 31 of file MachineValueType.h.

Constructor & Destructor Documentation

LLVM_CONSTEXPR llvm::MVT::MVT ( )
inline

Definition at line 165 of file MachineValueType.h.

Referenced by getVT().

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

Definition at line 166 of file MachineValueType.h.

Member Function Documentation

static mvt_range llvm::MVT::all_valuetypes ( )
inlinestatic

SimpleValueType Iteration.

Definition at line 619 of file MachineValueType.h.

References FIRST_VALUETYPE, and LAST_VALUETYPE.

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

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

Return true if this has no less bits than VT.

Definition at line 475 of file MachineValueType.h.

References getSizeInBits().

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

Return true if this has more bits than VT.

Definition at line 470 of file MachineValueType.h.

References getSizeInBits().

Referenced by LowerFCOPYSIGN().

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

Return true if this has no more bits than VT.

Definition at line 485 of file MachineValueType.h.

References getSizeInBits().

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

Return true if this has less bits than VT.

Definition at line 480 of file MachineValueType.h.

References getSizeInBits().

Referenced by LowerFCOPYSIGN().

static mvt_range llvm::MVT::fp_valuetypes ( )
inlinestatic
static mvt_range llvm::MVT::fp_vector_valuetypes ( )
inlinestatic
static MVT llvm::MVT::getFloatingPointVT ( unsigned  BitWidth)
inlinestatic
static MVT llvm::MVT::getIntegerVT ( unsigned  BitWidth)
inlinestatic
MVT llvm::MVT::getPow2VectorType ( ) const
inline

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

Definition at line 266 of file MachineValueType.h.

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

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

unsigned llvm::MVT::getScalarSizeInBits ( ) const
inline
MVT llvm::MVT::getScalarType ( ) const
inline
unsigned llvm::MVT::getSizeInBits ( ) const
inline

Definition at line 379 of file MachineValueType.h.

References Any, f128, f16, f32, f64, f80, fAny, i1, i128, i16, i32, i64, i8, iAny, iPTR, iPTRAny, llvm_unreachable, Other, ppcf128, SimpleTy, v16f32, v16i1, v16i16, v16i32, v16i64, v16i8, v1f32, v1f64, v1i128, v1i16, v1i32, v1i64, v1i8, v2f16, v2f32, v2f64, v2i1, v2i16, v2i32, v2i64, v2i8, v32i1, v32i16, v32i8, v4f16, v4f32, v4f64, v4i1, v4i16, v4i32, v4i64, v4i8, v64i1, v64i8, v8f16, v8f32, v8f64, v8i1, v8i16, v8i32, v8i64, v8i8, vAny, and x86mmx.

Referenced by bitsGE(), bitsGT(), bitsLE(), bitsLT(), llvm::CC_ARM_AAPCS_Custom_Aggregate(), CC_MipsO32(), CC_Sparc64_Full(), CC_Sparc64_Half(), llvm::EVT::changeVectorElementTypeToInteger(), CombineBaseUpdate(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), llvm::TargetLoweringBase::computeRegisterProperties(), llvm::DecodeMOVDDUPMask(), llvm::DecodePALIGNRMask(), llvm::DecodePSHUFMask(), llvm::DecodePSLLDQMask(), llvm::DecodePSRLDQMask(), llvm::DecodeSHUFPMask(), llvm::DecodeUNPCKHMask(), llvm::DecodeUNPCKLMask(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::FastISel::fastEmit_ri_(), FoldMaskAndShiftToScale(), getCopyFromParts(), getCopyFromPartsVector(), llvm::RegsForValue::getCopyFromRegs(), getCopyToParts(), getCopyToPartsVector(), getExtractVEXTRACTImmediate(), getInsertVINSERTImmediate(), llvm::TargetLoweringBase::getNumRegisters(), getPSHUFShuffleMask(), llvm::ARMTargetLowering::getRegForInlineAsmConstraint(), llvm::X86TargetLowering::getRegForInlineAsmConstraint(), GetRegistersForValue(), getScalarSizeInBits(), getScalarValueForVectorElement(), llvm::EVT::getSizeInBits(), getStoreSize(), getTargetVShiftByConstNode(), getTargetVShiftNode(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVectorTypeBreakdownMVT(), Insert128BitVector(), isHorizontalBinOp(), isVEXTRACTIndex(), isVINSERTIndex(), LowerAsSplatVectorLoad(), LowerBITCAST(), llvm::TargetLowering::LowerCallTo(), LowerCTLZ(), LowerCTLZ_ZERO_UNDEF(), LowerCTTZ(), LowerExtendedLoad(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerFABSorFNEG(), LowerFCOPYSIGN(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), LowerHorizontalByteSum(), LowerSCALAR_TO_VECTOR(), LowerShiftParts(), LowerSIGN_EXTEND_AVX512(), LowerSIGN_EXTEND_VECTOR_INREG(), LowerVectorBroadcast(), LowerVectorCTPOPBitmath(), LowerVectorCTPOPInRegLUT(), lowerVectorShuffle(), lowerVectorShuffleAsBitBlend(), lowerVectorShuffleAsBitMask(), lowerVectorShuffleAsBlend(), lowerVectorShuffleAsByteRotate(), lowerVectorShuffleAsElementInsertion(), lowerVectorShuffleAsLanePermuteAndBlend(), lowerVectorShuffleAsSpecificZeroOrAnyExtend(), lowerVectorShuffleAsSplitOrBlend(), lowerVectorShuffleAsZeroOrAnyExtend(), lowerVectorShuffleByMerging128BitLanes(), llvm::TargetLowering::ParseConstraints(), performBitcastCombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVZEXTCombine(), splitAndLowerVectorShuffle(), tryCombineShiftImm(), UnpackFromArgumentSlot(), and llvm::X86TargetLowering::X86TargetLowering().

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

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

Definition at line 459 of file MachineValueType.h.

References getSizeInBits().

Referenced by allocateStack(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), getStoreSizeInBits(), llvm::SITargetLowering::LowerFormalArguments(), and NarrowVectorLoadToElement().

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

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

Definition at line 465 of file MachineValueType.h.

References getStoreSize().

Referenced by llvm::HexagonTargetLowering::LowerFormalArguments().

MVT llvm::MVT::getVectorElementType ( ) const
inline

Definition at line 281 of file MachineValueType.h.

References f16, f32, f64, i1, i128, i16, i32, i64, i8, llvm_unreachable, SimpleTy, v16f32, v16i1, v16i16, v16i32, v16i64, v16i8, v1f32, v1f64, v1i128, v1i16, v1i32, v1i64, v1i8, v2f16, v2f32, v2f64, v2i1, v2i16, v2i32, v2i64, v2i8, v32i1, v32i16, v32i8, v4f16, v4f32, v4f64, v4i1, v4i16, v4i32, v4i64, v4i8, v64i1, v64i8, v8f16, v8f32, v8f64, v8i1, v8i16, v8i32, v8i64, and v8i8.

Referenced by llvm::EVT::changeVectorElementTypeToInteger(), ChangeVSETULTtoVSETULE(), llvm::TargetLoweringBase::computeRegisterProperties(), llvm::DecodePALIGNRMask(), getCopyToPartsVector(), getExtractVEXTRACTImmediate(), getInsertVINSERTImmediate(), getPow2VectorType(), getScalarType(), getScalarValueForVectorElement(), getShuffleScalarElt(), getTargetVShiftByConstNode(), getTargetVShiftNode(), getUnderlyingExtractedFromVec(), llvm::EVT::getVectorElementType(), getVectorTypeBreakdownMVT(), llvm::NVPTXTargetLowering::isTypeSupportedInIntrinsic(), isVEXTRACTIndex(), isVINSERTIndex(), Lower256IntArith(), Lower256IntVSETCC(), LowerAVXExtend(), LowerBITCAST(), LowerCONCAT_VECTORS(), LowerExtendedLoad(), LowerFABSorFNEG(), llvm::SITargetLowering::LowerFormalArguments(), LowerHorizontalByteSum(), LowerINSERT_SUBVECTOR(), LowerSCALAR_TO_VECTOR(), LowerScalarVariableShift(), LowerShift(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), lowerV2X128VectorShuffle(), LowerVectorCTPOPBitmath(), LowerVectorCTPOPInRegLUT(), lowerVectorShuffleAsElementInsertion(), LowerVSETCC(), LowerZERO_EXTEND(), LowerZERO_EXTEND_AVX512(), NarrowVectorLoadToElement(), performConcatVectorsCombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVZEXTCombine(), llvm::X86TargetLowering::ReplaceNodeResults(), tryExtendDUPToExtractHigh(), and llvm::X86TargetLowering::X86TargetLowering().

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

Definition at line 330 of file MachineValueType.h.

References llvm_unreachable, SimpleTy, v16f32, v16i1, v16i16, v16i32, v16i64, v16i8, v1f32, v1f64, v1i128, v1i16, v1i32, v1i64, v1i8, v2f16, v2f32, v2f64, v2i1, v2i16, v2i32, v2i64, v2i8, v32i1, v32i16, v32i8, v4f16, v4f32, v4f64, v4i1, v4i16, v4i32, v4i64, v4i8, v64i1, v64i8, v8f16, v8f32, v8f64, v8i1, v8i16, v8i32, v8i64, and v8i8.

Referenced by ChangeVSETULTtoVSETULE(), combineX86ShufflesRecursively(), llvm::TargetLoweringBase::computeRegisterProperties(), llvm::DecodeBLENDMask(), llvm::DecodeMOVDDUPMask(), llvm::DecodeMOVSHDUPMask(), llvm::DecodeMOVSLDUPMask(), llvm::DecodePALIGNRMask(), llvm::DecodePSHUFHWMask(), llvm::DecodePSHUFLWMask(), llvm::DecodePSHUFMask(), llvm::DecodeScalarMoveMask(), llvm::DecodeSHUFPMask(), llvm::DecodeUNPCKHMask(), llvm::DecodeUNPCKLMask(), llvm::DecodeVPERM2X128Mask(), llvm::DecodeZeroExtendMask(), llvm::DecodeZeroMoveLowMask(), getCopyToPartsVector(), getGatherNode(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), getPow2VectorType(), getPrefetchNode(), getScatterNode(), getShuffleScalarElt(), getShuffleVectorZeroOrUndef(), getTargetShuffleMask(), getUnderlyingExtractedFromVec(), getUnpackh(), getUnpackl(), llvm::EVT::getVectorNumElements(), getVectorTypeBreakdownMVT(), isHorizontalBinOp(), isPow2VectorType(), lower256BitVectorShuffle(), Lower256IntArith(), Lower256IntVSETCC(), LowerAsSplatVectorLoad(), LowerAVXCONCAT_VECTORS(), LowerAVXExtend(), LowerBITCAST(), LowerCONCAT_VECTORSvXi1(), LowerExtendedLoad(), LowerFABSorFNEG(), llvm::SITargetLowering::LowerFormalArguments(), LowerHorizontalByteSum(), LowerINSERT_SUBVECTOR(), LowerMUL(), LowerSCALAR_TO_VECTOR(), LowerScalarImmediateShift(), LowerScalarVariableShift(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), LowerSIGN_EXTEND_VECTOR_INREG(), lowerV2X128VectorShuffle(), lowerV8I16GeneralSingleInputVectorShuffle(), LowerVectorBroadcast(), LowerVectorCTPOP(), LowerVectorCTPOPBitmath(), lowerVectorShuffle(), lowerVectorShuffleAsBlend(), lowerVectorShuffleAsElementInsertion(), lowerVectorShuffleAsShift(), lowerVectorShuffleAsSpecificZeroOrAnyExtend(), lowerVectorShuffleAsUnpack(), lowerVectorShuffleAsZeroOrAnyExtend(), lowerVectorShuffleWithSHUFPD(), lowerVectorShuffleWithSSE4A(), lowerVSELECTtoVectorShuffle(), LowerVSETCC(), LowerZERO_EXTEND(), LowerZERO_EXTEND_AVX512(), performConcatVectorsCombine(), PerformTargetShuffleCombine(), performVZEXTCombine(), splitAndLowerVectorShuffle(), transformVSELECTtoBlendVECTOR_SHUFFLE(), tryExtendDUPToExtractHigh(), and llvm::X86TargetLowering::X86TargetLowering().

static MVT llvm::MVT::getVectorVT ( MVT  VT,
unsigned  NumElements 
)
inlinestatic

Definition at line 526 of file MachineValueType.h.

References f16, f32, f64, i1, i128, i16, i32, i64, i8, INVALID_SIMPLE_VALUE_TYPE, SimpleTy, v16f32, v16i1, v16i16, v16i32, v16i64, v16i8, v1f32, v1f64, v1i128, v1i16, v1i32, v1i64, v1i8, v2f16, v2f32, v2f64, v2i1, v2i16, v2i32, v2i64, v2i8, v32i1, v32i16, v32i8, v4f16, v4f32, v4f64, v4i1, v4i16, v4i32, v4i64, v4i8, v64i1, v64i8, v8f16, v8f32, v8f64, v8i1, v8i16, v8i32, v8i64, and v8i8.

Referenced by AddCombineToVPADDL(), llvm::EVT::changeVectorElementTypeToInteger(), CombineBaseUpdate(), getGatherNode(), getPermuteNode(), getPow2VectorType(), getPrefetchNode(), getScatterNode(), getTargetVShiftNode(), getVectorTypeBreakdownMVT(), llvm::EVT::getVectorVT(), getVT(), lower256BitVectorShuffle(), Lower256IntArith(), Lower256IntVSETCC(), LowerAVXCONCAT_VECTORS(), LowerAVXExtend(), LowerCONCAT_VECTORSvXi1(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), LowerHorizontalByteSum(), LowerMUL(), LowerSCALAR_TO_VECTOR(), LowerScalarImmediateShift(), LowerShift(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_VECTOR_INREG(), lowerV2X128VectorShuffle(), lowerV8I16GeneralSingleInputVectorShuffle(), LowerVectorCTPOPBitmath(), LowerVectorCTPOPInRegLUT(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), lowerVectorShuffle(), lowerVectorShuffleAsBitBlend(), lowerVectorShuffleAsBlend(), lowerVectorShuffleAsByteRotate(), lowerVectorShuffleAsShift(), lowerVectorShuffleAsSpecificZeroOrAnyExtend(), lowerVectorShuffleAsUnpack(), lowerVectorShuffleByMerging128BitLanes(), llvm::MipsTargetLowering::MipsTargetLowering(), NarrowVector(), performConcatVectorsCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), performExtendCombine(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), splitAndLowerVectorShuffle(), tryBuildVectorReplicate(), tryExtendDUPToExtractHigh(), and WidenVector().

MVT MVT::getVT ( Type Ty,
bool  HandleUnknown = false 
)
static

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

References llvm::Type::DoubleTyID, f128, f16, f32, f64, f80, llvm::Type::FloatTyID, llvm::Type::FP128TyID, getBitWidth(), llvm::SequentialType::getElementType(), getIntegerVT(), llvm::VectorType::getNumElements(), llvm::Type::getTypeID(), getVectorVT(), llvm::Type::HalfTyID, llvm::Type::IntegerTyID, iPTR, isVoid, llvm_unreachable, MVT(), Other, llvm::Type::PointerTyID, llvm::Type::PPC_FP128TyID, ppcf128, llvm::Type::VectorTyID, llvm::Type::VoidTyID, llvm::Type::X86_FP80TyID, llvm::Type::X86_MMXTyID, and x86mmx.

Referenced by llvm::EVT::getEVT(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), and llvm::TargetLowering::ParseConstraints().

static mvt_range llvm::MVT::integer_valuetypes ( )
inlinestatic
static mvt_range llvm::MVT::integer_vector_valuetypes ( )
inlinestatic
bool llvm::MVT::is1024BitVector ( ) const
inline

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

Definition at line 247 of file MachineValueType.h.

References SimpleTy, and v16i64.

Referenced by llvm::EVT::is1024BitVector().

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

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

Definition at line 204 of file MachineValueType.h.

References SimpleTy, v16i1, v1i16, and v2i8.

Referenced by llvm::EVT::is16BitVector().

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

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

Definition at line 210 of file MachineValueType.h.

References SimpleTy, v1f32, v1i32, v2f16, v2i16, and v4i8.

Referenced by llvm::EVT::is32BitVector().

bool llvm::MVT::is512BitVector ( ) const
inline
bool llvm::MVT::is64BitVector ( ) const
inline

is64BitVector - Return true if this is a 64-bit vector type.

Definition at line 217 of file MachineValueType.h.

References SimpleTy, v1f64, v1i64, v2f32, v2i32, v4f16, v4i16, and v8i8.

Referenced by llvm::EVT::is64BitVector(), and tryExtendDUPToExtractHigh().

bool llvm::MVT::isFloatingPoint ( ) const
inline
bool llvm::MVT::isInteger ( ) const
inline
bool llvm::MVT::isOverloaded ( ) const
inline

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

Definition at line 252 of file MachineValueType.h.

References Any, fAny, iAny, iPTRAny, SimpleTy, and vAny.

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

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

Definition at line 259 of file MachineValueType.h.

References getVectorNumElements().

Referenced by getPow2VectorType().

bool llvm::MVT::isValid ( ) const
inline
bool llvm::MVT::isVector ( ) const
inline
bool llvm::MVT::operator!= ( const MVT S) const
inline

Definition at line 171 of file MachineValueType.h.

References SimpleTy.

bool llvm::MVT::operator< ( const MVT S) const
inline

Definition at line 169 of file MachineValueType.h.

References SimpleTy.

bool llvm::MVT::operator<= ( const MVT S) const
inline

Definition at line 173 of file MachineValueType.h.

References SimpleTy.

bool llvm::MVT::operator== ( const MVT S) const
inline

Definition at line 170 of file MachineValueType.h.

References SimpleTy.

bool llvm::MVT::operator> ( const MVT S) const
inline

Definition at line 168 of file MachineValueType.h.

References SimpleTy.

bool llvm::MVT::operator>= ( const MVT S) const
inline

Definition at line 172 of file MachineValueType.h.

References SimpleTy.

static mvt_range llvm::MVT::vector_valuetypes ( )
inlinestatic

Member Data Documentation

SimpleValueType llvm::MVT::SimpleTy

Definition at line 163 of file MachineValueType.h.

Referenced by AddCombineToVPADDL(), llvm::TargetLoweringBase::AddPromotedToType(), llvm::TargetLoweringBase::addRegisterClass(), llvm::MipsSETargetLowering::allowsMisalignedMemoryAccesses(), llvm::ARMTargetLowering::allowsMisalignedMemoryAccesses(), llvm::CC_ARM_AAPCS_Custom_Aggregate(), llvm::EVT::changeVectorElementTypeToInteger(), llvm::SelectionDAG::EVTToAPFloatSemantics(), FindOptimalMemOpLowering(), llvm::ARMTargetLowering::findRepresentativeClass(), llvm::X86TargetLowering::findRepresentativeClass(), llvm::TargetLoweringBase::findRepresentativeClass(), llvm::R600RegisterInfo::getCFGStructurizerRegClass(), llvm::SIRegisterInfo::getCFGStructurizerRegClass(), llvm::TargetLoweringBase::getCondCodeAction(), llvm::EVT::getEVTString(), getExtensionTo64Bits(), getImplicitScaleFactor(), llvm::TargetLoweringBase::getIndexedLoadAction(), llvm::TargetLoweringBase::getIndexedStoreAction(), llvm::EVT::getIntegerVT(), llvm::TargetLoweringBase::getLoadExtAction(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), llvm::EVT::getRawBits(), llvm::TargetLoweringBase::getRegClassFor(), llvm::SITargetLowering::getRegForInlineAsmConstraint(), llvm::HexagonTargetLowering::getRegForInlineAsmConstraint(), llvm::X86TargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLoweringBase::getRegisterType(), llvm::TargetLoweringBase::getRepRegClassCostFor(), llvm::TargetLoweringBase::getRepRegClassFor(), llvm::TargetLoweringBase::getSetCCResultType(), getSizeInBits(), llvm::TargetLoweringBase::getTruncStoreAction(), llvm::TargetLoweringBase::ValueTypeActionImpl::getTypeAction(), llvm::EVT::getTypeForEVT(), llvm::TargetLoweringBase::getTypeToPromoteTo(), llvm::SelectionDAG::getValueType(), getVectorElementType(), getVectorNumElements(), llvm::EVT::getVectorVT(), getVectorVT(), is1024BitVector(), is128BitVector(), is16BitVector(), is256BitVector(), is32Bit(), is32BitVector(), is512BitVector(), is64BitVector(), isDivRemLibcallAvailable(), isFloatingPoint(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AArch64TargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::SystemZTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::X86TargetLowering::isFMAFasterThanFMulAndFAdd(), isInteger(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), isLegalT1AddressImmediate(), isLegalT2AddressImmediate(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), isOverloaded(), IsPTXVectorType(), llvm::EVT::isSimple(), isSinCosLibcallAvailable(), llvm::TargetLoweringBase::isTypeLegal(), isValid(), isValidIndexedLoad(), isVector(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), lower128BitVectorShuffle(), lower256BitVectorShuffle(), lower512BitVectorShuffle(), LowerCMP_SWAP(), llvm::SystemZTargetLowering::LowerFormalArguments(), lowerVectorShuffleAsBlend(), matchIntegerMINMAX(), llvm::EVT::operator!=(), operator!=(), llvm::EVT::compareRawBits::operator()(), operator<(), operator<=(), operator==(), operator>(), operator>=(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::TargetLoweringBase::setCondCodeAction(), llvm::TargetLoweringBase::setIndexedLoadAction(), llvm::TargetLoweringBase::setIndexedStoreAction(), llvm::TargetLoweringBase::setLoadExtAction(), llvm::TargetLoweringBase::setOperationAction(), llvm::TargetLoweringBase::setTruncStoreAction(), llvm::TargetLoweringBase::ValueTypeActionImpl::setTypeAction(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), X86ChooseCmpImmediateOpcode(), and X86ChooseCmpOpcode().


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