Scale 1 is always ok.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 28 Mar 2007 01:55:52 +0000 (01:55 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 28 Mar 2007 01:55:52 +0000 (01:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35407 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 68510156125cb4de21525a081e9617b81085f9b2..d906263a5ba07e25c6675512f62b2f680ef33b4d 100644 (file)
@@ -4137,7 +4137,7 @@ static bool SinkInvariantGEPIndex(BinaryOperator *BinOp,
           int64_t Cst = cast<ConstantInt>(BinOp->getOperand(1))->getSExtValue();
           // e.g. load (gep i32 * %P, (X+42)) => load (%P + X*4 + 168).
           if (TLI.isLegalAddressImmediate(Cst*Scale, UseTy) &&
-              TLI.isLegalAddressScale(Scale, UseTy)) {
+              (Scale == 1 || TLI.isLegalAddressScale(Scale, UseTy))) {
             DestBBs.insert(GEPIBB);
             MadeChange = true;
             break;