diff options
-rw-r--r-- | llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp b/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp index 9481b5aed0d..c5a46143ee5 100644 --- a/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp +++ b/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp @@ -347,9 +347,12 @@ MbbIterator LanaiMemAluCombiner::findClosestSuitableAluInstr( return First; } - // Usage of the base register of a form not suitable for merging - if (First != Last && InstrUsesReg(First, Base)) { - break; + // Usage of the base or offset register is not a form suitable for merging. + if (First != Last) { + if (InstrUsesReg(First, Base)) + break; + if (Offset->isReg() && InstrUsesReg(First, Offset)) + break; } } |