15 #ifndef LLVM_CODEGEN_MACHINEVALUETYPE_H
16 #define LLVM_CODEGEN_MACHINEVALUETYPE_H
293 return !(NElts & (NElts - 1));
402 case v8f64:
return 8;
410 case v4f64:
return 4;
418 case v2f64:
return 2;
425 case v1f64:
return 1;
445 "in codegen and has no size");
458 case v1i16:
return 16;
466 case v1i32:
return 32;
477 case v1f64:
return 64;
478 case f80 :
return 80;
489 case v2f64:
return 128;
495 case v4f64:
return 256;
502 case v8f64:
return 512;
672 struct mvt_iterator {
676 bool operator!=(
const mvt_iterator &LHS)
const {
return VT != LHS.VT; }
677 mvt_iterator& operator++() {
680 "MVT iterator overflowed.");
685 typedef iterator_range<mvt_iterator> mvt_range;
bool is16BitVector() const
is16BitVector - Return true if this is a 16-bit vector type.
static MVT getIntegerVT(unsigned BitWidth)
unsigned Log2_32_Ceil(uint32_t Value)
Log2_32_Ceil - This function returns the ceil log base 2 of the specified value, 32 if the value is z...
bool is1024BitVector() const
is1024BitVector - Return true if this is a 1024-bit vector type.
static MVT getVectorVT(MVT VT, unsigned NumElements)
This provides a very simple, boring adaptor for a begin and end iterator into a range type...
unsigned getScalarSizeInBits() const
bool is512BitVector() const
is512BitVector - Return true if this is a 512-bit vector type.
bool operator>=(const MVT &S) const
static MVT getFloatingPointVT(unsigned BitWidth)
unsigned getSizeInBits() const
bool is32BitVector() const
is32BitVector - Return true if this is a 32-bit vector type.
bool bitsLT(MVT VT) const
Return true if this has less bits than VT.
constexpr MVT(SimpleValueType SVT)
bool bitsLE(MVT VT) const
Return true if this has no more bits than VT.
bool operator!=(const MVT &S) const
MVT getScalarType() const
getScalarType - If this is a vector type, return the element type, otherwise return this...
unsigned getStoreSize() const
getStoreSize - Return the number of bytes overwritten by a store of the specified value type...
bool bitsGE(MVT VT) const
Return true if this has no less bits than VT.
bool operator==(const MVT &S) const
static mvt_range integer_vector_valuetypes()
bool isScalarInteger() const
isScalarInteger - Return true if this is an integer, not including vectors.
bool operator<(const MVT &S) const
static mvt_range fp_vector_valuetypes()
bool isInteger() const
isInteger - Return true if this is an integer, or a vector integer type.
unsigned getVectorNumElements() const
MVT - Machine Value Type.
The instances of the Type class are immutable: once they are created, they are never changed...
bool isVector() const
isVector - Return true if this is a vector value type.
bool operator<=(const MVT &S) const
bool isFloatingPoint() const
isFloatingPoint - Return true if this is a FP, or a vector FP type.
bool isPow2VectorType() const
isPow2VectorType - Returns true if the given vector is a power of 2.
static mvt_range fp_valuetypes()
static mvt_range vector_valuetypes()
static MVT getVT(Type *Ty, bool HandleUnknown=false)
Return the value type corresponding to the specified type.
BlockMass operator*(BlockMass L, BranchProbability R)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool isOverloaded() const
isOverloaded - Return true if this is an overloaded type for TableGen.
bool is64BitVector() const
is64BitVector - Return true if this is a 64-bit vector type.
static mvt_range integer_valuetypes()
bool is128BitVector() const
is128BitVector - Return true if this is a 128-bit vector type.
A range adaptor for a pair of iterators.
static mvt_range all_valuetypes()
SimpleValueType Iteration.
bool isValid() const
isValid - Return true if this is a valid simple valuetype.
bool is256BitVector() const
is256BitVector - Return true if this is a 256-bit vector type.
unsigned getStoreSizeInBits() const
getStoreSizeInBits - Return the number of bits overwritten by a store of the specified value type...
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool operator>(const MVT &S) const
bool bitsGT(MVT VT) const
Return true if this has more bits than VT.
bool is2048BitVector() const
is2048BitVector - Return true if this is a 1024-bit vector type.
MVT getPow2VectorType() const
getPow2VectorType - Widens the length of the given vector MVT up to the nearest power of 2 and return...
MVT getVectorElementType() const