From: Chris Lattner Date: Sat, 24 Sep 2005 22:57:28 +0000 (+0000) Subject: Add long-overdue helpers for getting constants with known upper bits X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a58ef7b6526ee30f4793fe91686899c602b4f9b9;p=oota-llvm.git Add long-overdue helpers for getting constants with known upper bits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23426 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index 4a5d0181a52..4b5d883bbfa 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -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. ///