Add long-overdue helpers for getting constants with known upper bits
authorChris Lattner <sabre@nondot.org>
Sat, 24 Sep 2005 22:57:28 +0000 (22:57 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 24 Sep 2005 22:57:28 +0000 (22:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23426 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constants.h

index 4a5d0181a52323ead469d3aa7193dafc7bce1896..4b5d883bbfac645af3aafbe135a6ed09b48ac56d 100644 (file)
@@ -54,7 +54,21 @@ public:
   /// unsigned integer value.
   ///
   inline uint64_t getRawValue() const { return Val.Unsigned; }
+  
+  /// getZExtValue - Return the constant zero extended as appropriate for this
+  /// type.
+  inline uint64_t getZExtValue() const {
+    unsigned Size = getType()->getPrimitiveSizeInBits();
+    return Val.Unsigned & (~0ULL >> (64-Size));
+  }
 
+  /// getSExtValue - Return the constant sign extended as appropriate for this
+  /// type.
+  inline int64_t getSExtValue() const {
+    unsigned Size = getType()->getPrimitiveSizeInBits();
+    return (Val.Signed << (64-Size)) >> (64-Size);
+  }
+  
   /// isNullValue - Return true if this is the value that would be returned by
   /// getNullValue.
   ///