[InstSimplify] Use m_SignBit instead of calling getSignBit and using m_Specific....
authorCraig Topper <craig.topper@gmail.com>
Thu, 30 Mar 2017 22:21:16 +0000 (22:21 +0000)
committerCraig Topper <craig.topper@gmail.com>
Thu, 30 Mar 2017 22:21:16 +0000 (22:21 +0000)
llvm-svn: 299121

llvm/lib/Analysis/InstructionSimplify.cpp

index dace55a..29c0d0a 100644 (file)
@@ -565,10 +565,8 @@ static Value *SimplifyAddInst(Value *Op0, Value *Op1, bool isNSW, bool isNUW,
   // add nsw/nuw (xor Y, signbit), signbit --> Y
   // The no-wrapping add guarantees that the top bit will be set by the add.
   // Therefore, the xor must be clearing the already set sign bit of Y.
-  Constant *SignBit =
-      ConstantInt::get(Ty, APInt::getSignBit(Ty->getScalarSizeInBits()));
-  if ((isNSW || isNUW) && match(Op1, m_Specific(SignBit)) &&
-      match(Op0, m_Xor(m_Value(Y), m_Specific(SignBit))))
+  if ((isNSW || isNUW) && match(Op1, m_SignBit()) &&
+      match(Op0, m_Xor(m_Value(Y), m_SignBit())))
     return Y;
 
   /// i1 add -> xor.