From 78609efbe9b488b1e32f182d2aea1795be25a566 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 10 May 2017 07:50:15 +0000 Subject: [PATCH] [APInt] Use getNumWords function in udiv/urem/udivrem instead of reimplementinging it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302625 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/APInt.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp index 3bfd6ba5ec7..99a7b18b173 100644 --- a/lib/Support/APInt.cpp +++ b/lib/Support/APInt.cpp @@ -1578,11 +1578,9 @@ APInt APInt::udiv(const APInt& RHS) const { } // Get some facts about the LHS and RHS number of bits and words - unsigned rhsBits = RHS.getActiveBits(); - unsigned rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1); + unsigned rhsWords = getNumWords(RHS.getActiveBits()); assert(rhsWords && "Divided by zero???"); - unsigned lhsBits = this->getActiveBits(); - unsigned lhsWords = !lhsBits ? 0 : (APInt::whichWord(lhsBits - 1) + 1); + unsigned lhsWords = getNumWords(getActiveBits()); // Deal with some degenerate cases if (!lhsWords) @@ -1623,12 +1621,10 @@ APInt APInt::urem(const APInt& RHS) const { } // Get some facts about the LHS - unsigned lhsBits = getActiveBits(); - unsigned lhsWords = !lhsBits ? 0 : (whichWord(lhsBits - 1) + 1); + unsigned lhsWords = getNumWords(getActiveBits()); // Get some facts about the RHS - unsigned rhsBits = RHS.getActiveBits(); - unsigned rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1); + unsigned rhsWords = getNumWords(RHS.getActiveBits()); assert(rhsWords && "Performing remainder operation by zero ???"); // Check the degenerate cases @@ -1677,10 +1673,8 @@ void APInt::udivrem(const APInt &LHS, const APInt &RHS, } // Get some size facts about the dividend and divisor - unsigned lhsBits = LHS.getActiveBits(); - unsigned lhsWords = !lhsBits ? 0 : (APInt::whichWord(lhsBits - 1) + 1); - unsigned rhsBits = RHS.getActiveBits(); - unsigned rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1); + unsigned lhsWords = getNumWords(LHS.getActiveBits()); + unsigned rhsWords = getNumWords(RHS.getActiveBits()); // Check the degenerate cases if (lhsWords == 0) { -- 2.40.0