Use lshrInPlace. Use single bit extract and operator|=(uint64_t) to avoid a few temporary APInts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300527
91177308-0d34-0410-b5e6-
96231b3b80d8
}
APInt Val(*this);
- APInt Reversed(*this);
- int S = BitWidth - 1;
+ APInt Reversed(BitWidth, 0);
+ unsigned S = BitWidth;
- const APInt One(BitWidth, 1);
-
- for ((Val = Val.lshr(1)); Val != 0; (Val = Val.lshr(1))) {
+ for (; Val != 0; Val.lshrInPlace(1)) {
Reversed <<= 1;
- Reversed |= (Val & One);
+ Reversed |= Val[0];
--S;
}