Whoops, last word with bits in large shift left wasn't correct.
authorReid Spencer <rspencer@reidspencer.com>
Sun, 25 Feb 2007 01:08:58 +0000 (01:08 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sun, 25 Feb 2007 01:08:58 +0000 (01:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34565 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/APInt.cpp

index 2e90502e6ce1b99026fafec618eecac7ea337742..3725667b8feb54d5c159aedd7cd01ec7c4da987c 100644 (file)
@@ -994,7 +994,7 @@ APInt APInt::shl(uint32_t shiftAmt) const {
   for (; i > offset; --i)
     val[i] = pVal[i-offset] << wordShift |
              pVal[i-offset-1] >> (APINT_BITS_PER_WORD - wordShift);
-  val[offset] = pVal[offset-1] << wordShift;
+  val[offset] = pVal[0] << wordShift;
   for (i = 0; i < offset; ++i)
     val[i] = 0;
   val[getNumWords()-1] &= ~uint64_t(0ULL) >> (APINT_BITS_PER_WORD - BitWidth);