public void addDestructive(int[] r) {
    long sum = 0L;
    for (int i = 0; i < INT_COUNT; ++i) {
      sum = (this.v[i] & SqlMathUtil.LONG_MASK)
          + (r[i] & SqlMathUtil.LONG_MASK) + (sum >>> 32);
      this.v[i] = (int) sum;
    }
    updateCount();

    if ((sum >> 32) != 0) {
      SqlMathUtil.throwOverflowException();
    }
  }
Adds the given value to this value. This version is destructive, meaning it
modifies this object.

@param r
         the value to add
common/src/java/org/apache/hadoop/hive/common/type/UnsignedInt128.java