Add some happy helper methods.
authorChris Lattner <sabre@nondot.org>
Wed, 8 Feb 2006 02:05:45 +0000 (02:05 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 8 Feb 2006 02:05:45 +0000 (02:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26046 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ValueTypes.h

index f0ee31a10811ae639f15fa776b475811f9ad749b..28c3ab26bbb742d4a3a7b3bd47ddd30d660b3d3d 100644 (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".