[llvm] [AArch64] merge index address with large offset into base address (PR #72187)

via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 21 17:06:57 PST 2023


================
@@ -1110,6 +1142,24 @@ bool AArch64DAGToDAGISel::SelectAddrModeIndexed(SDValue N, unsigned Size,
         OffImm = CurDAG->getTargetConstant(RHSC >> Scale, dl, MVT::i64);
         return true;
       }
+
+      // Perfer [Reg + imm] mode.
+      //     ADD  BaseReg, WideImmediate & 0x0fff000
+      //     LDR  X2, [BaseReg, WideImmediate & 0x0fff]
+      SDValue LHS = N.getOperand(0);
+      if (isPreferredBaseAddrMode(RHSC)) {
----------------
vfdff wrote:

Thanks, I'll add the `check for Scale`, but this merge doesn't change odd or even.

https://github.com/llvm/llvm-project/pull/72187


More information about the llvm-commits mailing list