[llvm] 7250ef3 - [InstCombine] improve readability; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 6 10:29:01 PST 2019


Author: Sanjay Patel
Date: 2019-12-06T13:26:45-05:00
New Revision: 7250ef3613cc6b81145b9543bafb86d7f9466cde

URL: https://github.com/llvm/llvm-project/commit/7250ef3613cc6b81145b9543bafb86d7f9466cde
DIFF: https://github.com/llvm/llvm-project/commit/7250ef3613cc6b81145b9543bafb86d7f9466cde.diff

LOG: [InstCombine] improve readability; NFC

CreateIntCast returns the input if its type matches, so need to duplicate that check.

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 a3c1b2777e3b..1ba017d479e9 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
@@ -863,19 +863,15 @@ 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);
-      In = Builder.CreateLShr(In, ShAmt, In->getName() + ".lobit");
-      if (CmpOpType != ZType)
-        In = Builder.CreateIntCast(In, ZType, false /*ZExt*/);
+      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));
 
-      if (Pred == ICmpInst::ICMP_SGT) {
-        Constant *One = ConstantInt::get(CmpOpType, 1);
-        In = Builder.CreateXor(In, One, In->getName() + ".not");
-      }
-
-      return replaceInstUsesWith(Zext, In);
+      return replaceInstUsesWith(Zext, Cast);
     }
 
     // zext (X == 0) to i32 --> X^1      iff X has only the low bit set.


        


More information about the llvm-commits mailing list