From: Craig Topper Date: Thu, 11 May 2017 18:40:53 +0000 (+0000) Subject: [APInt] Remove an APInt copy from the return of APInt::multiplicativeInverse. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=483eed9183319f6a08fcf19a907e1905eb63a080;p=llvm [APInt] Remove an APInt copy from the return of APInt::multiplicativeInverse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302816 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp index 0fade287d43..bcec648ad0c 100644 --- a/lib/Support/APInt.cpp +++ b/lib/Support/APInt.cpp @@ -1141,7 +1141,10 @@ APInt APInt::multiplicativeInverse(const APInt& modulo) const { // interested in a positive inverse. Calculate a positive one from a negative // one if necessary. A simple addition of the modulo suffices because // abs(t[i]) is known to be less than *this/2 (see the link above). - return t[i].isNegative() ? t[i] + modulo : t[i]; + if (t[i].isNegative()) + t[i] += modulo; + + return std::move(t[i]); } /// Calculate the magic numbers required to implement a signed integer division