[llvm] [AArch64] Remove copy in SVE/SME predicate spill and fill (PR #81716)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 28 06:46:13 PST 2024


================
@@ -6680,7 +6680,7 @@ multiclass sve_mem_z_spill<string asm> {
 }
 
 class sve_mem_p_spill<string asm>
-: I<(outs), (ins PPRAny:$Pt, GPR64sp:$Rn, simm9:$imm9),
+: I<(outs), (ins PPRorPNRAny:$Pt, GPR64sp:$Rn, simm9:$imm9),
----------------
sdesmalen-arm wrote:

This removes the need for having the following InstAliases in AArch64SVEInstrInfo.td:
```        
// Aliases for existing SVE instructions for which predicate-as-counter are
// accepted as an operand to the instruction
def : InstAlias<"ldr $Pt, [$Rn, $imm9, mul vl]",
               (LDR_PXI PNRasPPRAny:$Pt, GPR64sp:$Rn, simm9:$imm9), 0>;
def : InstAlias<"ldr $Pt, [$Rn]",
               (LDR_PXI PNRasPPRAny:$Pt, GPR64sp:$Rn, 0), 0>;

def : InstAlias<"str $Pt, [$Rn, $imm9, mul vl]",
               (STR_PXI PNRasPPRAny:$Pt, GPR64sp:$Rn, simm9:$imm9), 0>;
def : InstAlias<"str $Pt, [$Rn]",
               (STR_PXI PNRasPPRAny:$Pt, GPR64sp:$Rn, 0), 0>;
```
Can you remove them?

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


More information about the llvm-commits mailing list