diff options
-rw-r--r-- | lib/Target/SparcV9/SparcV9BurgISel.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/SparcV9/SparcV9BurgISel.cpp b/lib/Target/SparcV9/SparcV9BurgISel.cpp index f7dcb680cd..ca8b5b9845 100644 --- a/lib/Target/SparcV9/SparcV9BurgISel.cpp +++ b/lib/Target/SparcV9/SparcV9BurgISel.cpp @@ -1738,7 +1738,7 @@ static Value *GetGEPInstArgs(InstructionNode *gepNode, // in this and any preceding GetElemPtr instructions. bool foldedGEPs = false; bool leadingNonZeroIdx = gepI && ! IsZero(*gepI->idx_begin()); - if (allConstantIndices) + if (allConstantIndices && !leadingNonZeroIdx) if (Value* newPtr = FoldGetElemChain(ptrChild, idxVec, leadingNonZeroIdx)) { ptrVal = newPtr; foldedGEPs = true; |