Skip to content

Commit 0867789

Browse files
committed
fixup: let predicate spill and fill take ppr or pnr
1 parent 4990b25 commit 0867789

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

llvm/lib/Target/AArch64/AArch64RegisterInfo.td

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,6 +1004,16 @@ let Namespace = "AArch64" in {
10041004
def psub1 : SubRegIndex<16, -1>;
10051005
}
10061006

1007+
class PPRorPNRClass : RegisterClass<
1008+
"AArch64",
1009+
[ nxv16i1, nxv8i1, nxv4i1, nxv2i1, nxv1i1 ], 16,
1010+
(add PPR, PNR)> {
1011+
let Size = 16;
1012+
}
1013+
def PPRorPNR : PPRorPNRClass;
1014+
def PPRorPNRAsmOpAny : PPRAsmOperand<"PPRorPNRAny", "PPRorPNR", 0>;
1015+
def PPRorPNRAny : PPRRegOp<"", PPRorPNRAsmOpAny, ElementSizeNone, PPRorPNR>;
1016+
10071017
// Pairs of SVE predicate vector registers.
10081018
def PSeqPairs : RegisterTuples<[psub0, psub1], [(rotl PPR, 0), (rotl PPR, 1)]>;
10091019

llvm/lib/Target/AArch64/SVEInstrFormats.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6680,7 +6680,7 @@ multiclass sve_mem_z_spill<string asm> {
66806680
}
66816681

66826682
class sve_mem_p_spill<string asm>
6683-
: I<(outs), (ins PPRAny:$Pt, GPR64sp:$Rn, simm9:$imm9),
6683+
: I<(outs), (ins PPRorPNRAny:$Pt, GPR64sp:$Rn, simm9:$imm9),
66846684
asm, "\t$Pt, [$Rn, $imm9, mul vl]",
66856685
"",
66866686
[]>, Sched<[]> {
@@ -6703,7 +6703,7 @@ multiclass sve_mem_p_spill<string asm> {
67036703
def NAME : sve_mem_p_spill<asm>;
67046704

67056705
def : InstAlias<asm # "\t$Pt, [$Rn]",
6706-
(!cast<Instruction>(NAME) PPRAny:$Pt, GPR64sp:$Rn, 0), 1>;
6706+
(!cast<Instruction>(NAME) PPRorPNRAny:$Pt, GPR64sp:$Rn, 0), 1>;
67076707
}
67086708

67096709
//===----------------------------------------------------------------------===//
@@ -7915,7 +7915,7 @@ multiclass sve_mem_z_fill<string asm> {
79157915
}
79167916

79177917
class sve_mem_p_fill<string asm>
7918-
: I<(outs PPRAny:$Pt), (ins GPR64sp:$Rn, simm9:$imm9),
7918+
: I<(outs PPRorPNRAny:$Pt), (ins GPR64sp:$Rn, simm9:$imm9),
79197919
asm, "\t$Pt, [$Rn, $imm9, mul vl]",
79207920
"",
79217921
[]>, Sched<[]> {

llvm/test/CodeGen/AArch64/spillfill-sve.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# RUN: llc -mtriple=aarch64-linux-gnu -run-pass=greedy %s -o - | FileCheck %s
2-
# RUN: llc -mtriple=aarch64-linux-gnu -start-before=greedy -stop-after=aarch64-expand-pseudo %s -o - | FileCheck %s --check-prefix=EXPAND
2+
# RUN: llc -mtriple=aarch64-linux-gnu -start-before=greedy -stop-after=aarch64-expand-pseudo -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=EXPAND
33
--- |
44
; ModuleID = '<stdin>'
55
source_filename = "<stdin>"

0 commit comments

Comments
 (0)