Add some happy helper methods.

llvm-svn: 26046
This commit is contained in:
Chris Lattner 2006-02-08 02:05:45 +00:00
parent ddba3289b5
commit 49c0457529
1 changed files with 15 additions and 1 deletions

View File

@ -17,6 +17,7 @@
#define LLVM_CODEGEN_VALUETYPES_H
#include <cassert>
#include "llvm/Support/DataTypes.h"
namespace llvm {
class Type;
@ -67,7 +68,7 @@ namespace MVT { // MVT = Machine Value Types
static inline bool isVector(ValueType VT) {
return (VT >= v16i8 && VT <= v2f64);
}
/// 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.
@ -107,6 +108,19 @@ namespace MVT { // MVT = Machine Value Types
case MVT::v2f64: return 128;
}
}
/// getIntVTBitMask - Return an integer with 1's every place there are bits
/// in the specified integer value type.
static inline uint64_t getIntVTBitMask(ValueType VT) {
assert(isInteger(VT) && !isVector(VT) && "Only applies to int scalars!");
return ~0ULL >> (64-getSizeInBits(VT));
}
/// getIntVTSignBit - Return an integer with a 1 in the position of the sign
/// bit for the specified integer value type.
static inline uint64_t getIntVTSignBit(ValueType VT) {
assert(isInteger(VT) && !isVector(VT) && "Only applies to int scalars!");
return 1ULL << (getSizeInBits(VT)-1);
}
/// MVT::getValueTypeString - This function returns value type as a string,
/// e.g. "i32".