aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
index 0874b29..019536ca 100644
--- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
@@ -1598,11 +1598,8 @@ bool LoopIdiomRecognize::optimizeCRCLoop(const PolynomialInfo &Info) {
// crc = (crc << 8) ^ tbl[(iv'th byte of data) ^ (top byte of crc)]
{
auto LoByte = [](IRBuilderBase &Builder, Value *Op, const Twine &Name) {
- Type *OpTy = Op->getType();
- unsigned OpBW = OpTy->getIntegerBitWidth();
- return OpBW > 8
- ? Builder.CreateAnd(Op, ConstantInt::get(OpTy, 0XFF), Name)
- : Op;
+ return Builder.CreateZExtOrTrunc(
+ Op, IntegerType::getInt8Ty(Op->getContext()), Name);
};
auto HiIdx = [LoByte, CRCBW](IRBuilderBase &Builder, Value *Op,
const Twine &Name) {