aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Support/APInt.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-01-27 23:33:07 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-01-27 23:33:07 +0000
commit04594aeffa3360882eb09a888a0970321b987b16 (patch)
treeeff7f045ec9900682ce59a374960799be389313c /lib/Support/APInt.cpp
parent0c6e1778817ac97b42af1375ec6bfae8b65e9d76 (diff)
downloadexternal_llvm-04594aeffa3360882eb09a888a0970321b987b16.zip
external_llvm-04594aeffa3360882eb09a888a0970321b987b16.tar.gz
external_llvm-04594aeffa3360882eb09a888a0970321b987b16.tar.bz2
Add r149110 back with a fix for when the vector and the int have the same
width. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149151 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/APInt.cpp')
-rw-r--r--lib/Support/APInt.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp
index b5411be..c580dd3 100644
--- a/lib/Support/APInt.cpp
+++ b/lib/Support/APInt.cpp
@@ -1123,6 +1123,18 @@ APInt APInt::sextOrTrunc(unsigned width) const {
return *this;
}
+APInt APInt::zextOrSelf(unsigned width) const {
+ if (BitWidth < width)
+ return zext(width);
+ return *this;
+}
+
+APInt APInt::sextOrSelf(unsigned width) const {
+ if (BitWidth < width)
+ return sext(width);
+ return *this;
+}
+
/// Arithmetic right-shift this APInt by shiftAmt.
/// @brief Arithmetic right-shift function.
APInt APInt::ashr(const APInt &shiftAmt) const {