diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp b/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp index fc7b5984fe3..d5643d38428 100644 --- a/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp +++ b/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp @@ -148,9 +148,11 @@ bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) { for (auto &MI : MBB) { if (!isNarrowFPStore(MI)) continue; - unsigned BaseReg; + MachineOperand *BaseOp; int64_t Offset; - if (TII->getMemOpBaseRegImmOfs(MI, BaseReg, Offset, TRI)) { + if (TII->getMemOperandWithOffset(MI, BaseOp, Offset, TRI) && + BaseOp->isReg()) { + unsigned BaseReg = BaseOp->getReg(); if (PrevBaseReg == BaseReg) { // If this block can take STPs, skip ahead to the next block. if (!SuppressSTP && shouldAddSTPToBlock(MI.getParent())) |