[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


================
@@ -2378,11 +2378,13 @@ let Predicates = [HasSVEorSME] in {
     def LDR_ZZXI   : Pseudo<(outs   ZZ_b_strided_and_contiguous:$Zd), (ins GPR64sp:$sp, simm4s1:$offset),[]>, Sched<[]>;
     def LDR_ZZZXI  : Pseudo<(outs  ZZZ_b:$Zd), (ins GPR64sp:$sp, simm4s1:$offset),[]>, Sched<[]>;
     def LDR_ZZZZXI : Pseudo<(outs ZZZZ_b_strided_and_contiguous:$Zd), (ins GPR64sp:$sp, simm4s1:$offset),[]>, Sched<[]>;
+    def LDR_PPXI   : Pseudo<(outs PPR2:$pp), (ins GPR64sp:$sp, simm4s1:$offset),[]>, Sched<[]>;
----------------
paulwalker-arm wrote:

`simm4s1` seems weird given the underlying instructions use `simm9` but then we don't target the pseudos via ISEL so I guess it doesn't really matter.  It's also consistent with the existing pseudos, which also look wrong.

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


More information about the llvm-commits mailing list