[llvm] b6d6f54 - Revert "[InstCombine] improve readability; NFC"
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 6 11:21:22 PST 2019
Author: Sanjay Patel
Date: 2019-12-06T14:20:44-05:00
New Revision: b6d6f5470f281db4716db8b2306113924afc6887
URL: https://github.com/llvm/llvm-project/commit/b6d6f5470f281db4716db8b2306113924afc6887
DIFF: https://github.com/llvm/llvm-project/commit/b6d6f5470f281db4716db8b2306113924afc6887.diff
LOG: Revert "[InstCombine] improve readability; NFC"
This reverts commit 7250ef3613cc6b81145b9543bafb86d7f9466cde.
At least 1 of these supposedly NFC commits wasn't - sanitizer bot is angry.
Added:
Modified:
llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
index 1ba017d479e9..a3c1b2777e3b 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
@@ -863,15 +863,19 @@ Instruction *InstCombiner::transformZExtICmp(ICmpInst *Cmp, ZExtInst &Zext,
(Pred == ICmpInst::ICMP_SGT && Op1C->isAllOnesValue())) {
if (!DoTransform) return Cmp;
+ Value *In = Op0;
Value *ShAmt = ConstantInt::get(CmpOpType,
CmpOpType->getScalarSizeInBits() - 1);
- Value *Sh = Builder.CreateLShr(Op0, ShAmt, Op0->getName() + ".lobit");
- Value *Cast = Builder.CreateIntCast(Sh, ZType, false /*ZExt*/);
- // Invert low bit if testing for positive.
- if (Pred == ICmpInst::ICMP_SGT)
- Cast = Builder.CreateXor(Cast, ConstantInt::get(CmpOpType, 1));
+ In = Builder.CreateLShr(In, ShAmt, In->getName() + ".lobit");
+ if (CmpOpType != ZType)
+ In = Builder.CreateIntCast(In, ZType, false /*ZExt*/);
- return replaceInstUsesWith(Zext, Cast);
+ if (Pred == ICmpInst::ICMP_SGT) {
+ Constant *One = ConstantInt::get(CmpOpType, 1);
+ In = Builder.CreateXor(In, One, In->getName() + ".not");
+ }
+
+ return replaceInstUsesWith(Zext, In);
}
// zext (X == 0) to i32 --> X^1 iff X has only the low bit set.
More information about the llvm-commits
mailing list