From: Chris Lattner Date: Mon, 5 Dec 2005 18:23:57 +0000 (+0000) Subject: getRawValue zero extens for unsigned values, use getsextvalue so that we X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e08dc62b1a3b72e351165128ba63c2cdd2f41eb6;p=oota-llvm.git getRawValue zero extens for unsigned values, use getsextvalue so that we know that small negative values fit into the immediate field of addressing modes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24608 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 4f18637c9f6..f170592ece3 100644 --- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -560,9 +560,9 @@ static bool isTargetConstant(const SCEVHandle &V) { // FIXME: Look at the target to decide if &GV is a legal constant immediate. if (SCEVConstant *SC = dyn_cast(V)) { // PPC allows a sign-extended 16-bit immediate field. - if ((int64_t)SC->getValue()->getRawValue() > -(1 << 16) && - (int64_t)SC->getValue()->getRawValue() < (1 << 16)-1) - return true; + int64_t V = SC->getValue()->getSExtValue(); + if (V > -(1 << 16) && V < (1 << 16)-1) + return true; return false; }