[llvm] [AArch64] Implement spill/fill of predicate pair register classes (PR #76068)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 21 06:14:45 PST 2023


================
@@ -3771,6 +3771,13 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
     MinOffset = -256;
     MaxOffset = 255;
     break;
+  case AArch64::LDR_PPXI:
+  case AArch64::STR_PPXI:
+    Scale = TypeSize::getScalable(2);
+    Width = TypeSize::getScalable(2 * 2);
+    MinOffset = -256;
+    MaxOffset = 255;
----------------
paulwalker-arm wrote:

`MaxOffset` should be 254 to account for the extra offset required when the operation gets serialised into a sequence of single register `LDR/STR` instructions.

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


More information about the llvm-commits mailing list