// Make sure that variable 'Constant' is only set if 'SplatBitSize' is a
// multiple of 'BitWidth'. Otherwise, we could propagate a wrong value.
- if (SplatBitSize % BitWidth == 0) {
+ if ((SplatBitSize % BitWidth) == 0) {
Constant = APInt::getAllOnesValue(BitWidth);
- for (unsigned i = 0, n = SplatBitSize/BitWidth; i < n; ++i)
- Constant &= SplatValue.lshr(i*BitWidth).zextOrTrunc(BitWidth);
+ for (unsigned i = 0, n = (SplatBitSize / BitWidth); i < n; ++i)
+ Constant &= SplatValue.extractBits(BitWidth, i * BitWidth);
}
}
}