Add methods for bit width modification: sextOrTrunc, zextOrTrunc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34789 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2007-03-01 17:15:32 +00:00
parent 9dd9abd87f
commit 68e2300ad9
2 changed files with 26 additions and 0 deletions

View File

@ -985,6 +985,22 @@ APInt &APInt::zext(uint32_t width) {
return *this;
}
APInt &APInt::zextOrTrunc(uint32_t width) {
if (BitWidth < width)
return zext(width);
if (BitWidth > width)
return trunc(width);
return *this;
}
APInt &APInt::sextOrTrunc(uint32_t width) {
if (BitWidth < width)
return sext(width);
if (BitWidth > width)
return trunc(width);
return *this;
}
/// Arithmetic right-shift this APInt by shiftAmt.
/// @brief Arithmetic right-shift function.
APInt APInt::ashr(uint32_t shiftAmt) const {