Add AVX2 VPMOVMASK instructions and intrinsics.
[oota-llvm.git] / include / llvm / ADT / APSInt.h
index 386a8ad18df2c22f4e5ab9f2f132667bd37f8967..54a7b601d1f1e20d05fdf636c98d911df9f58311 100644 (file)
@@ -59,7 +59,7 @@ public:
 
   /// toString - Append this APSInt to the specified SmallString.
   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
-    return APInt::toString(Str, Radix, isSigned());
+    APInt::toString(Str, Radix, isSigned());
   }
   /// toString - Converts an APInt to a std::string.  This is an inefficient
   /// method, your should prefer passing in a SmallString instead.
@@ -68,20 +68,22 @@ public:
   }
   using APInt::toString;
 
-  APSInt& extend(uint32_t width) {
+  APSInt trunc(uint32_t width) const {
+    return APSInt(APInt::trunc(width), IsUnsigned);
+  }
+
+  APSInt extend(uint32_t width) const {
     if (IsUnsigned)
-      zext(width);
+      return APSInt(zext(width), IsUnsigned);
     else
-      sext(width);
-    return *this;
+      return APSInt(sext(width), IsUnsigned);
   }
 
-  APSInt& extOrTrunc(uint32_t width) {
+  APSInt extOrTrunc(uint32_t width) const {
       if (IsUnsigned)
-        zextOrTrunc(width);
+        return APSInt(zextOrTrunc(width), IsUnsigned);
       else
-        sextOrTrunc(width);
-      return *this;
+        return APSInt(sextOrTrunc(width), IsUnsigned);
   }
 
   const APSInt &operator%=(const APSInt &RHS) {
@@ -150,7 +152,7 @@ public:
     return *this;
   }
   APSInt& operator--() {
-    static_cast<APInt&>(*this)++;
+    static_cast<APInt&>(*this)--;
     return *this;
   }
   APSInt operator++(int) {
@@ -236,16 +238,16 @@ public:
 
   /// getMaxValue - Return the APSInt representing the maximum integer value
   ///  with the given bit width and signedness.
-  static APSInt getMaxValue(uint32_t numBits, bool Signed) {
-    return APSInt(Signed ? APInt::getSignedMaxValue(numBits)
-                         : APInt::getMaxValue(numBits), Signed);
+  static APSInt getMaxValue(uint32_t numBits, bool Unsigned) {
+    return APSInt(Unsigned ? APInt::getMaxValue(numBits)
+                           : APInt::getSignedMaxValue(numBits), Unsigned);
   }
 
   /// getMinValue - Return the APSInt representing the minimum integer value
   ///  with the given bit width and signedness.
-  static APSInt getMinValue(uint32_t numBits, bool Signed) {
-    return APSInt(Signed ? APInt::getSignedMinValue(numBits)
-                         : APInt::getMinValue(numBits), Signed);
+  static APSInt getMinValue(uint32_t numBits, bool Unsigned) {
+    return APSInt(Unsigned ? APInt::getMinValue(numBits)
+                           : APInt::getSignedMinValue(numBits), Unsigned);
   }
 
   /// Profile - Used to insert APSInt objects, or objects that contain APSInt