From 698b76cb6ee5daea9e9f7fb0f8936e144610fd5f Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 21 Oct 2017 16:35:41 +0000 Subject: [PATCH] [ValueTracking] Remove unnecessary temporary APInt from computeNumSignBitsVectorConstant. We can just use getNumSignBits instead of inverting negative numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316266 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/ValueTracking.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index 244bc7d6616..182377d39c0 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/lib/Analysis/ValueTracking.cpp @@ -2097,11 +2097,7 @@ static unsigned computeNumSignBitsVectorConstant(const Value *V, if (!Elt) return 0; - // If the sign bit is 1, flip the bits, so we always count leading zeros. - APInt EltVal = Elt->getValue(); - if (EltVal.isNegative()) - EltVal = ~EltVal; - MinSignBits = std::min(MinSignBits, EltVal.countLeadingZeros()); + MinSignBits = std::min(MinSignBits, Elt->getValue().getNumSignBits()); } return MinSignBits; -- 2.11.0