LLVM API Documentation

llvm::MVT Namespace Reference


Enumerations

enum  ValueType {
  Other = 0, i1 = 1, i8 = 2, i16 = 3,
  i32 = 4, i64 = 5, i128 = 6, f32 = 7,
  f64 = 8, f80 = 9, f128 = 10, Flag = 11,
  isVoid = 12, Vector = 13, v8i8 = 14, v4i16 = 15,
  v2i32 = 16, v16i8 = 17, v8i16 = 18, v4i32 = 19,
  v2i64 = 20, v2f32 = 21, v4f32 = 22, v2f64 = 23,
  FIRST_VECTOR_VALUETYPE = v8i8, LAST_VECTOR_VALUETYPE = v2f64, LAST_VALUETYPE = 24, iPTR = 255
}

Functions

static bool isInteger (ValueType VT)
static bool isFloatingPoint (ValueType VT)
static bool isVector (ValueType VT)
static unsigned getSizeInBits (ValueType VT)
ValueType getVectorType (ValueType VT, unsigned NumElements)
static ValueType getVectorBaseType (ValueType VT)
static unsigned getVectorNumElements (ValueType VT)
static ValueType getIntVectorWithNumElements (unsigned NumElts)
static uint64_t getIntVTBitMask (ValueType VT)
static uint64_t getIntVTSignBit (ValueType VT)
const char * getValueTypeString (ValueType VT)
const TypegetTypeForValueType (ValueType VT)


Detailed Description

MVT namespace - This namespace defines the ValueType enum, which contains the various low-level value types.


Enumeration Type Documentation

enum llvm::MVT::ValueType

Enumerator:
Other 
i1 
i8 
i16 
i32 
i64 
i128 
f32 
f64 
f80 
f128 
Flag 
isVoid 
Vector 
v8i8 
v4i16 
v2i32 
v16i8 
v8i16 
v4i32 
v2i64 
v2f32 
v4f32 
v2f64 
FIRST_VECTOR_VALUETYPE 
LAST_VECTOR_VALUETYPE 
LAST_VALUETYPE 
iPTR 

Definition at line 29 of file ValueTypes.h.


Function Documentation

static ValueType llvm::MVT::getIntVectorWithNumElements ( unsigned  NumElts  )  [inline, static]

MVT::getIntVectorWithNumElements - Return any integer vector type that has the specified number of elements.

Definition at line 163 of file ValueTypes.h.

References v16i8, v2i32, v4i16, and v8i8.

Referenced by getMOVLMask(), getShuffleVectorZeroOrUndef(), getUnpackhMask(), getUnpacklMask(), and PromoteSplat().

static uint64_t llvm::MVT::getIntVTBitMask ( ValueType  VT  )  [inline, static]

MVT::getIntVTBitMask - Return an integer with 1's every place there are bits in the specified integer value type.

Definition at line 176 of file ValueTypes.h.

References getSizeInBits(), isInteger(), and isVector().

Referenced by llvm::TargetLowering::ComputeMaskedBits(), llvm::X86TargetLowering::computeMaskedBitsForTargetNode(), llvm::TargetLowering::ComputeNumSignBits(), llvm::SelectionDAG::getNode(), llvm::ConstantSDNode::isAllOnesValue(), and llvm::TargetLowering::SimplifyDemandedBits().

static uint64_t llvm::MVT::getIntVTSignBit ( ValueType  VT  )  [inline, static]

MVT::getIntVTSignBit - Return an integer with a 1 in the position of the sign bit for the specified integer value type.

Definition at line 182 of file ValueTypes.h.

References getSizeInBits(), isInteger(), and isVector().

Referenced by llvm::TargetLowering::ComputeMaskedBits(), llvm::TargetLowering::ComputeNumSignBits(), and llvm::TargetLowering::SimplifyDemandedBits().

static unsigned llvm::MVT::getSizeInBits ( ValueType  VT  )  [inline, static]

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

Definition at line 93 of file ValueTypes.h.

References f128, f32, f64, f80, i1, i128, i16, i32, i64, i8, v16i8, v2f32, v2f64, v2i32, v2i64, v4f32, v4i16, v4i32, v8i16, and v8i8.

Referenced by llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::ComputeMaskedBits(), llvm::TargetLowering::ComputeNumSignBits(), llvm::PPC::get_VSPLTI_elt(), llvm::SelectionDAG::getConstant(), GetConstantBuildVectorBits(), getIntVTBitMask(), getIntVTSignBit(), getMemsetStringVal(), llvm::SelectionDAG::getNode(), llvm::TargetLowering::getPackedTypeBreakdown(), llvm::ConstantSDNode::getSignExtended(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getZeroExtendInReg(), isAllocatableRegister(), llvm::X86TargetLowering::isShuffleMaskLegal(), llvm::X86TargetLowering::isVectorClearMaskLegal(), llvm::TargetLowering::LowerArguments(), LowerCALL(), llvm::TargetLowering::LowerCallTo(), LowerFORMAL_ARGUMENT(), LowerFORMAL_ARGUMENTS(), llvm::IA64TargetLowering::LowerOperation(), LowerSETCC(), LowerVECTOR_SHUFFLE(), MeetsMaxMemopRequirement(), PerformShuffleCombine(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SelectionDAGLowering::visitJumpTable(), and llvm::SelectionDAGLowering::visitMemIntrinsic().

const Type * llvm::MVT::getTypeForValueType ( MVT::ValueType  VT  ) 

MVT::getTypeForValueType - This method returns an LLVM type corresponding to the specified ValueType. For integer types, this returns an unsigned type. Note that this will abort for types that cannot be represented.

Definition at line 86 of file ValueTypes.cpp.

References llvm::Type::BoolTy, llvm::Type::DoubleTy, f32, f64, llvm::Type::FloatTy, i1, i16, i32, i64, i8, isVoid, llvm::Type::UByteTy, llvm::Type::UIntTy, llvm::Type::ULongTy, llvm::Type::UShortTy, and llvm::Type::VoidTy.

const char * llvm::MVT::getValueTypeString ( MVT::ValueType  VT  ) 

MVT::getValueTypeString - This function returns value type as a string, e.g. "i32".

Definition at line 20 of file ValueTypes.cpp.

References f128, f32, f64, f80, Flag, i1, i128, i16, i32, i64, i8, isVoid, Other, v16i8, v2f64, v2i32, v2i64, v4f32, v4i16, v4i32, v8i16, v8i8, and Vector.

Referenced by llvm::SDNode::dump().

static ValueType llvm::MVT::getVectorBaseType ( ValueType  VT  )  [inline, static]

MVT::getVectorBaseType - Given a packed vector type, return the type of each element.

Definition at line 127 of file ValueTypes.h.

References f32, f64, i16, i32, i64, i8, v16i8, v2f32, v2f64, v2i32, v2i64, v4f32, v4i16, v4i32, v8i16, and v8i8.

Referenced by BuildSplatI(), CommuteVectorShuffle(), getMOVLMask(), llvm::SelectionDAG::getNode(), getShuffleScalarElt(), getShuffleVectorZeroOrUndef(), getUnpackhMask(), getUnpacklMask(), getZeroVector(), LowerVECTOR_SHUFFLE(), and PerformShuffleCombine().

static unsigned llvm::MVT::getVectorNumElements ( ValueType  VT  )  [inline, static]

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

Definition at line 145 of file ValueTypes.h.

References v16i8, v2f32, v2f64, v2i32, v2i64, v4f32, v4i16, v4i32, v8i16, and v8i8.

Referenced by BuildSplatI(), llvm::SelectionDAG::getNode(), and getZeroVector().

MVT::ValueType llvm::MVT::getVectorType ( ValueType  VT,
unsigned  NumElements 
)

MVT::getVectorType - Returns the ValueType that represents a vector NumElements in length, where each element is of type VT. If there is no ValueType that represents this vector, a ValueType of Other is returned.

Definition at line 53 of file ValueTypes.cpp.

References f32, f64, i16, i32, i64, i8, Other, v16i8, v2f32, v2f64, v2i32, v2i64, v4f32, v4i16, v4i32, v8i16, and v8i8.

Referenced by llvm::FunctionLoweringInfo::CreateRegForValue(), llvm::TargetLowering::getPackedTypeBreakdown(), llvm::TargetLowering::LowerArguments(), llvm::TargetLowering::LowerCallTo(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().

static bool llvm::MVT::isFloatingPoint ( ValueType  VT  )  [inline, static]

MVT::isFloatingPoint - Return true if this is a simple FP, or a packed vector FP type.

Definition at line 81 of file ValueTypes.h.

References f128, f32, v2f64, and v4f32.

Referenced by llvm::SelectionDAG::getConstantFP(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstantFP(), llvm::TargetLowering::getTypeToPromoteTo(), getZeroVector(), llvm::BinaryOperator::init(), llvm::TargetLowering::LowerArguments(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), LowerFP_TO_SINT(), llvm::AlphaTargetLowering::LowerOperation(), LowerRET(), LowerSELECT_CC(), SetValueTypeAction(), and llvm::SelectionDAGLowering::visitCast().

static bool llvm::MVT::isInteger ( ValueType  VT  )  [inline, static]

MVT::isInteger - Return true if this is a simple integer, or a packed vector integer type.

Definition at line 75 of file ValueTypes.h.

References i1, i128, v2i64, and v8i8.

Referenced by llvm::TargetLowering::ComputeNumSignBits(), llvm::TargetLowering::computeRegisterProperties(), llvm::SelectionDAG::getConstant(), getIntVTBitMask(), getIntVTSignBit(), llvm::SelectionDAG::getNode(), getScalarizedOpcode(), llvm::SelectionDAG::getTargetConstant(), llvm::TargetLowering::getTypeToPromoteTo(), llvm::BinaryOperator::init(), llvm::TargetLowering::LowerArguments(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), LowerRET(), LowerSETCC(), MeetsMaxMemopRequirement(), llvm::SelectionDAGISel::runOnFunction(), SetValueTypeAction(), llvm::SelectionDAGLowering::visitCast(), llvm::SelectionDAGLowering::visitInlineAsm(), and llvm::SelectionDAGLowering::visitUserOp2().

static bool llvm::MVT::isVector ( ValueType  VT  )  [inline, static]

MVT::isVector - Return true if this is a packed vector type (i.e. not MVT::Vector).

Definition at line 87 of file ValueTypes.h.

References FIRST_VECTOR_VALUETYPE, and LAST_VECTOR_VALUETYPE.

Referenced by llvm::SelectionDAG::getConstant(), getIntVTBitMask(), getIntVTSignBit(), llvm::SelectionDAG::getNode(), getZeroVector(), and LowerRET().