[llvm] [LLVM][AArch64] Add register classes for Armv9.6 assembly (PR #111717)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 11 08:14:44 PDT 2024
================
@@ -1124,23 +1126,28 @@ let EncoderMethod = "EncodeRegAsMultipleOf<2>",
//******************************************************************************
// SVE vector register classes
-class ZPRClass<int lastreg> : RegisterClass<"AArch64",
+class ZPRClass<int firstreg, int lastreg, int step = 1> : RegisterClass<"AArch64",
[nxv16i8, nxv8i16, nxv4i32, nxv2i64,
nxv2f16, nxv4f16, nxv8f16,
nxv2bf16, nxv4bf16, nxv8bf16,
nxv2f32, nxv4f32,
nxv2f64],
- 128, (sequence "Z%u", 0, lastreg)> {
+ 128, (sequence "Z%u", firstreg, lastreg, step)> {
let Size = 128;
}
-def ZPR : ZPRClass<31> {
+def ZPRMul2 : ZPRClass<0, 30, 2>;
+def ZPRMul4 : ZPRClass<0, 28, 4>;
----------------
Lukacma wrote:
I think ZPRMul2 and ZPRMul4 classes are unnecessary here. They were added so we could do 'isTypedVectorListMultiple' check correctly for existing 2 or 4 elements vector lists on line 1379. But I think existing classes ZPR2Mul2 and ZPR4Mul4 can be used for that purpose as well.
https://github.com/llvm/llvm-project/pull/111717
More information about the llvm-commits
mailing list