[llvm] [AArch64][SVE] Handle multi-vector load/store opcodes in frame-index elimination (PR #200695)
Benjamin Maxwell via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 1 01:33:59 PDT 2026
================
@@ -4887,6 +4968,99 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
MinOffset = -8;
MaxOffset = 7;
break;
+ // SME2/SVE2p1 multi-vector contiguous, non-temporal and strided loads/stores
+ // operating on 2 consecutive vectors (2Z).
+ case AArch64::LD1B_2Z_IMM:
+ case AArch64::LD1H_2Z_IMM:
+ case AArch64::LD1W_2Z_IMM:
+ case AArch64::LD1D_2Z_IMM:
+ case AArch64::LD1B_2Z_IMM_PSEUDO:
+ case AArch64::LD1H_2Z_IMM_PSEUDO:
+ case AArch64::LD1W_2Z_IMM_PSEUDO:
+ case AArch64::LD1D_2Z_IMM_PSEUDO:
+ case AArch64::LD1B_2Z_STRIDED_IMM:
+ case AArch64::LD1H_2Z_STRIDED_IMM:
+ case AArch64::LD1W_2Z_STRIDED_IMM:
+ case AArch64::LD1D_2Z_STRIDED_IMM:
+ case AArch64::LDNT1B_2Z_IMM:
+ case AArch64::LDNT1H_2Z_IMM:
+ case AArch64::LDNT1W_2Z_IMM:
+ case AArch64::LDNT1D_2Z_IMM:
+ case AArch64::LDNT1B_2Z_IMM_PSEUDO:
+ case AArch64::LDNT1H_2Z_IMM_PSEUDO:
+ case AArch64::LDNT1W_2Z_IMM_PSEUDO:
+ case AArch64::LDNT1D_2Z_IMM_PSEUDO:
----------------
MacDue wrote:
Most of these are not really tested. (I was working on a follow-up to https://github.com/llvm/llvm-project/pull/200238, which included a MIR test for these)
https://github.com/llvm/llvm-project/pull/200695
More information about the llvm-commits
mailing list