[binutils-gdb] aarch64: Add support for FEAT_SVE2p2 and FEAT_SME2p2
Alice Carlotti
acarlotti@sourceware.org
Tue Jul 8 20:16:20 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e68a412e16b45fea9562f8a604a56ee01014916f
commit e68a412e16b45fea9562f8a604a56ee01014916f
Author: Alice Carlotti <alice.carlotti@arm.com>
Date: Tue Jun 3 20:35:34 2025 +0100
aarch64: Add support for FEAT_SVE2p2 and FEAT_SME2p2
Diff:
---
gas/config/tc-aarch64.c | 5 +
gas/doc/c-aarch64.texi | 4 +
gas/testsuite/gas/aarch64/illegal-bfloat16.l | 8 +-
gas/testsuite/gas/aarch64/illegal-sve2.l | 47 +-
gas/testsuite/gas/aarch64/sme2p2.d | 57 +
gas/testsuite/gas/aarch64/sme2p2.s | 50 +
gas/testsuite/gas/aarch64/sve2p2.d | 694 ++++++++
gas/testsuite/gas/aarch64/sve2p2.s | 738 +++++++++
include/opcode/aarch64.h | 13 +-
opcodes/aarch64-asm.c | 13 +
opcodes/aarch64-dis-2.c | 2250 ++++++++++++++++++--------
opcodes/aarch64-dis.c | 15 +
opcodes/aarch64-opc.c | 2 +
opcodes/aarch64-opc.h | 2 +
opcodes/aarch64-tbl.h | 160 +-
15 files changed, 3375 insertions(+), 683 deletions(-)
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 1d10de97506..29a81d17112 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -10797,6 +10797,8 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"sme-b16b16", AARCH64_FEATURE (SME_B16B16),
AARCH64_FEATURES (2, SVE_B16B16, SME2)},
{"pops", AARCH64_FEATURE (PoPS), AARCH64_NO_FEATURES},
+ {"sve2p2", AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2)},
+ {"sme2p2", AARCH64_FEATURE (SME2p2), AARCH64_FEATURE (SME2)},
{NULL, AARCH64_NO_FEATURES, AARCH64_NO_FEATURES},
};
@@ -10817,12 +10819,15 @@ static const struct aarch64_virtual_dependency_table aarch64_dependencies[] = {
{AARCH64_FEATURE (SSVE_FP8DOT2), AARCH64_FEATURE (FP8DOT2_SVE)},
{AARCH64_FEATURE (SME_F16F16), AARCH64_FEATURE (SME_F16F16_F8F16)},
{AARCH64_FEATURE (SME_F8F16), AARCH64_FEATURE (SME_F16F16_F8F16)},
+ {AARCH64_FEATURE (SVE), AARCH64_FEATURE (SVE_SME2p2)},
{AARCH64_FEATURE (SME), AARCH64_FEATURE (SVE2p1_SME)},
{AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE2_SME2)},
{AARCH64_FEATURE (SME2), AARCH64_FEATURES (2, SVE2_SME2, SVE2p1_SME2)},
{AARCH64_FEATURE (SVE2p1), AARCH64_FEATURES (3, SVE2p1_SME, SVE2p1_SME2,
SVE2p1_SME2p1)},
{AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SVE2p1_SME2p1)},
+ {AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2p2_SME2p2)},
+ {AARCH64_FEATURE (SME2p2), AARCH64_FEATURES (2, SVE_SME2p2, SVE2p2_SME2p2)},
};
static aarch64_feature_set
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index d7e9c95111d..acfa00378c1 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -299,6 +299,8 @@ automatically cause those extensions to be disabled.
@tab Enable SME2.
@item @code{sme2p1} @tab @code{sme2}
@tab Enable SME2.1.
+@item @code{sme2p2} @tab @code{sme2p1}
+ @tab Enable SME2.2.
@item @code{ssbs} @tab
@tab Enable Speculative Store Bypassing Safe state read and write.
@item @code{ssve-fp8dot2} @tab @code{sme2}, @code{fp8}
@@ -327,6 +329,8 @@ automatically cause those extensions to be disabled.
@tab Enable the SVE2 SM4 Extension.
@item @code{sve2p1} @tab @code{sve2}
@tab Enable SVE2.1.
+@item @code{sve2p2} @tab @code{sve2p1}
+ @tab Enable SVE2.2.
@item @code{the} @tab
@tab Enable the Translation Hardening Extension.
@item @code{tme} @tab
diff --git a/gas/testsuite/gas/aarch64/illegal-bfloat16.l b/gas/testsuite/gas/aarch64/illegal-bfloat16.l
index e513c3cc64c..6bce84eb4a6 100644
--- a/gas/testsuite/gas/aarch64/illegal-bfloat16.l
+++ b/gas/testsuite/gas/aarch64/illegal-bfloat16.l
@@ -10,15 +10,11 @@
[^ :]+:[0-9]+: Error: operand mismatch -- `bfmmla z0\.s,z1\.h,z2\.s'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: bfmmla z0\.s, z1\.h, z2\.h
-[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvt z0\.h,p1/z,z2\.s'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: bfcvt z0\.h, p1/m, z2\.s
+[^ :]+:[0-9]+: Error: selected processor does not support `bfcvt z0\.h,p1/z,z2\.s'
[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvt z0\.h,p1/m,z2\.h'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: bfcvt z0\.h, p1/m, z2\.s
-[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvtnt z0\.h,p1/z,z2\.s'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: bfcvtnt z0\.h, p1/m, z2\.s
+[^ :]+:[0-9]+: Error: selected processor does not support `bfcvtnt z0\.h,p1/z,z2\.s'
[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvtnt z0\.h,p1/m,z2\.h'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: bfcvtnt z0\.h, p1/m, z2\.s
diff --git a/gas/testsuite/gas/aarch64/illegal-sve2.l b/gas/testsuite/gas/aarch64/illegal-sve2.l
index b5e166259bd..ca13c4423c0 100644
--- a/gas/testsuite/gas/aarch64/illegal-sve2.l
+++ b/gas/testsuite/gas/aarch64/illegal-sve2.l
@@ -280,18 +280,14 @@
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.s,p0/m,z0\.s'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.s,p0/z,z0\.h'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtlt z0\.s, p0/m, z0\.h
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtlt z0\.s,p0/z,z0\.h'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtlt z32\.d,p0/m,z0\.s'
[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtlt z0\.d,p8/m,z0\.s'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtlt z0\.d,p0/m,z32\.s'
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.d,p0/m,z0\.d'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.d,p0/z,z0\.s'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtlt z0\.d,p0/z,z0\.s'
[^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `fcvtnt z0\.h,p0/m,z0\.s'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtnt z32\.h,p0/m,z0\.s'
[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtnt z0\.h,p8/m,z0\.s'
@@ -299,27 +295,21 @@
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.h,p0/m,z0\.h'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtnt z0\.h, p0/m, z0\.s
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.h,p0/z,z0\.s'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtnt z0\.h, p0/m, z0\.s
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtnt z0\.h,p0/z,z0\.s'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtnt z32\.s,p0/m,z0\.d'
[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtnt z0\.s,p8/m,z0\.d'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtnt z0\.s,p0/m,z32\.d'
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.s,p0/m,z0\.s'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtnt z0\.s, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.s,p0/z,z0\.d'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtnt z0\.s, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtnt z0\.s,p0/z,z0\.d'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtx z32\.s,p0/m,z0\.d'
[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtx z0\.s,p8/m,z0\.d'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtx z0\.s,p0/m,z32\.d'
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtx z0\.s,p0/m,z0\.s'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtx z0\.s, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtx z0\.s,p0/z,z0\.d'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtx z0\.s, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtx z0\.s,p0/z,z0\.d'
[^ :]+:[0-9]+: Warning: register size not compatible with previous `movprfx' at operand 1 -- `fcvtx z0\.s,p0/m,z2\.d'
[^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `fcvtxnt z0\.s,p0/m,z0\.d'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtxnt z32\.s,p0/m,z0\.d'
@@ -328,9 +318,7 @@
[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtxnt z0\.s,p0/m,z0\.s'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: fcvtxnt z0\.s, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtxnt z0\.s,p0/z,z0\.d'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: fcvtxnt z0\.s, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `fcvtxnt z0\.s,p0/z,z0\.d'
[^ :]+:[0-9]+: Error: operand mismatch -- `flogb z0\.b,p0/m,z0\.b'
[^ :]+:[0-9]+: Info: did you mean this\?
[^ :]+:[0-9]+: Info: flogb z0\.h, p0/m, z0\.h
@@ -343,12 +331,7 @@
[^ :]+:[0-9]+: Info: other valid variant\(s\):
[^ :]+:[0-9]+: Info: flogb z0\.s, p0/m, z0\.s
[^ :]+:[0-9]+: Info: flogb z0\.d, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `flogb z0\.h,p0/z,z0\.h'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: flogb z0\.h, p0/m, z0\.h
-[^ :]+:[0-9]+: Info: other valid variant\(s\):
-[^ :]+:[0-9]+: Info: flogb z0\.s, p0/m, z0\.s
-[^ :]+:[0-9]+: Info: flogb z0\.d, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `flogb z0\.h,p0/z,z0\.h'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `flogb z32\.h,p0/m,z0\.h'
[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `flogb z0\.h,p8/m,z0\.h'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `flogb z0\.h,p0/m,z32\.h'
@@ -1302,13 +1285,7 @@
[^ :]+:[0-9]+: Info: sqabs z0\.h, p0/m, z0\.h
[^ :]+:[0-9]+: Info: sqabs z0\.s, p0/m, z0\.s
[^ :]+:[0-9]+: Info: sqabs z0\.d, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `sqabs z0\.b,p0/z,z0\.b'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: sqabs z0\.b, p0/m, z0\.b
-[^ :]+:[0-9]+: Info: other valid variant\(s\):
-[^ :]+:[0-9]+: Info: sqabs z0\.h, p0/m, z0\.h
-[^ :]+:[0-9]+: Info: sqabs z0\.s, p0/m, z0\.s
-[^ :]+:[0-9]+: Info: sqabs z0\.d, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `sqabs z0\.b,p0/z,z0\.b'
[^ :]+:[0-9]+: Error: expected a register at operand 1 -- `sqadd z32\.b,p0/m,z0\.b,z0\.b'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `sqadd z0\.b,p0/m,z32\.b,z0\.b'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 4 -- `sqadd z0\.b,p0/m,z0\.b,z32\.b'
@@ -1555,13 +1532,7 @@
[^ :]+:[0-9]+: Info: sqneg z0\.h, p0/m, z0\.h
[^ :]+:[0-9]+: Info: sqneg z0\.s, p0/m, z0\.s
[^ :]+:[0-9]+: Info: sqneg z0\.d, p0/m, z0\.d
-[^ :]+:[0-9]+: Error: operand mismatch -- `sqneg z0\.b,p0/z,z0\.b'
-[^ :]+:[0-9]+: Info: did you mean this\?
-[^ :]+:[0-9]+: Info: sqneg z0\.b, p0/m, z0\.b
-[^ :]+:[0-9]+: Info: other valid variant\(s\):
-[^ :]+:[0-9]+: Info: sqneg z0\.h, p0/m, z0\.h
-[^ :]+:[0-9]+: Info: sqneg z0\.s, p0/m, z0\.s
-[^ :]+:[0-9]+: Info: sqneg z0\.d, p0/m, z0\.d
+[^ :]+:[0-9]+: Error: selected processor does not support `sqneg z0\.b,p0/z,z0\.b'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `sqrdcmlah z32\.h,z0\.h,z0\.h\[0\],#0'
[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 2 -- `sqrdcmlah z0\.h,z32\.h,z0\.h\[0\],#0'
[^ :]+:[0-9]+: Error: z0-z7 expected at operand 3 -- `sqrdcmlah z0\.h,z0\.h,z8\.h\[0\],#0'
diff --git a/gas/testsuite/gas/aarch64/sme2p2.d b/gas/testsuite/gas/aarch64/sme2p2.d
new file mode 100644
index 00000000000..5bcac530b05
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p2.d
@@ -0,0 +1,57 @@
+#as: -march=armv8-a+sme2p2
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: c160e800 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, z0\.h
+ *[0-9a-f]+: c160e81e fmul {z30\.h-z31\.h}, {z0\.h-z1\.h}, z0\.h
+ *[0-9a-f]+: c160ebc0 fmul {z0\.h-z1\.h}, {z30\.h-z31\.h}, z0\.h
+ *[0-9a-f]+: c17ee800 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, z15\.h
+ *[0-9a-f]+: c1a0e800 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, z0\.s
+ *[0-9a-f]+: c1a0e81e fmul {z30\.s-z31\.s}, {z0\.s-z1\.s}, z0\.s
+ *[0-9a-f]+: c1a0ebc0 fmul {z0\.s-z1\.s}, {z30\.s-z31\.s}, z0\.s
+ *[0-9a-f]+: c1bee800 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, z15\.s
+ *[0-9a-f]+: c1e0e800 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, z0\.d
+ *[0-9a-f]+: c1e0e81e fmul {z30\.d-z31\.d}, {z0\.d-z1\.d}, z0\.d
+ *[0-9a-f]+: c1e0ebc0 fmul {z0\.d-z1\.d}, {z30\.d-z31\.d}, z0\.d
+ *[0-9a-f]+: c1fee800 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, z15\.d
+ *[0-9a-f]+: c161e800 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, z0\.h
+ *[0-9a-f]+: c161e81c fmul {z28\.h-z31\.h}, {z0\.h-z3\.h}, z0\.h
+ *[0-9a-f]+: c161eb80 fmul {z0\.h-z3\.h}, {z28\.h-z31\.h}, z0\.h
+ *[0-9a-f]+: c17fe800 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, z15\.h
+ *[0-9a-f]+: c1a1e800 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, z0\.s
+ *[0-9a-f]+: c1a1e81c fmul {z28\.s-z31\.s}, {z0\.s-z3\.s}, z0\.s
+ *[0-9a-f]+: c1a1eb80 fmul {z0\.s-z3\.s}, {z28\.s-z31\.s}, z0\.s
+ *[0-9a-f]+: c1bfe800 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, z15\.s
+ *[0-9a-f]+: c1e1e800 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, z0\.d
+ *[0-9a-f]+: c1e1e81c fmul {z28\.d-z31\.d}, {z0\.d-z3\.d}, z0\.d
+ *[0-9a-f]+: c1e1eb80 fmul {z0\.d-z3\.d}, {z28\.d-z31\.d}, z0\.d
+ *[0-9a-f]+: c1ffe800 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, z15\.d
+ *[0-9a-f]+: c160e400 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+ *[0-9a-f]+: c160e41e fmul {z30\.h-z31\.h}, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+ *[0-9a-f]+: c160e7c0 fmul {z0\.h-z1\.h}, {z30\.h-z31\.h}, {z0\.h-z1\.h}
+ *[0-9a-f]+: c17ee400 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, {z30\.h-z31\.h}
+ *[0-9a-f]+: c1a0e400 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+ *[0-9a-f]+: c1a0e41e fmul {z30\.s-z31\.s}, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+ *[0-9a-f]+: c1a0e7c0 fmul {z0\.s-z1\.s}, {z30\.s-z31\.s}, {z0\.s-z1\.s}
+ *[0-9a-f]+: c1bee400 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, {z30\.s-z31\.s}
+ *[0-9a-f]+: c1e0e400 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+ *[0-9a-f]+: c1e0e41e fmul {z30\.d-z31\.d}, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+ *[0-9a-f]+: c1e0e7c0 fmul {z0\.d-z1\.d}, {z30\.d-z31\.d}, {z0\.d-z1\.d}
+ *[0-9a-f]+: c1fee400 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, {z30\.d-z31\.d}
+ *[0-9a-f]+: c161e400 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, {z0\.h-z3\.h}
+ *[0-9a-f]+: c161e41c fmul {z28\.h-z31\.h}, {z0\.h-z3\.h}, {z0\.h-z3\.h}
+ *[0-9a-f]+: c161e780 fmul {z0\.h-z3\.h}, {z28\.h-z31\.h}, {z0\.h-z3\.h}
+ *[0-9a-f]+: c17de400 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, {z28\.h-z31\.h}
+ *[0-9a-f]+: c1a1e400 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, {z0\.s-z3\.s}
+ *[0-9a-f]+: c1a1e41c fmul {z28\.s-z31\.s}, {z0\.s-z3\.s}, {z0\.s-z3\.s}
+ *[0-9a-f]+: c1a1e780 fmul {z0\.s-z3\.s}, {z28\.s-z31\.s}, {z0\.s-z3\.s}
+ *[0-9a-f]+: c1bde400 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, {z28\.s-z31\.s}
+ *[0-9a-f]+: c1e1e400 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, {z0\.d-z3\.d}
+ *[0-9a-f]+: c1e1e41c fmul {z28\.d-z31\.d}, {z0\.d-z3\.d}, {z0\.d-z3\.d}
+ *[0-9a-f]+: c1e1e780 fmul {z0\.d-z3\.d}, {z28\.d-z31\.d}, {z0\.d-z3\.d}
+ *[0-9a-f]+: c1fde400 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, {z28\.d-z31\.d}
diff --git a/gas/testsuite/gas/aarch64/sme2p2.s b/gas/testsuite/gas/aarch64/sme2p2.s
new file mode 100644
index 00000000000..2c9773310d4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p2.s
@@ -0,0 +1,50 @@
+ fmul {z0.h-z1.h}, {z0.h-z1.h}, z0.h
+ fmul {z30.h-z31.h}, {z0.h-z1.h}, z0.h
+ fmul {z0.h-z1.h}, {z30.h-z31.h}, z0.h
+ fmul {z0.h-z1.h}, {z0.h-z1.h}, z15.h
+ fmul {z0.s-z1.s}, {z0.s-z1.s}, z0.s
+ fmul {z30.s-z31.s}, {z0.s-z1.s}, z0.s
+ fmul {z0.s-z1.s}, {z30.s-z31.s}, z0.s
+ fmul {z0.s-z1.s}, {z0.s-z1.s}, z15.s
+ fmul {z0.d-z1.d}, {z0.d-z1.d}, z0.d
+ fmul {z30.d-z31.d}, {z0.d-z1.d}, z0.d
+ fmul {z0.d-z1.d}, {z30.d-z31.d}, z0.d
+ fmul {z0.d-z1.d}, {z0.d-z1.d}, z15.d
+ fmul {z0.h-z3.h}, {z0.h-z3.h}, z0.h
+ fmul {z28.h-z31.h}, {z0.h-z3.h}, z0.h
+ fmul {z0.h-z3.h}, {z28.h-z31.h}, z0.h
+ fmul {z0.h-z3.h}, {z0.h-z3.h}, z15.h
+ fmul {z0.s-z3.s}, {z0.s-z3.s}, z0.s
+ fmul {z28.s-z31.s}, {z0.s-z3.s}, z0.s
+ fmul {z0.s-z3.s}, {z28.s-z31.s}, z0.s
+ fmul {z0.s-z3.s}, {z0.s-z3.s}, z15.s
+ fmul {z0.d-z3.d}, {z0.d-z3.d}, z0.d
+ fmul {z28.d-z31.d}, {z0.d-z3.d}, z0.d
+ fmul {z0.d-z3.d}, {z28.d-z31.d}, z0.d
+ fmul {z0.d-z3.d}, {z0.d-z3.d}, z15.d
+
+ fmul {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h}
+ fmul {z30.h-z31.h}, {z0.h-z1.h}, {z0.h-z1.h}
+ fmul {z0.h-z1.h}, {z30.h-z31.h}, {z0.h-z1.h}
+ fmul {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h}
+ fmul {z0.s-z1.s}, {z0.s-z1.s}, {z0.s-z1.s}
+ fmul {z30.s-z31.s}, {z0.s-z1.s}, {z0.s-z1.s}
+ fmul {z0.s-z1.s}, {z30.s-z31.s}, {z0.s-z1.s}
+ fmul {z0.s-z1.s}, {z0.s-z1.s}, {z30.s-z31.s}
+ fmul {z0.d-z1.d}, {z0.d-z1.d}, {z0.d-z1.d}
+ fmul {z30.d-z31.d}, {z0.d-z1.d}, {z0.d-z1.d}
+ fmul {z0.d-z1.d}, {z30.d-z31.d}, {z0.d-z1.d}
+ fmul {z0.d-z1.d}, {z0.d-z1.d}, {z30.d-z31.d}
+ fmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
+ fmul {z28.h-z31.h}, {z0.h-z3.h}, {z0.h-z3.h}
+ fmul {z0.h-z3.h}, {z28.h-z31.h}, {z0.h-z3.h}
+ fmul {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h}
+ fmul {z0.s-z3.s}, {z0.s-z3.s}, {z0.s-z3.s}
+ fmul {z28.s-z31.s}, {z0.s-z3.s}, {z0.s-z3.s}
+ fmul {z0.s-z3.s}, {z28.s-z31.s}, {z0.s-z3.s}
+ fmul {z0.s-z3.s}, {z0.s-z3.s}, {z28.s-z31.s}
+ fmul {z0.d-z3.d}, {z0.d-z3.d}, {z0.d-z3.d}
+ fmul {z28.d-z31.d}, {z0.d-z3.d}, {z0.d-z3.d}
+ fmul {z0.d-z3.d}, {z28.d-z31.d}, {z0.d-z3.d}
+ fmul {z0.d-z3.d}, {z0.d-z3.d}, {z28.d-z31.d}
+
diff --git a/gas/testsuite/gas/aarch64/sve2p2.d b/gas/testsuite/gas/aarch64/sve2p2.d
new file mode 100644
index 00000000000..f401cb4fc30
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p2.d
@@ -0,0 +1,694 @@
+#as: -march=armv8-a+sve2p2
+#as: -march=armv8-a+sme2p2
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0406a000 abs z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0406a01f abs z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0406bc00 abs z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 0406a3e0 abs z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 0446a000 abs z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0446a01f abs z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0446bc00 abs z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0446a3e0 abs z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0486a000 abs z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0486a01f abs z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0486bc00 abs z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0486a3e0 abs z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c6a000 abs z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c6a01f abs z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c6bc00 abs z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c6a3e0 abs z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 649ac000 bfcvt z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 649ac01f bfcvt z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 649adc00 bfcvt z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 649ac3e0 bfcvt z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 6482a000 bfcvtnt z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 6482a01f bfcvtnt z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 6482bc00 bfcvtnt z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 6482a3e0 bfcvtnt z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 0408a000 cls z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0408a01f cls z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0408bc00 cls z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 0408a3e0 cls z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 0448a000 cls z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0448a01f cls z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0448bc00 cls z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0448a3e0 cls z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0488a000 cls z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0488a01f cls z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0488bc00 cls z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0488a3e0 cls z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c8a000 cls z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c8a01f cls z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c8bc00 cls z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c8a3e0 cls z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0409a000 clz z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0409a01f clz z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0409bc00 clz z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 0409a3e0 clz z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 0449a000 clz z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0449a01f clz z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0449bc00 clz z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0449a3e0 clz z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0489a000 clz z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0489a01f clz z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0489bc00 clz z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0489a3e0 clz z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c9a000 clz z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c9a01f clz z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c9bc00 clz z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c9a3e0 clz z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 040ba000 cnot z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040ba01f cnot z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040bbc00 cnot z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 040ba3e0 cnot z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 044ba000 cnot z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044ba01f cnot z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044bbc00 cnot z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 044ba3e0 cnot z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 048ba000 cnot z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048ba01f cnot z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048bbc00 cnot z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 048ba3e0 cnot z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04cba000 cnot z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cba01f cnot z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cbbc00 cnot z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04cba3e0 cnot z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 040aa000 cnt z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040aa01f cnt z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040abc00 cnt z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 040aa3e0 cnt z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 044aa000 cnt z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044aa01f cnt z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044abc00 cnt z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 044aa3e0 cnt z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 048aa000 cnt z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048aa01f cnt z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048abc00 cnt z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 048aa3e0 cnt z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04caa000 cnt z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04caa01f cnt z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cabc00 cnt z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04caa3e0 cnt z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 05218000 compact z0\.b, p0, z0\.b
+ *[0-9a-f]+: 0521801f compact z31\.b, p0, z0\.b
+ *[0-9a-f]+: 05219c00 compact z0\.b, p7, z0\.b
+ *[0-9a-f]+: 052183e0 compact z0\.b, p0, z31\.b
+ *[0-9a-f]+: 05618000 compact z0\.h, p0, z0\.h
+ *[0-9a-f]+: 0561801f compact z31\.h, p0, z0\.h
+ *[0-9a-f]+: 05619c00 compact z0\.h, p7, z0\.h
+ *[0-9a-f]+: 056183e0 compact z0\.h, p0, z31\.h
+ *[0-9a-f]+: 05a18000 compact z0\.s, p0, z0\.s
+ *[0-9a-f]+: 05a1801f compact z31\.s, p0, z0\.s
+ *[0-9a-f]+: 05a19c00 compact z0\.s, p7, z0\.s
+ *[0-9a-f]+: 05a183e0 compact z0\.s, p0, z31\.s
+ *[0-9a-f]+: 05e18000 compact z0\.d, p0, z0\.d
+ *[0-9a-f]+: 05e1801f compact z31\.d, p0, z0\.d
+ *[0-9a-f]+: 05e19c00 compact z0\.d, p7, z0\.d
+ *[0-9a-f]+: 05e183e0 compact z0\.d, p0, z31\.d
+ *[0-9a-f]+: 05318000 expand z0\.b, p0, z0\.b
+ *[0-9a-f]+: 0531801f expand z31\.b, p0, z0\.b
+ *[0-9a-f]+: 05319c00 expand z0\.b, p7, z0\.b
+ *[0-9a-f]+: 053183e0 expand z0\.b, p0, z31\.b
+ *[0-9a-f]+: 05718000 expand z0\.h, p0, z0\.h
+ *[0-9a-f]+: 0571801f expand z31\.h, p0, z0\.h
+ *[0-9a-f]+: 05719c00 expand z0\.h, p7, z0\.h
+ *[0-9a-f]+: 057183e0 expand z0\.h, p0, z31\.h
+ *[0-9a-f]+: 05b18000 expand z0\.s, p0, z0\.s
+ *[0-9a-f]+: 05b1801f expand z31\.s, p0, z0\.s
+ *[0-9a-f]+: 05b19c00 expand z0\.s, p7, z0\.s
+ *[0-9a-f]+: 05b183e0 expand z0\.s, p0, z31\.s
+ *[0-9a-f]+: 05f18000 expand z0\.d, p0, z0\.d
+ *[0-9a-f]+: 05f1801f expand z31\.d, p0, z0\.d
+ *[0-9a-f]+: 05f19c00 expand z0\.d, p7, z0\.d
+ *[0-9a-f]+: 05f183e0 expand z0\.d, p0, z31\.d
+ *[0-9a-f]+: 044ca000 fabs z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044ca01f fabs z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044cbc00 fabs z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 044ca3e0 fabs z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 048ca000 fabs z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048ca01f fabs z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048cbc00 fabs z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 048ca3e0 fabs z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04cca000 fabs z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cca01f fabs z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04ccbc00 fabs z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04cca3e0 fabs z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 649aa000 fcvt z0\.s, p0/z, z0\.h
+ *[0-9a-f]+: 649aa01f fcvt z31\.s, p0/z, z0\.h
+ *[0-9a-f]+: 649abc00 fcvt z0\.s, p7/z, z0\.h
+ *[0-9a-f]+: 649aa3e0 fcvt z0\.s, p0/z, z31\.h
+ *[0-9a-f]+: 64daa000 fcvt z0\.d, p0/z, z0\.h
+ *[0-9a-f]+: 64daa01f fcvt z31\.d, p0/z, z0\.h
+ *[0-9a-f]+: 64dabc00 fcvt z0\.d, p7/z, z0\.h
+ *[0-9a-f]+: 64daa3e0 fcvt z0\.d, p0/z, z31\.h
+ *[0-9a-f]+: 649a8000 fcvt z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 649a801f fcvt z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 649a9c00 fcvt z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 649a83e0 fcvt z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 64dae000 fcvt z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dae01f fcvt z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dafc00 fcvt z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64dae3e0 fcvt z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 64da8000 fcvt z0\.h, p0/z, z0\.d
+ *[0-9a-f]+: 64da801f fcvt z31\.h, p0/z, z0\.d
+ *[0-9a-f]+: 64da9c00 fcvt z0\.h, p7/z, z0\.d
+ *[0-9a-f]+: 64da83e0 fcvt z0\.h, p0/z, z31\.d
+ *[0-9a-f]+: 64dac000 fcvt z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dac01f fcvt z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dadc00 fcvt z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64dac3e0 fcvt z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 6481a000 fcvtlt z0\.s, p0/z, z0\.h
+ *[0-9a-f]+: 6481a01f fcvtlt z31\.s, p0/z, z0\.h
+ *[0-9a-f]+: 6481bc00 fcvtlt z0\.s, p7/z, z0\.h
+ *[0-9a-f]+: 6481a3e0 fcvtlt z0\.s, p0/z, z31\.h
+ *[0-9a-f]+: 64c3a000 fcvtlt z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64c3a01f fcvtlt z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64c3bc00 fcvtlt z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64c3a3e0 fcvtlt z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 6480a000 fcvtnt z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 6480a01f fcvtnt z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 6480bc00 fcvtnt z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 6480a3e0 fcvtnt z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 64c2a000 fcvtnt z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64c2a01f fcvtnt z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64c2bc00 fcvtnt z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64c2a3e0 fcvtnt z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 641ac000 fcvtx z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 641ac01f fcvtx z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 641adc00 fcvtx z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 641ac3e0 fcvtx z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 6402a000 fcvtxnt z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 6402a01f fcvtxnt z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 6402bc00 fcvtxnt z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 6402a3e0 fcvtxnt z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 645ec000 fcvtzs z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645ec01f fcvtzs z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645edc00 fcvtzs z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645ec3e0 fcvtzs z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 645f8000 fcvtzs z0\.s, p0/z, z0\.h
+ *[0-9a-f]+: 645f801f fcvtzs z31\.s, p0/z, z0\.h
+ *[0-9a-f]+: 645f9c00 fcvtzs z0\.s, p7/z, z0\.h
+ *[0-9a-f]+: 645f83e0 fcvtzs z0\.s, p0/z, z31\.h
+ *[0-9a-f]+: 645fc000 fcvtzs z0\.d, p0/z, z0\.h
+ *[0-9a-f]+: 645fc01f fcvtzs z31\.d, p0/z, z0\.h
+ *[0-9a-f]+: 645fdc00 fcvtzs z0\.d, p7/z, z0\.h
+ *[0-9a-f]+: 645fc3e0 fcvtzs z0\.d, p0/z, z31\.h
+ *[0-9a-f]+: 649f8000 fcvtzs z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649f801f fcvtzs z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649f9c00 fcvtzs z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649f83e0 fcvtzs z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64df8000 fcvtzs z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64df801f fcvtzs z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64df9c00 fcvtzs z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64df83e0 fcvtzs z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 64de8000 fcvtzs z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64de801f fcvtzs z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64de9c00 fcvtzs z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64de83e0 fcvtzs z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 64dfc000 fcvtzs z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dfc01f fcvtzs z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dfdc00 fcvtzs z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64dfc3e0 fcvtzs z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 645ee000 fcvtzu z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645ee01f fcvtzu z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645efc00 fcvtzu z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645ee3e0 fcvtzu z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 645fa000 fcvtzu z0\.s, p0/z, z0\.h
+ *[0-9a-f]+: 645fa01f fcvtzu z31\.s, p0/z, z0\.h
+ *[0-9a-f]+: 645fbc00 fcvtzu z0\.s, p7/z, z0\.h
+ *[0-9a-f]+: 645fa3e0 fcvtzu z0\.s, p0/z, z31\.h
+ *[0-9a-f]+: 645fe000 fcvtzu z0\.d, p0/z, z0\.h
+ *[0-9a-f]+: 645fe01f fcvtzu z31\.d, p0/z, z0\.h
+ *[0-9a-f]+: 645ffc00 fcvtzu z0\.d, p7/z, z0\.h
+ *[0-9a-f]+: 645fe3e0 fcvtzu z0\.d, p0/z, z31\.h
+ *[0-9a-f]+: 649fa000 fcvtzu z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649fa01f fcvtzu z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649fbc00 fcvtzu z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649fa3e0 fcvtzu z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64dfa000 fcvtzu z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dfa01f fcvtzu z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dfbc00 fcvtzu z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64dfa3e0 fcvtzu z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 64dea000 fcvtzu z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dea01f fcvtzu z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64debc00 fcvtzu z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64dea3e0 fcvtzu z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 64dfe000 fcvtzu z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dfe01f fcvtzu z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dffc00 fcvtzu z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64dfe3e0 fcvtzu z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 25218000 firstp x0, p0, p0\.b
+ *[0-9a-f]+: 2521801f firstp xzr, p0, p0\.b
+ *[0-9a-f]+: 2521bc00 firstp x0, p15, p0\.b
+ *[0-9a-f]+: 252181e0 firstp x0, p0, p15\.b
+ *[0-9a-f]+: 25618000 firstp x0, p0, p0\.h
+ *[0-9a-f]+: 2561801f firstp xzr, p0, p0\.h
+ *[0-9a-f]+: 2561bc00 firstp x0, p15, p0\.h
+ *[0-9a-f]+: 256181e0 firstp x0, p0, p15\.h
+ *[0-9a-f]+: 25a18000 firstp x0, p0, p0\.s
+ *[0-9a-f]+: 25a1801f firstp xzr, p0, p0\.s
+ *[0-9a-f]+: 25a1bc00 firstp x0, p15, p0\.s
+ *[0-9a-f]+: 25a181e0 firstp x0, p0, p15\.s
+ *[0-9a-f]+: 25e18000 firstp x0, p0, p0\.d
+ *[0-9a-f]+: 25e1801f firstp xzr, p0, p0\.d
+ *[0-9a-f]+: 25e1bc00 firstp x0, p15, p0\.d
+ *[0-9a-f]+: 25e181e0 firstp x0, p0, p15\.d
+ *[0-9a-f]+: 641ea000 flogb z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 641ea01f flogb z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 641ebc00 flogb z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 641ea3e0 flogb z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 641ec000 flogb z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641ec01f flogb z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641edc00 flogb z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 641ec3e0 flogb z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 641ee000 flogb z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641ee01f flogb z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641efc00 flogb z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 641ee3e0 flogb z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 044da000 fneg z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044da01f fneg z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044dbc00 fneg z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 044da3e0 fneg z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 048da000 fneg z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048da01f fneg z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048dbc00 fneg z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 048da3e0 fneg z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04cda000 fneg z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cda01f fneg z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cdbc00 fneg z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04cda3e0 fneg z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 645b8000 frecpx z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645b801f frecpx z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645b9c00 frecpx z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645b83e0 frecpx z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 649b8000 frecpx z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649b801f frecpx z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649b9c00 frecpx z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649b83e0 frecpx z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64db8000 frecpx z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64db801f frecpx z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64db9c00 frecpx z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64db83e0 frecpx z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6511a000 frint32x z0\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6511a01f frint32x z31\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6511bc00 frint32x z0\.s, p7/m, z0\.s
+ *[0-9a-f]+: 6511a3e0 frint32x z0\.s, p0/m, z31\.s
+ *[0-9a-f]+: 6513a000 frint32x z0\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6513a01f frint32x z31\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6513bc00 frint32x z0\.d, p7/m, z0\.d
+ *[0-9a-f]+: 6513a3e0 frint32x z0\.d, p0/m, z31\.d
+ *[0-9a-f]+: 641ca000 frint32x z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641ca01f frint32x z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641cbc00 frint32x z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 641ca3e0 frint32x z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 641ce000 frint32x z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641ce01f frint32x z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641cfc00 frint32x z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 641ce3e0 frint32x z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6510a000 frint32z z0\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6510a01f frint32z z31\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6510bc00 frint32z z0\.s, p7/m, z0\.s
+ *[0-9a-f]+: 6510a3e0 frint32z z0\.s, p0/m, z31\.s
+ *[0-9a-f]+: 6512a000 frint32z z0\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6512a01f frint32z z31\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6512bc00 frint32z z0\.d, p7/m, z0\.d
+ *[0-9a-f]+: 6512a3e0 frint32z z0\.d, p0/m, z31\.d
+ *[0-9a-f]+: 641c8000 frint32z z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641c801f frint32z z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641c9c00 frint32z z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 641c83e0 frint32z z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 641cc000 frint32z z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641cc01f frint32z z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641cdc00 frint32z z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 641cc3e0 frint32z z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6515a000 frint64x z0\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6515a01f frint64x z31\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6515bc00 frint64x z0\.s, p7/m, z0\.s
+ *[0-9a-f]+: 6515a3e0 frint64x z0\.s, p0/m, z31\.s
+ *[0-9a-f]+: 6517a000 frint64x z0\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6517a01f frint64x z31\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6517bc00 frint64x z0\.d, p7/m, z0\.d
+ *[0-9a-f]+: 6517a3e0 frint64x z0\.d, p0/m, z31\.d
+ *[0-9a-f]+: 641da000 frint64x z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641da01f frint64x z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641dbc00 frint64x z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 641da3e0 frint64x z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 641de000 frint64x z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641de01f frint64x z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641dfc00 frint64x z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 641de3e0 frint64x z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6514a000 frint64z z0\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6514a01f frint64z z31\.s, p0/m, z0\.s
+ *[0-9a-f]+: 6514bc00 frint64z z0\.s, p7/m, z0\.s
+ *[0-9a-f]+: 6514a3e0 frint64z z0\.s, p0/m, z31\.s
+ *[0-9a-f]+: 6516a000 frint64z z0\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6516a01f frint64z z31\.d, p0/m, z0\.d
+ *[0-9a-f]+: 6516bc00 frint64z z0\.d, p7/m, z0\.d
+ *[0-9a-f]+: 6516a3e0 frint64z z0\.d, p0/m, z31\.d
+ *[0-9a-f]+: 641d8000 frint64z z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641d801f frint64z z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 641d9c00 frint64z z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 641d83e0 frint64z z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 641dc000 frint64z z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641dc01f frint64z z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 641ddc00 frint64z z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 641dc3e0 frint64z z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6459c000 frintx z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6459c01f frintx z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6459dc00 frintx z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 6459c3e0 frintx z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 6499c000 frintx z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6499c01f frintx z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6499dc00 frintx z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 6499c3e0 frintx z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d9c000 frintx z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d9c01f frintx z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d9dc00 frintx z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d9c3e0 frintx z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6459e000 frinti z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6459e01f frinti z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6459fc00 frinti z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 6459e3e0 frinti z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 6499e000 frinti z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6499e01f frinti z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6499fc00 frinti z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 6499e3e0 frinti z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d9e000 frinti z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d9e01f frinti z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d9fc00 frinti z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d9e3e0 frinti z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 64598000 frinta z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6459801f frinta z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 64599c00 frinta z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645983e0 frinta z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 64998000 frinta z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6499801f frinta z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 64999c00 frinta z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649983e0 frinta z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d98000 frinta z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d9801f frinta z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d99c00 frinta z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d983e0 frinta z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 64588000 frintn z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458801f frintn z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 64589c00 frintn z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645883e0 frintn z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 64988000 frintn z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498801f frintn z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 64989c00 frintn z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649883e0 frintn z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d88000 frintn z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8801f frintn z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d89c00 frintn z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d883e0 frintn z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6458e000 frintz z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458e01f frintz z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458fc00 frintz z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 6458e3e0 frintz z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 6498e000 frintz z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498e01f frintz z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498fc00 frintz z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 6498e3e0 frintz z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d8e000 frintz z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8e01f frintz z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8fc00 frintz z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d8e3e0 frintz z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6458c000 frintm z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458c01f frintm z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458dc00 frintm z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 6458c3e0 frintm z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 6498c000 frintm z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498c01f frintm z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498dc00 frintm z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 6498c3e0 frintm z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d8c000 frintm z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8c01f frintm z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8dc00 frintm z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d8c3e0 frintm z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 6458a000 frintp z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458a01f frintp z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 6458bc00 frintp z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 6458a3e0 frintp z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 6498a000 frintp z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498a01f frintp z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 6498bc00 frintp z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 6498a3e0 frintp z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64d8a000 frintp z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8a01f frintp z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64d8bc00 frintp z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64d8a3e0 frintp z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 645ba000 fsqrt z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645ba01f fsqrt z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645bbc00 fsqrt z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645ba3e0 fsqrt z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 649ba000 fsqrt z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649ba01f fsqrt z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649bbc00 fsqrt z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649ba3e0 fsqrt z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64dba000 fsqrt z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dba01f fsqrt z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dbbc00 fsqrt z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64dba3e0 fsqrt z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 25228000 lastp x0, p0, p0\.b
+ *[0-9a-f]+: 2522801f lastp xzr, p0, p0\.b
+ *[0-9a-f]+: 2522bc00 lastp x0, p15, p0\.b
+ *[0-9a-f]+: 252281e0 lastp x0, p0, p15\.b
+ *[0-9a-f]+: 25628000 lastp x0, p0, p0\.h
+ *[0-9a-f]+: 2562801f lastp xzr, p0, p0\.h
+ *[0-9a-f]+: 2562bc00 lastp x0, p15, p0\.h
+ *[0-9a-f]+: 256281e0 lastp x0, p0, p15\.h
+ *[0-9a-f]+: 25a28000 lastp x0, p0, p0\.s
+ *[0-9a-f]+: 25a2801f lastp xzr, p0, p0\.s
+ *[0-9a-f]+: 25a2bc00 lastp x0, p15, p0\.s
+ *[0-9a-f]+: 25a281e0 lastp x0, p0, p15\.s
+ *[0-9a-f]+: 25e28000 lastp x0, p0, p0\.d
+ *[0-9a-f]+: 25e2801f lastp xzr, p0, p0\.d
+ *[0-9a-f]+: 25e2bc00 lastp x0, p15, p0\.d
+ *[0-9a-f]+: 25e281e0 lastp x0, p0, p15\.d
+ *[0-9a-f]+: 0407a000 neg z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0407a01f neg z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0407bc00 neg z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 0407a3e0 neg z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 0447a000 neg z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0447a01f neg z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0447bc00 neg z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0447a3e0 neg z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0487a000 neg z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0487a01f neg z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0487bc00 neg z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0487a3e0 neg z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c7a000 neg z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c7a01f neg z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c7bc00 neg z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c7a3e0 neg z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 040ea000 not z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040ea01f not z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 040ebc00 not z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 040ea3e0 not z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 044ea000 not z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044ea01f not z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 044ebc00 not z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 044ea3e0 not z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 048ea000 not z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048ea01f not z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 048ebc00 not z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 048ea3e0 not z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04cea000 not z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cea01f not z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04cebc00 not z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04cea3e0 not z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0527a000 rbit z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0527a01f rbit z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 0527bc00 rbit z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 0527a3e0 rbit z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 0567a000 rbit z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0567a01f rbit z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0567bc00 rbit z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0567a3e0 rbit z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 05a7a000 rbit z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a7a01f rbit z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a7bc00 rbit z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 05a7a3e0 rbit z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 05e7a000 rbit z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e7a01f rbit z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e7bc00 rbit z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 05e7a3e0 rbit z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0564a000 revb z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0564a01f revb z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0564bc00 revb z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0564a3e0 revb z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 05a4a000 revb z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a4a01f revb z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a4bc00 revb z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 05a4a3e0 revb z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 05e4a000 revb z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e4a01f revb z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e4bc00 revb z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 05e4a3e0 revb z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 05a5a000 revh z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a5a01f revh z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 05a5bc00 revh z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 05a5a3e0 revh z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 05e5a000 revh z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e5a01f revh z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e5bc00 revh z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 05e5a3e0 revh z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 05e6a000 revw z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e6a01f revw z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 05e6bc00 revw z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 05e6a3e0 revw z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 052ea000 revd z0\.q, p0/z, z0\.q
+ *[0-9a-f]+: 052ea01f revd z31\.q, p0/z, z0\.q
+ *[0-9a-f]+: 052ebc00 revd z0\.q, p7/z, z0\.q
+ *[0-9a-f]+: 052ea3e0 revd z0\.q, p0/z, z31\.q
+ *[0-9a-f]+: 645cc000 scvtf z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645cc01f scvtf z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645cdc00 scvtf z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645cc3e0 scvtf z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 645d8000 scvtf z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 645d801f scvtf z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 645d9c00 scvtf z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 645d83e0 scvtf z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 649d8000 scvtf z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649d801f scvtf z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649d9c00 scvtf z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649d83e0 scvtf z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64dc8000 scvtf z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dc801f scvtf z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dc9c00 scvtf z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64dc83e0 scvtf z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 645dc000 scvtf z0\.h, p0/z, z0\.d
+ *[0-9a-f]+: 645dc01f scvtf z31\.h, p0/z, z0\.d
+ *[0-9a-f]+: 645ddc00 scvtf z0\.h, p7/z, z0\.d
+ *[0-9a-f]+: 645dc3e0 scvtf z0\.h, p0/z, z31\.d
+ *[0-9a-f]+: 64dd8000 scvtf z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dd801f scvtf z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dd9c00 scvtf z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64dd83e0 scvtf z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 64ddc000 scvtf z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64ddc01f scvtf z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dddc00 scvtf z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64ddc3e0 scvtf z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 440aa000 sqabs z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 440aa01f sqabs z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 440abc00 sqabs z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 440aa3e0 sqabs z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 444aa000 sqabs z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 444aa01f sqabs z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 444abc00 sqabs z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 444aa3e0 sqabs z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 448aa000 sqabs z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 448aa01f sqabs z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 448abc00 sqabs z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 448aa3e0 sqabs z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 44caa000 sqabs z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 44caa01f sqabs z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 44cabc00 sqabs z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 44caa3e0 sqabs z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 440ba000 sqneg z0\.b, p0/z, z0\.b
+ *[0-9a-f]+: 440ba01f sqneg z31\.b, p0/z, z0\.b
+ *[0-9a-f]+: 440bbc00 sqneg z0\.b, p7/z, z0\.b
+ *[0-9a-f]+: 440ba3e0 sqneg z0\.b, p0/z, z31\.b
+ *[0-9a-f]+: 444ba000 sqneg z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 444ba01f sqneg z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 444bbc00 sqneg z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 444ba3e0 sqneg z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 448ba000 sqneg z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 448ba01f sqneg z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 448bbc00 sqneg z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 448ba3e0 sqneg z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 44cba000 sqneg z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 44cba01f sqneg z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 44cbbc00 sqneg z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 44cba3e0 sqneg z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0440a000 sxtb z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0440a01f sxtb z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0440bc00 sxtb z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0440a3e0 sxtb z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0480a000 sxtb z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0480a01f sxtb z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0480bc00 sxtb z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0480a3e0 sxtb z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c0a000 sxtb z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c0a01f sxtb z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c0bc00 sxtb z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c0a3e0 sxtb z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0482a000 sxth z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0482a01f sxth z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0482bc00 sxth z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0482a3e0 sxth z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c2a000 sxth z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c2a01f sxth z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c2bc00 sxth z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c2a3e0 sxth z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 04c4a000 sxtw z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c4a01f sxtw z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c4bc00 sxtw z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c4a3e0 sxtw z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 645ce000 ucvtf z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645ce01f ucvtf z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 645cfc00 ucvtf z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 645ce3e0 ucvtf z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 645da000 ucvtf z0\.h, p0/z, z0\.s
+ *[0-9a-f]+: 645da01f ucvtf z31\.h, p0/z, z0\.s
+ *[0-9a-f]+: 645dbc00 ucvtf z0\.h, p7/z, z0\.s
+ *[0-9a-f]+: 645da3e0 ucvtf z0\.h, p0/z, z31\.s
+ *[0-9a-f]+: 649da000 ucvtf z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649da01f ucvtf z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 649dbc00 ucvtf z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 649da3e0 ucvtf z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 64dca000 ucvtf z0\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dca01f ucvtf z31\.d, p0/z, z0\.s
+ *[0-9a-f]+: 64dcbc00 ucvtf z0\.d, p7/z, z0\.s
+ *[0-9a-f]+: 64dca3e0 ucvtf z0\.d, p0/z, z31\.s
+ *[0-9a-f]+: 645de000 ucvtf z0\.h, p0/z, z0\.d
+ *[0-9a-f]+: 645de01f ucvtf z31\.h, p0/z, z0\.d
+ *[0-9a-f]+: 645dfc00 ucvtf z0\.h, p7/z, z0\.d
+ *[0-9a-f]+: 645de3e0 ucvtf z0\.h, p0/z, z31\.d
+ *[0-9a-f]+: 64dda000 ucvtf z0\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64dda01f ucvtf z31\.s, p0/z, z0\.d
+ *[0-9a-f]+: 64ddbc00 ucvtf z0\.s, p7/z, z0\.d
+ *[0-9a-f]+: 64dda3e0 ucvtf z0\.s, p0/z, z31\.d
+ *[0-9a-f]+: 64dde000 ucvtf z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64dde01f ucvtf z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 64ddfc00 ucvtf z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 64dde3e0 ucvtf z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 4482a000 urecpe z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 4482a01f urecpe z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 4482bc00 urecpe z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 4482a3e0 urecpe z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 4483a000 ursqrte z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 4483a01f ursqrte z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 4483bc00 ursqrte z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 4483a3e0 ursqrte z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 0441a000 uxtb z0\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0441a01f uxtb z31\.h, p0/z, z0\.h
+ *[0-9a-f]+: 0441bc00 uxtb z0\.h, p7/z, z0\.h
+ *[0-9a-f]+: 0441a3e0 uxtb z0\.h, p0/z, z31\.h
+ *[0-9a-f]+: 0481a000 uxtb z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0481a01f uxtb z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0481bc00 uxtb z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0481a3e0 uxtb z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c1a000 uxtb z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c1a01f uxtb z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c1bc00 uxtb z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c1a3e0 uxtb z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 0483a000 uxth z0\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0483a01f uxth z31\.s, p0/z, z0\.s
+ *[0-9a-f]+: 0483bc00 uxth z0\.s, p7/z, z0\.s
+ *[0-9a-f]+: 0483a3e0 uxth z0\.s, p0/z, z31\.s
+ *[0-9a-f]+: 04c3a000 uxth z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c3a01f uxth z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c3bc00 uxth z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c3a3e0 uxth z0\.d, p0/z, z31\.d
+ *[0-9a-f]+: 04c5a000 uxtw z0\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c5a01f uxtw z31\.d, p0/z, z0\.d
+ *[0-9a-f]+: 04c5bc00 uxtw z0\.d, p7/z, z0\.d
+ *[0-9a-f]+: 04c5a3e0 uxtw z0\.d, p0/z, z31\.d
diff --git a/gas/testsuite/gas/aarch64/sve2p2.s b/gas/testsuite/gas/aarch64/sve2p2.s
new file mode 100644
index 00000000000..a0a01759b3b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p2.s
@@ -0,0 +1,738 @@
+ abs z0.b, p0/z, z0.b
+ abs z31.b, p0/z, z0.b
+ abs z0.b, p7/z, z0.b
+ abs z0.b, p0/z, z31.b
+ abs z0.h, p0/z, z0.h
+ abs z31.h, p0/z, z0.h
+ abs z0.h, p7/z, z0.h
+ abs z0.h, p0/z, z31.h
+ abs z0.s, p0/z, z0.s
+ abs z31.s, p0/z, z0.s
+ abs z0.s, p7/z, z0.s
+ abs z0.s, p0/z, z31.s
+ abs z0.d, p0/z, z0.d
+ abs z31.d, p0/z, z0.d
+ abs z0.d, p7/z, z0.d
+ abs z0.d, p0/z, z31.d
+
+ bfcvt z0.h, p0/z, z0.s
+ bfcvt z31.h, p0/z, z0.s
+ bfcvt z0.h, p7/z, z0.s
+ bfcvt z0.h, p0/z, z31.s
+
+ bfcvtnt z0.h, p0/z, z0.s
+ bfcvtnt z31.h, p0/z, z0.s
+ bfcvtnt z0.h, p7/z, z0.s
+ bfcvtnt z0.h, p0/z, z31.s
+
+ cls z0.b, p0/z, z0.b
+ cls z31.b, p0/z, z0.b
+ cls z0.b, p7/z, z0.b
+ cls z0.b, p0/z, z31.b
+ cls z0.h, p0/z, z0.h
+ cls z31.h, p0/z, z0.h
+ cls z0.h, p7/z, z0.h
+ cls z0.h, p0/z, z31.h
+ cls z0.s, p0/z, z0.s
+ cls z31.s, p0/z, z0.s
+ cls z0.s, p7/z, z0.s
+ cls z0.s, p0/z, z31.s
+ cls z0.d, p0/z, z0.d
+ cls z31.d, p0/z, z0.d
+ cls z0.d, p7/z, z0.d
+ cls z0.d, p0/z, z31.d
+
+ clz z0.b, p0/z, z0.b
+ clz z31.b, p0/z, z0.b
+ clz z0.b, p7/z, z0.b
+ clz z0.b, p0/z, z31.b
+ clz z0.h, p0/z, z0.h
+ clz z31.h, p0/z, z0.h
+ clz z0.h, p7/z, z0.h
+ clz z0.h, p0/z, z31.h
+ clz z0.s, p0/z, z0.s
+ clz z31.s, p0/z, z0.s
+ clz z0.s, p7/z, z0.s
+ clz z0.s, p0/z, z31.s
+ clz z0.d, p0/z, z0.d
+ clz z31.d, p0/z, z0.d
+ clz z0.d, p7/z, z0.d
+ clz z0.d, p0/z, z31.d
+
+ cnot z0.b, p0/z, z0.b
+ cnot z31.b, p0/z, z0.b
+ cnot z0.b, p7/z, z0.b
+ cnot z0.b, p0/z, z31.b
+ cnot z0.h, p0/z, z0.h
+ cnot z31.h, p0/z, z0.h
+ cnot z0.h, p7/z, z0.h
+ cnot z0.h, p0/z, z31.h
+ cnot z0.s, p0/z, z0.s
+ cnot z31.s, p0/z, z0.s
+ cnot z0.s, p7/z, z0.s
+ cnot z0.s, p0/z, z31.s
+ cnot z0.d, p0/z, z0.d
+ cnot z31.d, p0/z, z0.d
+ cnot z0.d, p7/z, z0.d
+ cnot z0.d, p0/z, z31.d
+
+ cnt z0.b, p0/z, z0.b
+ cnt z31.b, p0/z, z0.b
+ cnt z0.b, p7/z, z0.b
+ cnt z0.b, p0/z, z31.b
+ cnt z0.h, p0/z, z0.h
+ cnt z31.h, p0/z, z0.h
+ cnt z0.h, p7/z, z0.h
+ cnt z0.h, p0/z, z31.h
+ cnt z0.s, p0/z, z0.s
+ cnt z31.s, p0/z, z0.s
+ cnt z0.s, p7/z, z0.s
+ cnt z0.s, p0/z, z31.s
+ cnt z0.d, p0/z, z0.d
+ cnt z31.d, p0/z, z0.d
+ cnt z0.d, p7/z, z0.d
+ cnt z0.d, p0/z, z31.d
+
+// Word and doubleword forms in nonstreaming mode are part of FEAT_SVE.
+ compact z0.b, p0, z0.b
+ compact z31.b, p0, z0.b
+ compact z0.b, p7, z0.b
+ compact z0.b, p0, z31.b
+ compact z0.h, p0, z0.h
+ compact z31.h, p0, z0.h
+ compact z0.h, p7, z0.h
+ compact z0.h, p0, z31.h
+ compact z0.s, p0, z0.s
+ compact z31.s, p0, z0.s
+ compact z0.s, p7, z0.s
+ compact z0.s, p0, z31.s
+ compact z0.d, p0, z0.d
+ compact z31.d, p0, z0.d
+ compact z0.d, p7, z0.d
+ compact z0.d, p0, z31.d
+
+ expand z0.b, p0, z0.b
+ expand z31.b, p0, z0.b
+ expand z0.b, p7, z0.b
+ expand z0.b, p0, z31.b
+ expand z0.h, p0, z0.h
+ expand z31.h, p0, z0.h
+ expand z0.h, p7, z0.h
+ expand z0.h, p0, z31.h
+ expand z0.s, p0, z0.s
+ expand z31.s, p0, z0.s
+ expand z0.s, p7, z0.s
+ expand z0.s, p0, z31.s
+ expand z0.d, p0, z0.d
+ expand z31.d, p0, z0.d
+ expand z0.d, p7, z0.d
+ expand z0.d, p0, z31.d
+
+ fabs z0.h, p0/z, z0.h
+ fabs z31.h, p0/z, z0.h
+ fabs z0.h, p7/z, z0.h
+ fabs z0.h, p0/z, z31.h
+ fabs z0.s, p0/z, z0.s
+ fabs z31.s, p0/z, z0.s
+ fabs z0.s, p7/z, z0.s
+ fabs z0.s, p0/z, z31.s
+ fabs z0.d, p0/z, z0.d
+ fabs z31.d, p0/z, z0.d
+ fabs z0.d, p7/z, z0.d
+ fabs z0.d, p0/z, z31.d
+
+ fcvt z0.s, p0/z, z0.h
+ fcvt z31.s, p0/z, z0.h
+ fcvt z0.s, p7/z, z0.h
+ fcvt z0.s, p0/z, z31.h
+ fcvt z0.d, p0/z, z0.h
+ fcvt z31.d, p0/z, z0.h
+ fcvt z0.d, p7/z, z0.h
+ fcvt z0.d, p0/z, z31.h
+ fcvt z0.h, p0/z, z0.s
+ fcvt z31.h, p0/z, z0.s
+ fcvt z0.h, p7/z, z0.s
+ fcvt z0.h, p0/z, z31.s
+ fcvt z0.d, p0/z, z0.s
+ fcvt z31.d, p0/z, z0.s
+ fcvt z0.d, p7/z, z0.s
+ fcvt z0.d, p0/z, z31.s
+ fcvt z0.h, p0/z, z0.d
+ fcvt z31.h, p0/z, z0.d
+ fcvt z0.h, p7/z, z0.d
+ fcvt z0.h, p0/z, z31.d
+ fcvt z0.s, p0/z, z0.d
+ fcvt z31.s, p0/z, z0.d
+ fcvt z0.s, p7/z, z0.d
+ fcvt z0.s, p0/z, z31.d
+
+ fcvtlt z0.s, p0/z, z0.h
+ fcvtlt z31.s, p0/z, z0.h
+ fcvtlt z0.s, p7/z, z0.h
+ fcvtlt z0.s, p0/z, z31.h
+ fcvtlt z0.d, p0/z, z0.s
+ fcvtlt z31.d, p0/z, z0.s
+ fcvtlt z0.d, p7/z, z0.s
+ fcvtlt z0.d, p0/z, z31.s
+
+ fcvtnt z0.h, p0/z, z0.s
+ fcvtnt z31.h, p0/z, z0.s
+ fcvtnt z0.h, p7/z, z0.s
+ fcvtnt z0.h, p0/z, z31.s
+ fcvtnt z0.s, p0/z, z0.d
+ fcvtnt z31.s, p0/z, z0.d
+ fcvtnt z0.s, p7/z, z0.d
+ fcvtnt z0.s, p0/z, z31.d
+
+ fcvtx z0.s, p0/z, z0.d
+ fcvtx z31.s, p0/z, z0.d
+ fcvtx z0.s, p7/z, z0.d
+ fcvtx z0.s, p0/z, z31.d
+
+ fcvtxnt z0.s, p0/z, z0.d
+ fcvtxnt z31.s, p0/z, z0.d
+ fcvtxnt z0.s, p7/z, z0.d
+ fcvtxnt z0.s, p0/z, z31.d
+
+ fcvtzs z0.h, p0/z, z0.h
+ fcvtzs z31.h, p0/z, z0.h
+ fcvtzs z0.h, p7/z, z0.h
+ fcvtzs z0.h, p0/z, z31.h
+ fcvtzs z0.s, p0/z, z0.h
+ fcvtzs z31.s, p0/z, z0.h
+ fcvtzs z0.s, p7/z, z0.h
+ fcvtzs z0.s, p0/z, z31.h
+ fcvtzs z0.d, p0/z, z0.h
+ fcvtzs z31.d, p0/z, z0.h
+ fcvtzs z0.d, p7/z, z0.h
+ fcvtzs z0.d, p0/z, z31.h
+ fcvtzs z0.s, p0/z, z0.s
+ fcvtzs z31.s, p0/z, z0.s
+ fcvtzs z0.s, p7/z, z0.s
+ fcvtzs z0.s, p0/z, z31.s
+ fcvtzs z0.d, p0/z, z0.s
+ fcvtzs z31.d, p0/z, z0.s
+ fcvtzs z0.d, p7/z, z0.s
+ fcvtzs z0.d, p0/z, z31.s
+ fcvtzs z0.s, p0/z, z0.d
+ fcvtzs z31.s, p0/z, z0.d
+ fcvtzs z0.s, p7/z, z0.d
+ fcvtzs z0.s, p0/z, z31.d
+ fcvtzs z0.d, p0/z, z0.d
+ fcvtzs z31.d, p0/z, z0.d
+ fcvtzs z0.d, p7/z, z0.d
+ fcvtzs z0.d, p0/z, z31.d
+
+ fcvtzu z0.h, p0/z, z0.h
+ fcvtzu z31.h, p0/z, z0.h
+ fcvtzu z0.h, p7/z, z0.h
+ fcvtzu z0.h, p0/z, z31.h
+ fcvtzu z0.s, p0/z, z0.h
+ fcvtzu z31.s, p0/z, z0.h
+ fcvtzu z0.s, p7/z, z0.h
+ fcvtzu z0.s, p0/z, z31.h
+ fcvtzu z0.d, p0/z, z0.h
+ fcvtzu z31.d, p0/z, z0.h
+ fcvtzu z0.d, p7/z, z0.h
+ fcvtzu z0.d, p0/z, z31.h
+ fcvtzu z0.s, p0/z, z0.s
+ fcvtzu z31.s, p0/z, z0.s
+ fcvtzu z0.s, p7/z, z0.s
+ fcvtzu z0.s, p0/z, z31.s
+ fcvtzu z0.d, p0/z, z0.s
+ fcvtzu z31.d, p0/z, z0.s
+ fcvtzu z0.d, p7/z, z0.s
+ fcvtzu z0.d, p0/z, z31.s
+ fcvtzu z0.s, p0/z, z0.d
+ fcvtzu z31.s, p0/z, z0.d
+ fcvtzu z0.s, p7/z, z0.d
+ fcvtzu z0.s, p0/z, z31.d
+ fcvtzu z0.d, p0/z, z0.d
+ fcvtzu z31.d, p0/z, z0.d
+ fcvtzu z0.d, p7/z, z0.d
+ fcvtzu z0.d, p0/z, z31.d
+
+ firstp x0, p0, p0.b
+ firstp xzr, p0, p0.b
+ firstp x0, p15, p0.b
+ firstp x0, p0, p15.b
+ firstp x0, p0, p0.h
+ firstp xzr, p0, p0.h
+ firstp x0, p15, p0.h
+ firstp x0, p0, p15.h
+ firstp x0, p0, p0.s
+ firstp xzr, p0, p0.s
+ firstp x0, p15, p0.s
+ firstp x0, p0, p15.s
+ firstp x0, p0, p0.d
+ firstp xzr, p0, p0.d
+ firstp x0, p15, p0.d
+ firstp x0, p0, p15.d
+
+ flogb z0.h, p0/z, z0.h
+ flogb z31.h, p0/z, z0.h
+ flogb z0.h, p7/z, z0.h
+ flogb z0.h, p0/z, z31.h
+ flogb z0.s, p0/z, z0.s
+ flogb z31.s, p0/z, z0.s
+ flogb z0.s, p7/z, z0.s
+ flogb z0.s, p0/z, z31.s
+ flogb z0.d, p0/z, z0.d
+ flogb z31.d, p0/z, z0.d
+ flogb z0.d, p7/z, z0.d
+ flogb z0.d, p0/z, z31.d
+
+ fneg z0.h, p0/z, z0.h
+ fneg z31.h, p0/z, z0.h
+ fneg z0.h, p7/z, z0.h
+ fneg z0.h, p0/z, z31.h
+ fneg z0.s, p0/z, z0.s
+ fneg z31.s, p0/z, z0.s
+ fneg z0.s, p7/z, z0.s
+ fneg z0.s, p0/z, z31.s
+ fneg z0.d, p0/z, z0.d
+ fneg z31.d, p0/z, z0.d
+ fneg z0.d, p7/z, z0.d
+ fneg z0.d, p0/z, z31.d
+
+ frecpx z0.h, p0/z, z0.h
+ frecpx z31.h, p0/z, z0.h
+ frecpx z0.h, p7/z, z0.h
+ frecpx z0.h, p0/z, z31.h
+ frecpx z0.s, p0/z, z0.s
+ frecpx z31.s, p0/z, z0.s
+ frecpx z0.s, p7/z, z0.s
+ frecpx z0.s, p0/z, z31.s
+ frecpx z0.d, p0/z, z0.d
+ frecpx z31.d, p0/z, z0.d
+ frecpx z0.d, p7/z, z0.d
+ frecpx z0.d, p0/z, z31.d
+
+ frint32x z0.s, p0/m, z0.s
+ frint32x z31.s, p0/m, z0.s
+ frint32x z0.s, p7/m, z0.s
+ frint32x z0.s, p0/m, z31.s
+ frint32x z0.d, p0/m, z0.d
+ frint32x z31.d, p0/m, z0.d
+ frint32x z0.d, p7/m, z0.d
+ frint32x z0.d, p0/m, z31.d
+ frint32x z0.s, p0/z, z0.s
+ frint32x z31.s, p0/z, z0.s
+ frint32x z0.s, p7/z, z0.s
+ frint32x z0.s, p0/z, z31.s
+ frint32x z0.d, p0/z, z0.d
+ frint32x z31.d, p0/z, z0.d
+ frint32x z0.d, p7/z, z0.d
+ frint32x z0.d, p0/z, z31.d
+
+ frint32z z0.s, p0/m, z0.s
+ frint32z z31.s, p0/m, z0.s
+ frint32z z0.s, p7/m, z0.s
+ frint32z z0.s, p0/m, z31.s
+ frint32z z0.d, p0/m, z0.d
+ frint32z z31.d, p0/m, z0.d
+ frint32z z0.d, p7/m, z0.d
+ frint32z z0.d, p0/m, z31.d
+ frint32z z0.s, p0/z, z0.s
+ frint32z z31.s, p0/z, z0.s
+ frint32z z0.s, p7/z, z0.s
+ frint32z z0.s, p0/z, z31.s
+ frint32z z0.d, p0/z, z0.d
+ frint32z z31.d, p0/z, z0.d
+ frint32z z0.d, p7/z, z0.d
+ frint32z z0.d, p0/z, z31.d
+
+ frint64x z0.s, p0/m, z0.s
+ frint64x z31.s, p0/m, z0.s
+ frint64x z0.s, p7/m, z0.s
+ frint64x z0.s, p0/m, z31.s
+ frint64x z0.d, p0/m, z0.d
+ frint64x z31.d, p0/m, z0.d
+ frint64x z0.d, p7/m, z0.d
+ frint64x z0.d, p0/m, z31.d
+ frint64x z0.s, p0/z, z0.s
+ frint64x z31.s, p0/z, z0.s
+ frint64x z0.s, p7/z, z0.s
+ frint64x z0.s, p0/z, z31.s
+ frint64x z0.d, p0/z, z0.d
+ frint64x z31.d, p0/z, z0.d
+ frint64x z0.d, p7/z, z0.d
+ frint64x z0.d, p0/z, z31.d
+
+ frint64z z0.s, p0/m, z0.s
+ frint64z z31.s, p0/m, z0.s
+ frint64z z0.s, p7/m, z0.s
+ frint64z z0.s, p0/m, z31.s
+ frint64z z0.d, p0/m, z0.d
+ frint64z z31.d, p0/m, z0.d
+ frint64z z0.d, p7/m, z0.d
+ frint64z z0.d, p0/m, z31.d
+ frint64z z0.s, p0/z, z0.s
+ frint64z z31.s, p0/z, z0.s
+ frint64z z0.s, p7/z, z0.s
+ frint64z z0.s, p0/z, z31.s
+ frint64z z0.d, p0/z, z0.d
+ frint64z z31.d, p0/z, z0.d
+ frint64z z0.d, p7/z, z0.d
+ frint64z z0.d, p0/z, z31.d
+
+ frintx z0.h, p0/z, z0.h
+ frintx z31.h, p0/z, z0.h
+ frintx z0.h, p7/z, z0.h
+ frintx z0.h, p0/z, z31.h
+ frintx z0.s, p0/z, z0.s
+ frintx z31.s, p0/z, z0.s
+ frintx z0.s, p7/z, z0.s
+ frintx z0.s, p0/z, z31.s
+ frintx z0.d, p0/z, z0.d
+ frintx z31.d, p0/z, z0.d
+ frintx z0.d, p7/z, z0.d
+ frintx z0.d, p0/z, z31.d
+
+ frinti z0.h, p0/z, z0.h
+ frinti z31.h, p0/z, z0.h
+ frinti z0.h, p7/z, z0.h
+ frinti z0.h, p0/z, z31.h
+ frinti z0.s, p0/z, z0.s
+ frinti z31.s, p0/z, z0.s
+ frinti z0.s, p7/z, z0.s
+ frinti z0.s, p0/z, z31.s
+ frinti z0.d, p0/z, z0.d
+ frinti z31.d, p0/z, z0.d
+ frinti z0.d, p7/z, z0.d
+ frinti z0.d, p0/z, z31.d
+
+ frinta z0.h, p0/z, z0.h
+ frinta z31.h, p0/z, z0.h
+ frinta z0.h, p7/z, z0.h
+ frinta z0.h, p0/z, z31.h
+ frinta z0.s, p0/z, z0.s
+ frinta z31.s, p0/z, z0.s
+ frinta z0.s, p7/z, z0.s
+ frinta z0.s, p0/z, z31.s
+ frinta z0.d, p0/z, z0.d
+ frinta z31.d, p0/z, z0.d
+ frinta z0.d, p7/z, z0.d
+ frinta z0.d, p0/z, z31.d
+
+ frintn z0.h, p0/z, z0.h
+ frintn z31.h, p0/z, z0.h
+ frintn z0.h, p7/z, z0.h
+ frintn z0.h, p0/z, z31.h
+ frintn z0.s, p0/z, z0.s
+ frintn z31.s, p0/z, z0.s
+ frintn z0.s, p7/z, z0.s
+ frintn z0.s, p0/z, z31.s
+ frintn z0.d, p0/z, z0.d
+ frintn z31.d, p0/z, z0.d
+ frintn z0.d, p7/z, z0.d
+ frintn z0.d, p0/z, z31.d
+
+ frintz z0.h, p0/z, z0.h
+ frintz z31.h, p0/z, z0.h
+ frintz z0.h, p7/z, z0.h
+ frintz z0.h, p0/z, z31.h
+ frintz z0.s, p0/z, z0.s
+ frintz z31.s, p0/z, z0.s
+ frintz z0.s, p7/z, z0.s
+ frintz z0.s, p0/z, z31.s
+ frintz z0.d, p0/z, z0.d
+ frintz z31.d, p0/z, z0.d
+ frintz z0.d, p7/z, z0.d
+ frintz z0.d, p0/z, z31.d
+
+ frintm z0.h, p0/z, z0.h
+ frintm z31.h, p0/z, z0.h
+ frintm z0.h, p7/z, z0.h
+ frintm z0.h, p0/z, z31.h
+ frintm z0.s, p0/z, z0.s
+ frintm z31.s, p0/z, z0.s
+ frintm z0.s, p7/z, z0.s
+ frintm z0.s, p0/z, z31.s
+ frintm z0.d, p0/z, z0.d
+ frintm z31.d, p0/z, z0.d
+ frintm z0.d, p7/z, z0.d
+ frintm z0.d, p0/z, z31.d
+
+ frintp z0.h, p0/z, z0.h
+ frintp z31.h, p0/z, z0.h
+ frintp z0.h, p7/z, z0.h
+ frintp z0.h, p0/z, z31.h
+ frintp z0.s, p0/z, z0.s
+ frintp z31.s, p0/z, z0.s
+ frintp z0.s, p7/z, z0.s
+ frintp z0.s, p0/z, z31.s
+ frintp z0.d, p0/z, z0.d
+ frintp z31.d, p0/z, z0.d
+ frintp z0.d, p7/z, z0.d
+ frintp z0.d, p0/z, z31.d
+
+ fsqrt z0.h, p0/z, z0.h
+ fsqrt z31.h, p0/z, z0.h
+ fsqrt z0.h, p7/z, z0.h
+ fsqrt z0.h, p0/z, z31.h
+ fsqrt z0.s, p0/z, z0.s
+ fsqrt z31.s, p0/z, z0.s
+ fsqrt z0.s, p7/z, z0.s
+ fsqrt z0.s, p0/z, z31.s
+ fsqrt z0.d, p0/z, z0.d
+ fsqrt z31.d, p0/z, z0.d
+ fsqrt z0.d, p7/z, z0.d
+ fsqrt z0.d, p0/z, z31.d
+
+ lastp x0, p0, p0.b
+ lastp xzr, p0, p0.b
+ lastp x0, p15, p0.b
+ lastp x0, p0, p15.b
+ lastp x0, p0, p0.h
+ lastp xzr, p0, p0.h
+ lastp x0, p15, p0.h
+ lastp x0, p0, p15.h
+ lastp x0, p0, p0.s
+ lastp xzr, p0, p0.s
+ lastp x0, p15, p0.s
+ lastp x0, p0, p15.s
+ lastp x0, p0, p0.d
+ lastp xzr, p0, p0.d
+ lastp x0, p15, p0.d
+ lastp x0, p0, p15.d
+
+ neg z0.b, p0/z, z0.b
+ neg z31.b, p0/z, z0.b
+ neg z0.b, p7/z, z0.b
+ neg z0.b, p0/z, z31.b
+ neg z0.h, p0/z, z0.h
+ neg z31.h, p0/z, z0.h
+ neg z0.h, p7/z, z0.h
+ neg z0.h, p0/z, z31.h
+ neg z0.s, p0/z, z0.s
+ neg z31.s, p0/z, z0.s
+ neg z0.s, p7/z, z0.s
+ neg z0.s, p0/z, z31.s
+ neg z0.d, p0/z, z0.d
+ neg z31.d, p0/z, z0.d
+ neg z0.d, p7/z, z0.d
+ neg z0.d, p0/z, z31.d
+
+ not z0.b, p0/z, z0.b
+ not z31.b, p0/z, z0.b
+ not z0.b, p7/z, z0.b
+ not z0.b, p0/z, z31.b
+ not z0.h, p0/z, z0.h
+ not z31.h, p0/z, z0.h
+ not z0.h, p7/z, z0.h
+ not z0.h, p0/z, z31.h
+ not z0.s, p0/z, z0.s
+ not z31.s, p0/z, z0.s
+ not z0.s, p7/z, z0.s
+ not z0.s, p0/z, z31.s
+ not z0.d, p0/z, z0.d
+ not z31.d, p0/z, z0.d
+ not z0.d, p7/z, z0.d
+ not z0.d, p0/z, z31.d
+
+ rbit z0.b, p0/z, z0.b
+ rbit z31.b, p0/z, z0.b
+ rbit z0.b, p7/z, z0.b
+ rbit z0.b, p0/z, z31.b
+ rbit z0.h, p0/z, z0.h
+ rbit z31.h, p0/z, z0.h
+ rbit z0.h, p7/z, z0.h
+ rbit z0.h, p0/z, z31.h
+ rbit z0.s, p0/z, z0.s
+ rbit z31.s, p0/z, z0.s
+ rbit z0.s, p7/z, z0.s
+ rbit z0.s, p0/z, z31.s
+ rbit z0.d, p0/z, z0.d
+ rbit z31.d, p0/z, z0.d
+ rbit z0.d, p7/z, z0.d
+ rbit z0.d, p0/z, z31.d
+
+ revb z0.h, p0/z, z0.h
+ revb z31.h, p0/z, z0.h
+ revb z0.h, p7/z, z0.h
+ revb z0.h, p0/z, z31.h
+ revb z0.s, p0/z, z0.s
+ revb z31.s, p0/z, z0.s
+ revb z0.s, p7/z, z0.s
+ revb z0.s, p0/z, z31.s
+ revb z0.d, p0/z, z0.d
+ revb z31.d, p0/z, z0.d
+ revb z0.d, p7/z, z0.d
+ revb z0.d, p0/z, z31.d
+
+ revh z0.s, p0/z, z0.s
+ revh z31.s, p0/z, z0.s
+ revh z0.s, p7/z, z0.s
+ revh z0.s, p0/z, z31.s
+ revh z0.d, p0/z, z0.d
+ revh z31.d, p0/z, z0.d
+ revh z0.d, p7/z, z0.d
+ revh z0.d, p0/z, z31.d
+
+ revw z0.d, p0/z, z0.d
+ revw z31.d, p0/z, z0.d
+ revw z0.d, p7/z, z0.d
+ revw z0.d, p0/z, z31.d
+
+ revd z0.q, p0/z, z0.q
+ revd z31.q, p0/z, z0.q
+ revd z0.q, p7/z, z0.q
+ revd z0.q, p0/z, z31.q
+
+ scvtf z0.h, p0/z, z0.h
+ scvtf z31.h, p0/z, z0.h
+ scvtf z0.h, p7/z, z0.h
+ scvtf z0.h, p0/z, z31.h
+ scvtf z0.h, p0/z, z0.s
+ scvtf z31.h, p0/z, z0.s
+ scvtf z0.h, p7/z, z0.s
+ scvtf z0.h, p0/z, z31.s
+ scvtf z0.s, p0/z, z0.s
+ scvtf z31.s, p0/z, z0.s
+ scvtf z0.s, p7/z, z0.s
+ scvtf z0.s, p0/z, z31.s
+ scvtf z0.d, p0/z, z0.s
+ scvtf z31.d, p0/z, z0.s
+ scvtf z0.d, p7/z, z0.s
+ scvtf z0.d, p0/z, z31.s
+ scvtf z0.h, p0/z, z0.d
+ scvtf z31.h, p0/z, z0.d
+ scvtf z0.h, p7/z, z0.d
+ scvtf z0.h, p0/z, z31.d
+ scvtf z0.s, p0/z, z0.d
+ scvtf z31.s, p0/z, z0.d
+ scvtf z0.s, p7/z, z0.d
+ scvtf z0.s, p0/z, z31.d
+ scvtf z0.d, p0/z, z0.d
+ scvtf z31.d, p0/z, z0.d
+ scvtf z0.d, p7/z, z0.d
+ scvtf z0.d, p0/z, z31.d
+
+ sqabs z0.b, p0/z, z0.b
+ sqabs z31.b, p0/z, z0.b
+ sqabs z0.b, p7/z, z0.b
+ sqabs z0.b, p0/z, z31.b
+ sqabs z0.h, p0/z, z0.h
+ sqabs z31.h, p0/z, z0.h
+ sqabs z0.h, p7/z, z0.h
+ sqabs z0.h, p0/z, z31.h
+ sqabs z0.s, p0/z, z0.s
+ sqabs z31.s, p0/z, z0.s
+ sqabs z0.s, p7/z, z0.s
+ sqabs z0.s, p0/z, z31.s
+ sqabs z0.d, p0/z, z0.d
+ sqabs z31.d, p0/z, z0.d
+ sqabs z0.d, p7/z, z0.d
+ sqabs z0.d, p0/z, z31.d
+
+ sqneg z0.b, p0/z, z0.b
+ sqneg z31.b, p0/z, z0.b
+ sqneg z0.b, p7/z, z0.b
+ sqneg z0.b, p0/z, z31.b
+ sqneg z0.h, p0/z, z0.h
+ sqneg z31.h, p0/z, z0.h
+ sqneg z0.h, p7/z, z0.h
+ sqneg z0.h, p0/z, z31.h
+ sqneg z0.s, p0/z, z0.s
+ sqneg z31.s, p0/z, z0.s
+ sqneg z0.s, p7/z, z0.s
+ sqneg z0.s, p0/z, z31.s
+ sqneg z0.d, p0/z, z0.d
+ sqneg z31.d, p0/z, z0.d
+ sqneg z0.d, p7/z, z0.d
+ sqneg z0.d, p0/z, z31.d
+
+ sxtb z0.h, p0/z, z0.h
+ sxtb z31.h, p0/z, z0.h
+ sxtb z0.h, p7/z, z0.h
+ sxtb z0.h, p0/z, z31.h
+ sxtb z0.s, p0/z, z0.s
+ sxtb z31.s, p0/z, z0.s
+ sxtb z0.s, p7/z, z0.s
+ sxtb z0.s, p0/z, z31.s
+ sxtb z0.d, p0/z, z0.d
+ sxtb z31.d, p0/z, z0.d
+ sxtb z0.d, p7/z, z0.d
+ sxtb z0.d, p0/z, z31.d
+
+ sxth z0.s, p0/z, z0.s
+ sxth z31.s, p0/z, z0.s
+ sxth z0.s, p7/z, z0.s
+ sxth z0.s, p0/z, z31.s
+ sxth z0.d, p0/z, z0.d
+ sxth z31.d, p0/z, z0.d
+ sxth z0.d, p7/z, z0.d
+ sxth z0.d, p0/z, z31.d
+
+ sxtw z0.d, p0/z, z0.d
+ sxtw z31.d, p0/z, z0.d
+ sxtw z0.d, p7/z, z0.d
+ sxtw z0.d, p0/z, z31.d
+
+ ucvtf z0.h, p0/z, z0.h
+ ucvtf z31.h, p0/z, z0.h
+ ucvtf z0.h, p7/z, z0.h
+ ucvtf z0.h, p0/z, z31.h
+ ucvtf z0.h, p0/z, z0.s
+ ucvtf z31.h, p0/z, z0.s
+ ucvtf z0.h, p7/z, z0.s
+ ucvtf z0.h, p0/z, z31.s
+ ucvtf z0.s, p0/z, z0.s
+ ucvtf z31.s, p0/z, z0.s
+ ucvtf z0.s, p7/z, z0.s
+ ucvtf z0.s, p0/z, z31.s
+ ucvtf z0.d, p0/z, z0.s
+ ucvtf z31.d, p0/z, z0.s
+ ucvtf z0.d, p7/z, z0.s
+ ucvtf z0.d, p0/z, z31.s
+ ucvtf z0.h, p0/z, z0.d
+ ucvtf z31.h, p0/z, z0.d
+ ucvtf z0.h, p7/z, z0.d
+ ucvtf z0.h, p0/z, z31.d
+ ucvtf z0.s, p0/z, z0.d
+ ucvtf z31.s, p0/z, z0.d
+ ucvtf z0.s, p7/z, z0.d
+ ucvtf z0.s, p0/z, z31.d
+ ucvtf z0.d, p0/z, z0.d
+ ucvtf z31.d, p0/z, z0.d
+ ucvtf z0.d, p7/z, z0.d
+ ucvtf z0.d, p0/z, z31.d
+
+ urecpe z0.s, p0/z, z0.s
+ urecpe z31.s, p0/z, z0.s
+ urecpe z0.s, p7/z, z0.s
+ urecpe z0.s, p0/z, z31.s
+
+ ursqrte z0.s, p0/z, z0.s
+ ursqrte z31.s, p0/z, z0.s
+ ursqrte z0.s, p7/z, z0.s
+ ursqrte z0.s, p0/z, z31.s
+
+ uxtb z0.h, p0/z, z0.h
+ uxtb z31.h, p0/z, z0.h
+ uxtb z0.h, p7/z, z0.h
+ uxtb z0.h, p0/z, z31.h
+ uxtb z0.s, p0/z, z0.s
+ uxtb z31.s, p0/z, z0.s
+ uxtb z0.s, p7/z, z0.s
+ uxtb z0.s, p0/z, z31.s
+ uxtb z0.d, p0/z, z0.d
+ uxtb z31.d, p0/z, z0.d
+ uxtb z0.d, p7/z, z0.d
+ uxtb z0.d, p0/z, z31.d
+
+ uxth z0.s, p0/z, z0.s
+ uxth z31.s, p0/z, z0.s
+ uxth z0.s, p7/z, z0.s
+ uxth z0.s, p0/z, z31.s
+ uxth z0.d, p0/z, z0.d
+ uxth z31.d, p0/z, z0.d
+ uxth z0.d, p7/z, z0.d
+ uxth z0.d, p0/z, z31.d
+
+ uxtw z0.d, p0/z, z0.d
+ uxtw z31.d, p0/z, z0.d
+ uxtw z0.d, p7/z, z0.d
+ uxtw z0.d, p0/z, z31.d
+
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 7c1163dba57..dab6eacb5f8 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -282,6 +282,10 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SVE_B16B16,
/* SME non-widening BFloat16 instructions. */
AARCH64_FEATURE_SME_B16B16,
+ /* SVE2.2. */
+ AARCH64_FEATURE_SVE2p2,
+ /* SME2.2. */
+ AARCH64_FEATURE_SME2p2,
/* Armv9.1-A processors. */
AARCH64_FEATURE_V9_1A,
/* Armv9.2-A processors. */
@@ -307,6 +311,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_FP8DOT2_SVE,
/* +sme-f16f16 or +sme-f8f16 */
AARCH64_FEATURE_SME_F16F16_F8F16,
+ /* +sve or +sme2p2 */
+ AARCH64_FEATURE_SVE_SME2p2,
/* +sve2 or +sme2 */
AARCH64_FEATURE_SVE2_SME2,
/* +sve2p1 or +sme */
@@ -315,6 +321,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SVE2p1_SME2,
/* +sve2p1 or +sme2p1 */
AARCH64_FEATURE_SVE2p1_SME2p1,
+ /* +sve2p2 or +sme2p2 */
+ AARCH64_FEATURE_SVE2p2_SME2p2,
AARCH64_NUM_FEATURES
};
@@ -1192,13 +1200,16 @@ enum aarch64_insn_class
sve_pred_zm,
sve_shift_pred,
sve_shift_unpred,
+ sve_size_bh,
sve_size_bhs,
sve_size_bhsd,
sve_size_hsd,
sve_size_hsd2,
+ sve_size_hsd3,
sve_size_sd,
- sve_size_bh,
sve_size_sd2,
+ sve_size_sd3,
+ sve_size_sd4,
sve_size_13,
sve_shift_tsz_hsd,
sve_shift_tsz_bhsd,
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c
index 00ac4ae774c..a9d0aeb1946 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -2279,11 +2279,24 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst)
insert_field (FLD_SVE_sz2, &inst->value, aarch64_get_variant (inst), 0);
break;
+ case sve_size_sd3:
+ insert_field (FLD_SVE_sz3, &inst->value, aarch64_get_variant (inst), 0);
+ break;
+
+ case sve_size_sd4:
+ insert_field (FLD_SVE_sz4, &inst->value, aarch64_get_variant (inst), 0);
+ break;
+
case sve_size_hsd2:
insert_field (FLD_SVE_size, &inst->value,
aarch64_get_variant (inst) + 1, 0);
break;
+ case sve_size_hsd3:
+ insert_field (FLD_len, &inst->value,
+ aarch64_get_variant (inst) + 1, 0);
+ break;
+
case sve_size_tsz_bhs:
insert_fields (&inst->value,
(1 << aarch64_get_variant (inst)),
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index 02e9852772b..1460a926824 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -15381,38 +15381,82 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0000101xxxxxxxxxxxxx
- sxtb. */
- return 2054;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000000101xxxxxxxxxxxxx
+ sxtb. */
+ return 3733;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010000101xxxxxxxxxxxxx
+ sxtb. */
+ return 2054;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1000101xxxxxxxxxxxxx
- cls. */
- return 1432;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001000101xxxxxxxxxxxxx
+ cls. */
+ return 3663;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011000101xxxxxxxxxxxxx
+ cls. */
+ return 1432;
+ }
}
}
else
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0100101xxxxxxxxxxxxx
- sxtw. */
- return 2056;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000100101xxxxxxxxxxxxx
+ sxtw. */
+ return 3735;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010100101xxxxxxxxxxxxx
+ sxtw. */
+ return 2056;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1100101xxxxxxxxxxxxx
- fabs. */
- return 1494;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001100101xxxxxxxxxxxxx
+ fabs. */
+ return 3669;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011100101xxxxxxxxxxxxx
+ fabs. */
+ return 1494;
+ }
}
}
}
@@ -15422,38 +15466,82 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0010101xxxxxxxxxxxxx
- sxth. */
- return 2055;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000010101xxxxxxxxxxxxx
+ sxth. */
+ return 3734;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010010101xxxxxxxxxxxxx
+ sxth. */
+ return 2055;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1010101xxxxxxxxxxxxx
- cnt. */
- return 1461;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001010101xxxxxxxxxxxxx
+ cnt. */
+ return 3666;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011010101xxxxxxxxxxxxx
+ cnt. */
+ return 1461;
+ }
}
}
else
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0110101xxxxxxxxxxxxx
- abs. */
- return 1390;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000110101xxxxxxxxxxxxx
+ abs. */
+ return 3660;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010110101xxxxxxxxxxxxx
+ abs. */
+ return 1390;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1110101xxxxxxxxxxxxx
- not. */
- return 1853;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001110101xxxxxxxxxxxxx
+ not. */
+ return 3718;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011110101xxxxxxxxxxxxx
+ not. */
+ return 1853;
+ }
}
}
}
@@ -15466,38 +15554,82 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0001101xxxxxxxxxxxxx
- uxtb. */
- return 2117;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000001101xxxxxxxxxxxxx
+ uxtb. */
+ return 3745;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010001101xxxxxxxxxxxxx
+ uxtb. */
+ return 2117;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1001101xxxxxxxxxxxxx
- clz. */
- return 1433;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001001101xxxxxxxxxxxxx
+ clz. */
+ return 3664;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011001101xxxxxxxxxxxxx
+ clz. */
+ return 1433;
+ }
}
}
else
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x0101101xxxxxxxxxxxxx
- uxtw. */
- return 2119;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000101101xxxxxxxxxxxxx
+ uxtw. */
+ return 3747;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010101101xxxxxxxxxxxxx
+ uxtw. */
+ return 2119;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1101101xxxxxxxxxxxxx
- fneg. */
- return 1571;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001101101xxxxxxxxxxxxx
+ fneg. */
+ return 3698;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011101101xxxxxxxxxxxxx
+ fneg. */
+ return 1571;
+ }
}
}
}
@@ -15506,30 +15638,63 @@ aarch64_opcode_lookup_1 (uint32_t word)
if (((word >> 18) & 0x1) == 0)
{
if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000011101xxxxxxxxxxxxx
+ uxth. */
+ return 3746;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010011101xxxxxxxxxxxxx
+ uxth. */
+ return 2118;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001011101xxxxxxxxxxxxx
+ cnot. */
+ return 366[...]
[diff truncated at 100000 bytes]
More information about the Binutils-cvs
mailing list