Fix an undefined behavior introduces in r247234
authorSteven Wu <stevenwu@apple.com>
Thu, 10 Sep 2015 16:32:28 +0000 (16:32 +0000)
committerSteven Wu <stevenwu@apple.com>
Thu, 10 Sep 2015 16:32:28 +0000 (16:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247296 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64ISelDAGToDAG.cpp

index afacfa5c90f5f27d552574d7fd4ee5b8049c2484..6c538c9741dd5433873b049add78cc22acaf0284 100644 (file)
@@ -646,7 +646,7 @@ bool AArch64DAGToDAGISel::SelectAddrModeIndexed7S(SDValue N, unsigned Size,
     if (ConstantSDNode *RHS = dyn_cast<ConstantSDNode>(N.getOperand(1))) {
       int64_t RHSC = RHS->getSExtValue();
       unsigned Scale = Log2_32(Size);
-      if ((RHSC & (Size - 1)) == 0 && RHSC >= (-0x40 << Scale) &&
+      if ((RHSC & (Size - 1)) == 0 && RHSC >= -(0x40 << Scale) &&
           RHSC < (0x40 << Scale)) {
         Base = N.getOperand(0);
         if (Base.getOpcode() == ISD::FrameIndex) {