]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Fix sve2p1 gating and add missing instructions
authorAndrew Carlotti <andrew.carlotti@arm.com>
Thu, 16 Jan 2025 02:34:44 +0000 (02:34 +0000)
committerAndrew Carlotti <andrew.carlotti@arm.com>
Fri, 17 Jan 2025 16:19:56 +0000 (16:19 +0000)
Many FEAT_SVE2p1 instructions need to be enabled by either of two
different features (one for streaming mode, and one for non-streaming
mode).  This patch adds correct gating conditions for these
instructions.

There were also a few sve2p1 instructions missing altogether, so add
those as well.

The testsuite is modified to check for all alternative enablement
conditions.  In many cases this is done by adding an alternative
assembler commands to existing test files.  For some SME/SME2 tests,
only some of the instructions are enabled by +sve2p1, so these are
copied into a separate test.  For original SVE2p1 tests, the non-SME2p1
instructions have been moved to a separate test file.

There are also new tests for the newly added instructions.  These
include a couple of fixme comments relating to bad error reporting,
which should be investigated later.

35 files changed:
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/sme-9.d
gas/testsuite/gas/aarch64/sme2-2-sve2p1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-2-sve2p1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-3-sve2p1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-3-sve2p1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-4-sve2p1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-4-sve2p1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-5-sve2p1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-5-sve2p1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-6-sve2p1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-6-sve2p1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-7.d
gas/testsuite/gas/aarch64/sve2-sme2-2.d
gas/testsuite/gas/aarch64/sve2-sme2-3.d
gas/testsuite/gas/aarch64/sve2-sme2-4.d
gas/testsuite/gas/aarch64/sve2-sme2-5.d
gas/testsuite/gas/aarch64/sve2-sme2-6.d
gas/testsuite/gas/aarch64/sve2-sme2-7.d
gas/testsuite/gas/aarch64/sve2p1-1.d
gas/testsuite/gas/aarch64/sve2p1-4.d
gas/testsuite/gas/aarch64/sve2p1-4.s
gas/testsuite/gas/aarch64/sve2p1-5.d
gas/testsuite/gas/aarch64/sve2p1-6.d
gas/testsuite/gas/aarch64/sve2p1-7.d
gas/testsuite/gas/aarch64/sve2p1-8.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-8.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-9-invalid.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-9-invalid.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-9-invalid.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-9.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve2p1-9.s [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-dis-2.c
opcodes/aarch64-tbl.h

index fc8fcb07a787306800142b4268f5cb23e90ed04d..8b074ff22dd6870fb1cc7d796015832860c37293 100644 (file)
@@ -10786,6 +10786,11 @@ 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 (SVE2p1), AARCH64_FEATURES (3, SVE2p1_SME, SVE2p1_SME2,
+                                              SVE2p1_SME2p1)},
+  {AARCH64_FEATURE (SME), AARCH64_FEATURE (SVE2p1_SME)},
+  {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2p1_SME2)},
+  {AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SVE2p1_SME2p1)},
 };
 
 static aarch64_feature_set
index 69b27020d01be8131ce9e9a2c1c1bd728dbb0115..ffc61940a4e590d09461203fd7214b0c1a7f7b85 100644 (file)
@@ -1,5 +1,6 @@
 #name: SVE2 instructions added to support SME
 #as: -march=armv8-a+sme
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 .*:     file format .*
diff --git a/gas/testsuite/gas/aarch64/sme2-2-sve2p1.d b/gas/testsuite/gas/aarch64/sme2-2-sve2p1.d
new file mode 100644 (file)
index 0000000..a406a85
--- /dev/null
@@ -0,0 +1,169 @@
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: a0400000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a0400000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a0400000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a040001e        ld1b    {z30\.b-z31\.b}, pn8/z, \[x0\]
+[^:]+: a0401c00        ld1b    {z0\.b-z1\.b}, pn15/z, \[x0\]
+[^:]+: a04003c0        ld1b    {z0\.b-z1\.b}, pn8/z, \[x30\]
+[^:]+: a04003e0        ld1b    {z0\.b-z1\.b}, pn8/z, \[sp\]
+[^:]+: a0480000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0470000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b156c        ld1b    {z12\.b-z13\.b}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a0408000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a0408000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a0408000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a040801c        ld1b    {z28\.b-z31\.b}, pn8/z, \[x0\]
+[^:]+: a0409c00        ld1b    {z0\.b-z3\.b}, pn15/z, \[x0\]
+[^:]+: a04083c0        ld1b    {z0\.b-z3\.b}, pn8/z, \[x30\]
+[^:]+: a04083e0        ld1b    {z0\.b-z3\.b}, pn8/z, \[sp\]
+[^:]+: a0488000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a0478000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a0458e28        ld1b    {z8\.b-z11\.b}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0010000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0010000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0010000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a001001e        ld1b    {z30\.b-z31\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0011c00        ld1b    {z0\.b-z1\.b}, pn15/z, \[x0, x1\]
+[^:]+: a00103c0        ld1b    {z0\.b-z1\.b}, pn8/z, \[x30, x1\]
+[^:]+: a00103e0        ld1b    {z0\.b-z1\.b}, pn8/z, \[sp, x1\]
+[^:]+: a01e0000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, x30\]
+[^:]+: a01f0000        ld1b    {z0\.b-z1\.b}, pn8/z, \[x0, xzr\]
+[^:]+: a003074e        ld1b    {z14\.b-z15\.b}, pn9/z, \[x26, x3\]
+[^:]+: a0018000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0018000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0018000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a001801c        ld1b    {z28\.b-z31\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0019c00        ld1b    {z0\.b-z3\.b}, pn15/z, \[x0, x1\]
+[^:]+: a00183c0        ld1b    {z0\.b-z3\.b}, pn8/z, \[x30, x1\]
+[^:]+: a00183e0        ld1b    {z0\.b-z3\.b}, pn8/z, \[sp, x1\]
+[^:]+: a01e8000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, x30\]
+[^:]+: a01f8000        ld1b    {z0\.b-z3\.b}, pn8/z, \[x0, xzr\]
+[^:]+: a0018f68        ld1b    {z8\.b-z11\.b}, pn11/z, \[x27, x1\]
+[^:]+: a0400001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a0400001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a0400001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0\]
+[^:]+: a040001f        ldnt1b  {z30\.b-z31\.b}, pn8/z, \[x0\]
+[^:]+: a0401c01        ldnt1b  {z0\.b-z1\.b}, pn15/z, \[x0\]
+[^:]+: a04003c1        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x30\]
+[^:]+: a04003e1        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[sp\]
+[^:]+: a0480001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0470001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b156d        ldnt1b  {z12\.b-z13\.b}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a0408001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a0408001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a0408001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0\]
+[^:]+: a040801d        ldnt1b  {z28\.b-z31\.b}, pn8/z, \[x0\]
+[^:]+: a0409c01        ldnt1b  {z0\.b-z3\.b}, pn15/z, \[x0\]
+[^:]+: a04083c1        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x30\]
+[^:]+: a04083e1        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[sp\]
+[^:]+: a0488001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a0478001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a0458e29        ldnt1b  {z8\.b-z11\.b}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0010001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0010001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0010001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, x1\]
+[^:]+: a001001f        ldnt1b  {z30\.b-z31\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0011c01        ldnt1b  {z0\.b-z1\.b}, pn15/z, \[x0, x1\]
+[^:]+: a00103c1        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x30, x1\]
+[^:]+: a00103e1        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[sp, x1\]
+[^:]+: a01e0001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, x30\]
+[^:]+: a01f0001        ldnt1b  {z0\.b-z1\.b}, pn8/z, \[x0, xzr\]
+[^:]+: a003074f        ldnt1b  {z14\.b-z15\.b}, pn9/z, \[x26, x3\]
+[^:]+: a0018001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0018001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0018001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, x1\]
+[^:]+: a001801d        ldnt1b  {z28\.b-z31\.b}, pn8/z, \[x0, x1\]
+[^:]+: a0019c01        ldnt1b  {z0\.b-z3\.b}, pn15/z, \[x0, x1\]
+[^:]+: a00183c1        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x30, x1\]
+[^:]+: a00183e1        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[sp, x1\]
+[^:]+: a01e8001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, x30\]
+[^:]+: a01f8001        ldnt1b  {z0\.b-z3\.b}, pn8/z, \[x0, xzr\]
+[^:]+: a0018f69        ldnt1b  {z8\.b-z11\.b}, pn11/z, \[x27, x1\]
+[^:]+: a0600000        st1b    {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a0600000        st1b    {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a0600000        st1b    {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a060001e        st1b    {z30\.b-z31\.b}, pn8, \[x0\]
+[^:]+: a0601c00        st1b    {z0\.b-z1\.b}, pn15, \[x0\]
+[^:]+: a06003c0        st1b    {z0\.b-z1\.b}, pn8, \[x30\]
+[^:]+: a06003e0        st1b    {z0\.b-z1\.b}, pn8, \[sp\]
+[^:]+: a0680000        st1b    {z0\.b-z1\.b}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0670000        st1b    {z0\.b-z1\.b}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b156c        st1b    {z12\.b-z13\.b}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a0608000        st1b    {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a0608000        st1b    {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a0608000        st1b    {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a060801c        st1b    {z28\.b-z31\.b}, pn8, \[x0\]
+[^:]+: a0609c00        st1b    {z0\.b-z3\.b}, pn15, \[x0\]
+[^:]+: a06083c0        st1b    {z0\.b-z3\.b}, pn8, \[x30\]
+[^:]+: a06083e0        st1b    {z0\.b-z3\.b}, pn8, \[sp\]
+[^:]+: a0688000        st1b    {z0\.b-z3\.b}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a0678000        st1b    {z0\.b-z3\.b}, pn8, \[x0, #28, mul vl\]
+[^:]+: a0658e28        st1b    {z8\.b-z11\.b}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0210000        st1b    {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a0210000        st1b    {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a0210000        st1b    {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a021001e        st1b    {z30\.b-z31\.b}, pn8, \[x0, x1\]
+[^:]+: a0211c00        st1b    {z0\.b-z1\.b}, pn15, \[x0, x1\]
+[^:]+: a02103c0        st1b    {z0\.b-z1\.b}, pn8, \[x30, x1\]
+[^:]+: a02103e0        st1b    {z0\.b-z1\.b}, pn8, \[sp, x1\]
+[^:]+: a03e0000        st1b    {z0\.b-z1\.b}, pn8, \[x0, x30\]
+[^:]+: a03f0000        st1b    {z0\.b-z1\.b}, pn8, \[x0, xzr\]
+[^:]+: a023074e        st1b    {z14\.b-z15\.b}, pn9, \[x26, x3\]
+[^:]+: a0218000        st1b    {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a0218000        st1b    {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a0218000        st1b    {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a021801c        st1b    {z28\.b-z31\.b}, pn8, \[x0, x1\]
+[^:]+: a0219c00        st1b    {z0\.b-z3\.b}, pn15, \[x0, x1\]
+[^:]+: a02183c0        st1b    {z0\.b-z3\.b}, pn8, \[x30, x1\]
+[^:]+: a02183e0        st1b    {z0\.b-z3\.b}, pn8, \[sp, x1\]
+[^:]+: a03e8000        st1b    {z0\.b-z3\.b}, pn8, \[x0, x30\]
+[^:]+: a03f8000        st1b    {z0\.b-z3\.b}, pn8, \[x0, xzr\]
+[^:]+: a0218f68        st1b    {z8\.b-z11\.b}, pn11, \[x27, x1\]
+[^:]+: a0600001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a0600001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a0600001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0\]
+[^:]+: a060001f        stnt1b  {z30\.b-z31\.b}, pn8, \[x0\]
+[^:]+: a0601c01        stnt1b  {z0\.b-z1\.b}, pn15, \[x0\]
+[^:]+: a06003c1        stnt1b  {z0\.b-z1\.b}, pn8, \[x30\]
+[^:]+: a06003e1        stnt1b  {z0\.b-z1\.b}, pn8, \[sp\]
+[^:]+: a0680001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0670001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b156d        stnt1b  {z12\.b-z13\.b}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a0608001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a0608001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a0608001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0\]
+[^:]+: a060801d        stnt1b  {z28\.b-z31\.b}, pn8, \[x0\]
+[^:]+: a0609c01        stnt1b  {z0\.b-z3\.b}, pn15, \[x0\]
+[^:]+: a06083c1        stnt1b  {z0\.b-z3\.b}, pn8, \[x30\]
+[^:]+: a06083e1        stnt1b  {z0\.b-z3\.b}, pn8, \[sp\]
+[^:]+: a0688001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a0678001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, #28, mul vl\]
+[^:]+: a0658e29        stnt1b  {z8\.b-z11\.b}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0210001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a0210001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a0210001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, x1\]
+[^:]+: a021001f        stnt1b  {z30\.b-z31\.b}, pn8, \[x0, x1\]
+[^:]+: a0211c01        stnt1b  {z0\.b-z1\.b}, pn15, \[x0, x1\]
+[^:]+: a02103c1        stnt1b  {z0\.b-z1\.b}, pn8, \[x30, x1\]
+[^:]+: a02103e1        stnt1b  {z0\.b-z1\.b}, pn8, \[sp, x1\]
+[^:]+: a03e0001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, x30\]
+[^:]+: a03f0001        stnt1b  {z0\.b-z1\.b}, pn8, \[x0, xzr\]
+[^:]+: a023074f        stnt1b  {z14\.b-z15\.b}, pn9, \[x26, x3\]
+[^:]+: a0218001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a0218001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a0218001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, x1\]
+[^:]+: a021801d        stnt1b  {z28\.b-z31\.b}, pn8, \[x0, x1\]
+[^:]+: a0219c01        stnt1b  {z0\.b-z3\.b}, pn15, \[x0, x1\]
+[^:]+: a02183c1        stnt1b  {z0\.b-z3\.b}, pn8, \[x30, x1\]
+[^:]+: a02183e1        stnt1b  {z0\.b-z3\.b}, pn8, \[sp, x1\]
+[^:]+: a03e8001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, x30\]
+[^:]+: a03f8001        stnt1b  {z0\.b-z3\.b}, pn8, \[x0, xzr\]
+[^:]+: a0218f69        stnt1b  {z8\.b-z11\.b}, pn11, \[x27, x1\]
diff --git a/gas/testsuite/gas/aarch64/sme2-2-sve2p1.s b/gas/testsuite/gas/aarch64/sme2-2-sve2p1.s
new file mode 100644 (file)
index 0000000..8c90a67
--- /dev/null
@@ -0,0 +1,175 @@
+       ld1b    { z0.b - z1.b }, pn8/z, [x0]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, #0, mul vl]
+       LD1B    { Z0.B - Z1.B }, PN8/Z, [X0]
+       ld1b    { z30.b - z31.b }, pn8/z, [x0]
+       ld1b    { z0.b - z1.b }, pn15/z, [x0]
+       ld1b    { z0.b - z1.b }, pn8/z, [x30]
+       ld1b    { z0.b - z1.b }, pn8/z, [sp]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, #-16, mul vl]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, #14, mul vl]
+       ld1b    { z12.b - z13.b }, pn13/z, [x11, #-10, mul vl]
+
+       ld1b    { z0.b - z3.b }, pn8/z, [x0]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, #0, mul vl]
+       LD1B    { Z0.B - Z3.B }, PN8/Z, [X0]
+       ld1b    { z28.b - z31.b }, pn8/z, [x0]
+       ld1b    { z0.b - z3.b }, pn15/z, [x0]
+       ld1b    { z0.b - z3.b }, pn8/z, [x30]
+       ld1b    { z0.b - z3.b }, pn8/z, [sp]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, #-32, mul vl]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, #28, mul vl]
+       ld1b    { z8.b - z11.b }, pn11/z, [x17, #20, mul vl]
+
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, x1]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, x1, lsl #0]
+       LD1B    { Z0.B - Z1.B }, PN8/Z, [X0, X1]
+       ld1b    { z30.b - z31.b }, pn8/z, [x0, x1]
+       ld1b    { z0.b - z1.b }, pn15/z, [x0, x1]
+       ld1b    { z0.b - z1.b }, pn8/z, [x30, x1]
+       ld1b    { z0.b - z1.b }, pn8/z, [sp, x1]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, x30]
+       ld1b    { z0.b - z1.b }, pn8/z, [x0, xzr]
+       ld1b    { z14.b - z15.b }, pn9/z, [x26, x3]
+
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, x1]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, x1, lsl #0]
+       LD1B    { Z0.B - Z3.B }, PN8/Z, [X0, X1]
+       ld1b    { z28.b - z31.b }, pn8/z, [x0, x1]
+       ld1b    { z0.b - z3.b }, pn15/z, [x0, x1]
+       ld1b    { z0.b - z3.b }, pn8/z, [x30, x1]
+       ld1b    { z0.b - z3.b }, pn8/z, [sp, x1]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, x30]
+       ld1b    { z0.b - z3.b }, pn8/z, [x0, xzr]
+       ld1b    { z8.b - z11.b }, pn11/z, [x27, x1]
+
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, #0, mul vl]
+       LDNT1B  { Z0.B - Z1.B }, PN8/Z, [X0]
+       ldnt1b  { z30.b - z31.b }, pn8/z, [x0]
+       ldnt1b  { z0.b - z1.b }, pn15/z, [x0]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x30]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [sp]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, #-16, mul vl]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, #14, mul vl]
+       ldnt1b  { z12.b - z13.b }, pn13/z, [x11, #-10, mul vl]
+
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, #0, mul vl]
+       LDNT1B  { Z0.B - Z3.B }, PN8/Z, [X0]
+       ldnt1b  { z28.b - z31.b }, pn8/z, [x0]
+       ldnt1b  { z0.b - z3.b }, pn15/z, [x0]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x30]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [sp]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, #-32, mul vl]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, #28, mul vl]
+       ldnt1b  { z8.b - z11.b }, pn11/z, [x17, #20, mul vl]
+
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, x1]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, x1, lsl #0]
+       LDNT1B  { Z0.B - Z1.B }, PN8/Z, [X0, X1]
+       ldnt1b  { z30.b - z31.b }, pn8/z, [x0, x1]
+       ldnt1b  { z0.b - z1.b }, pn15/z, [x0, x1]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x30, x1]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [sp, x1]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, x30]
+       ldnt1b  { z0.b - z1.b }, pn8/z, [x0, xzr]
+       ldnt1b  { z14.b - z15.b }, pn9/z, [x26, x3]
+
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, x1]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, x1, lsl #0]
+       LDNT1B  { Z0.B - Z3.B }, PN8/Z, [X0, X1]
+       ldnt1b  { z28.b - z31.b }, pn8/z, [x0, x1]
+       ldnt1b  { z0.b - z3.b }, pn15/z, [x0, x1]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x30, x1]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [sp, x1]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, x30]
+       ldnt1b  { z0.b - z3.b }, pn8/z, [x0, xzr]
+       ldnt1b  { z8.b - z11.b }, pn11/z, [x27, x1]
+
+       st1b    { z0.b - z1.b }, pn8, [x0]
+       st1b    { z0.b - z1.b }, pn8, [x0, #0, mul vl]
+       ST1B    { Z0.B - Z1.B }, PN8, [X0]
+       st1b    { z30.b - z31.b }, pn8, [x0]
+       st1b    { z0.b - z1.b }, pn15, [x0]
+       st1b    { z0.b - z1.b }, pn8, [x30]
+       st1b    { z0.b - z1.b }, pn8, [sp]
+       st1b    { z0.b - z1.b }, pn8, [x0, #-16, mul vl]
+       st1b    { z0.b - z1.b }, pn8, [x0, #14, mul vl]
+       st1b    { z12.b - z13.b }, pn13, [x11, #-10, mul vl]
+
+       st1b    { z0.b - z3.b }, pn8, [x0]
+       st1b    { z0.b - z3.b }, pn8, [x0, #0, mul vl]
+       ST1B    { Z0.B - Z3.B }, PN8, [X0]
+       st1b    { z28.b - z31.b }, pn8, [x0]
+       st1b    { z0.b - z3.b }, pn15, [x0]
+       st1b    { z0.b - z3.b }, pn8, [x30]
+       st1b    { z0.b - z3.b }, pn8, [sp]
+       st1b    { z0.b - z3.b }, pn8, [x0, #-32, mul vl]
+       st1b    { z0.b - z3.b }, pn8, [x0, #28, mul vl]
+       st1b    { z8.b - z11.b }, pn11, [x17, #20, mul vl]
+
+       st1b    { z0.b - z1.b }, pn8, [x0, x1]
+       st1b    { z0.b - z1.b }, pn8, [x0, x1, lsl #0]
+       ST1B    { Z0.B - Z1.B }, PN8, [X0, X1]
+       st1b    { z30.b - z31.b }, pn8, [x0, x1]
+       st1b    { z0.b - z1.b }, pn15, [x0, x1]
+       st1b    { z0.b - z1.b }, pn8, [x30, x1]
+       st1b    { z0.b - z1.b }, pn8, [sp, x1]
+       st1b    { z0.b - z1.b }, pn8, [x0, x30]
+       st1b    { z0.b - z1.b }, pn8, [x0, xzr]
+       st1b    { z14.b - z15.b }, pn9, [x26, x3]
+
+       st1b    { z0.b - z3.b }, pn8, [x0, x1]
+       st1b    { z0.b - z3.b }, pn8, [x0, x1, lsl #0]
+       ST1B    { Z0.B - Z3.B }, PN8, [X0, X1]
+       st1b    { z28.b - z31.b }, pn8, [x0, x1]
+       st1b    { z0.b - z3.b }, pn15, [x0, x1]
+       st1b    { z0.b - z3.b }, pn8, [x30, x1]
+       st1b    { z0.b - z3.b }, pn8, [sp, x1]
+       st1b    { z0.b - z3.b }, pn8, [x0, x30]
+       st1b    { z0.b - z3.b }, pn8, [x0, xzr]
+       st1b    { z8.b - z11.b }, pn11, [x27, x1]
+
+       stnt1b  { z0.b - z1.b }, pn8, [x0]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, #0, mul vl]
+       STNT1B  { Z0.B - Z1.B }, PN8, [X0]
+       stnt1b  { z30.b - z31.b }, pn8, [x0]
+       stnt1b  { z0.b - z1.b }, pn15, [x0]
+       stnt1b  { z0.b - z1.b }, pn8, [x30]
+       stnt1b  { z0.b - z1.b }, pn8, [sp]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, #-16, mul vl]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, #14, mul vl]
+       stnt1b  { z12.b - z13.b }, pn13, [x11, #-10, mul vl]
+
+       stnt1b  { z0.b - z3.b }, pn8, [x0]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, #0, mul vl]
+       STNT1B  { Z0.B - Z3.B }, PN8, [X0]
+       stnt1b  { z28.b - z31.b }, pn8, [x0]
+       stnt1b  { z0.b - z3.b }, pn15, [x0]
+       stnt1b  { z0.b - z3.b }, pn8, [x30]
+       stnt1b  { z0.b - z3.b }, pn8, [sp]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, #-32, mul vl]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, #28, mul vl]
+       stnt1b  { z8.b - z11.b }, pn11, [x17, #20, mul vl]
+
+       stnt1b  { z0.b - z1.b }, pn8, [x0, x1]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, x1, lsl #0]
+       STNT1B  { Z0.B - Z1.B }, PN8, [X0, X1]
+       stnt1b  { z30.b - z31.b }, pn8, [x0, x1]
+       stnt1b  { z0.b - z1.b }, pn15, [x0, x1]
+       stnt1b  { z0.b - z1.b }, pn8, [x30, x1]
+       stnt1b  { z0.b - z1.b }, pn8, [sp, x1]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, x30]
+       stnt1b  { z0.b - z1.b }, pn8, [x0, xzr]
+       stnt1b  { z14.b - z15.b }, pn9, [x26, x3]
+
+       stnt1b  { z0.b - z3.b }, pn8, [x0, x1]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, x1, lsl #0]
+       STNT1B  { Z0.B - Z3.B }, PN8, [X0, X1]
+       stnt1b  { z28.b - z31.b }, pn8, [x0, x1]
+       stnt1b  { z0.b - z3.b }, pn15, [x0, x1]
+       stnt1b  { z0.b - z3.b }, pn8, [x30, x1]
+       stnt1b  { z0.b - z3.b }, pn8, [sp, x1]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, x30]
+       stnt1b  { z0.b - z3.b }, pn8, [x0, xzr]
+       stnt1b  { z8.b - z11.b }, pn11, [x27, x1]
diff --git a/gas/testsuite/gas/aarch64/sme2-3-sve2p1.d b/gas/testsuite/gas/aarch64/sme2-3-sve2p1.d
new file mode 100644 (file)
index 0000000..4e39bdd
--- /dev/null
@@ -0,0 +1,169 @@
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: a0406000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a0406000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a0406000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a040601e        ld1d    {z30\.d-z31\.d}, pn8/z, \[x0\]
+[^:]+: a0407c00        ld1d    {z0\.d-z1\.d}, pn15/z, \[x0\]
+[^:]+: a04063c0        ld1d    {z0\.d-z1\.d}, pn8/z, \[x30\]
+[^:]+: a04063e0        ld1d    {z0\.d-z1\.d}, pn8/z, \[sp\]
+[^:]+: a0486000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0476000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b756c        ld1d    {z12\.d-z13\.d}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e01c        ld1d    {z28\.d-z31\.d}, pn8/z, \[x0\]
+[^:]+: a040fc00        ld1d    {z0\.d-z3\.d}, pn15/z, \[x0\]
+[^:]+: a040e3c0        ld1d    {z0\.d-z3\.d}, pn8/z, \[x30\]
+[^:]+: a040e3e0        ld1d    {z0\.d-z3\.d}, pn8/z, \[sp\]
+[^:]+: a048e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ee28        ld1d    {z8\.d-z11\.d}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0016000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0016000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0016000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001601e        ld1d    {z30\.d-z31\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0017c00        ld1d    {z0\.d-z1\.d}, pn15/z, \[x0, x1, lsl #3\]
+[^:]+: a00163c0        ld1d    {z0\.d-z1\.d}, pn8/z, \[x30, x1, lsl #3\]
+[^:]+: a00163e0        ld1d    {z0\.d-z1\.d}, pn8/z, \[sp, x1, lsl #3\]
+[^:]+: a01e6000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, x30, lsl #3\]
+[^:]+: a01f6000        ld1d    {z0\.d-z1\.d}, pn8/z, \[x0, xzr, lsl #3\]
+[^:]+: a003674e        ld1d    {z14\.d-z15\.d}, pn9/z, \[x26, x3, lsl #3\]
+[^:]+: a001e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e01c        ld1d    {z28\.d-z31\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001fc00        ld1d    {z0\.d-z3\.d}, pn15/z, \[x0, x1, lsl #3\]
+[^:]+: a001e3c0        ld1d    {z0\.d-z3\.d}, pn8/z, \[x30, x1, lsl #3\]
+[^:]+: a001e3e0        ld1d    {z0\.d-z3\.d}, pn8/z, \[sp, x1, lsl #3\]
+[^:]+: a01ee000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, x30, lsl #3\]
+[^:]+: a01fe000        ld1d    {z0\.d-z3\.d}, pn8/z, \[x0, xzr, lsl #3\]
+[^:]+: a001ef68        ld1d    {z8\.d-z11\.d}, pn11/z, \[x27, x1, lsl #3\]
+[^:]+: a0406001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a0406001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a0406001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0\]
+[^:]+: a040601f        ldnt1d  {z30\.d-z31\.d}, pn8/z, \[x0\]
+[^:]+: a0407c01        ldnt1d  {z0\.d-z1\.d}, pn15/z, \[x0\]
+[^:]+: a04063c1        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x30\]
+[^:]+: a04063e1        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[sp\]
+[^:]+: a0486001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0476001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b756d        ldnt1d  {z12\.d-z13\.d}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0\]
+[^:]+: a040e01d        ldnt1d  {z28\.d-z31\.d}, pn8/z, \[x0\]
+[^:]+: a040fc01        ldnt1d  {z0\.d-z3\.d}, pn15/z, \[x0\]
+[^:]+: a040e3c1        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x30\]
+[^:]+: a040e3e1        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[sp\]
+[^:]+: a048e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ee29        ldnt1d  {z8\.d-z11\.d}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0016001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0016001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0016001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001601f        ldnt1d  {z30\.d-z31\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a0017c01        ldnt1d  {z0\.d-z1\.d}, pn15/z, \[x0, x1, lsl #3\]
+[^:]+: a00163c1        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x30, x1, lsl #3\]
+[^:]+: a00163e1        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[sp, x1, lsl #3\]
+[^:]+: a01e6001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, x30, lsl #3\]
+[^:]+: a01f6001        ldnt1d  {z0\.d-z1\.d}, pn8/z, \[x0, xzr, lsl #3\]
+[^:]+: a003674f        ldnt1d  {z14\.d-z15\.d}, pn9/z, \[x26, x3, lsl #3\]
+[^:]+: a001e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001e01d        ldnt1d  {z28\.d-z31\.d}, pn8/z, \[x0, x1, lsl #3\]
+[^:]+: a001fc01        ldnt1d  {z0\.d-z3\.d}, pn15/z, \[x0, x1, lsl #3\]
+[^:]+: a001e3c1        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x30, x1, lsl #3\]
+[^:]+: a001e3e1        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[sp, x1, lsl #3\]
+[^:]+: a01ee001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, x30, lsl #3\]
+[^:]+: a01fe001        ldnt1d  {z0\.d-z3\.d}, pn8/z, \[x0, xzr, lsl #3\]
+[^:]+: a001ef69        ldnt1d  {z8\.d-z11\.d}, pn11/z, \[x27, x1, lsl #3\]
+[^:]+: a0606000        st1d    {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a0606000        st1d    {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a0606000        st1d    {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a060601e        st1d    {z30\.d-z31\.d}, pn8, \[x0\]
+[^:]+: a0607c00        st1d    {z0\.d-z1\.d}, pn15, \[x0\]
+[^:]+: a06063c0        st1d    {z0\.d-z1\.d}, pn8, \[x30\]
+[^:]+: a06063e0        st1d    {z0\.d-z1\.d}, pn8, \[sp\]
+[^:]+: a0686000        st1d    {z0\.d-z1\.d}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0676000        st1d    {z0\.d-z1\.d}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b756c        st1d    {z12\.d-z13\.d}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060e000        st1d    {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e000        st1d    {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e000        st1d    {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e01c        st1d    {z28\.d-z31\.d}, pn8, \[x0\]
+[^:]+: a060fc00        st1d    {z0\.d-z3\.d}, pn15, \[x0\]
+[^:]+: a060e3c0        st1d    {z0\.d-z3\.d}, pn8, \[x30\]
+[^:]+: a060e3e0        st1d    {z0\.d-z3\.d}, pn8, \[sp\]
+[^:]+: a068e000        st1d    {z0\.d-z3\.d}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067e000        st1d    {z0\.d-z3\.d}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ee28        st1d    {z8\.d-z11\.d}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0216000        st1d    {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0216000        st1d    {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0216000        st1d    {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021601e        st1d    {z30\.d-z31\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0217c00        st1d    {z0\.d-z1\.d}, pn15, \[x0, x1, lsl #3\]
+[^:]+: a02163c0        st1d    {z0\.d-z1\.d}, pn8, \[x30, x1, lsl #3\]
+[^:]+: a02163e0        st1d    {z0\.d-z1\.d}, pn8, \[sp, x1, lsl #3\]
+[^:]+: a03e6000        st1d    {z0\.d-z1\.d}, pn8, \[x0, x30, lsl #3\]
+[^:]+: a03f6000        st1d    {z0\.d-z1\.d}, pn8, \[x0, xzr, lsl #3\]
+[^:]+: a023674e        st1d    {z14\.d-z15\.d}, pn9, \[x26, x3, lsl #3\]
+[^:]+: a021e000        st1d    {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e000        st1d    {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e000        st1d    {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e01c        st1d    {z28\.d-z31\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021fc00        st1d    {z0\.d-z3\.d}, pn15, \[x0, x1, lsl #3\]
+[^:]+: a021e3c0        st1d    {z0\.d-z3\.d}, pn8, \[x30, x1, lsl #3\]
+[^:]+: a021e3e0        st1d    {z0\.d-z3\.d}, pn8, \[sp, x1, lsl #3\]
+[^:]+: a03ee000        st1d    {z0\.d-z3\.d}, pn8, \[x0, x30, lsl #3\]
+[^:]+: a03fe000        st1d    {z0\.d-z3\.d}, pn8, \[x0, xzr, lsl #3\]
+[^:]+: a021ef68        st1d    {z8\.d-z11\.d}, pn11, \[x27, x1, lsl #3\]
+[^:]+: a0606001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a0606001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a0606001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0\]
+[^:]+: a060601f        stnt1d  {z30\.d-z31\.d}, pn8, \[x0\]
+[^:]+: a0607c01        stnt1d  {z0\.d-z1\.d}, pn15, \[x0\]
+[^:]+: a06063c1        stnt1d  {z0\.d-z1\.d}, pn8, \[x30\]
+[^:]+: a06063e1        stnt1d  {z0\.d-z1\.d}, pn8, \[sp\]
+[^:]+: a0686001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0676001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b756d        stnt1d  {z12\.d-z13\.d}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0\]
+[^:]+: a060e01d        stnt1d  {z28\.d-z31\.d}, pn8, \[x0\]
+[^:]+: a060fc01        stnt1d  {z0\.d-z3\.d}, pn15, \[x0\]
+[^:]+: a060e3c1        stnt1d  {z0\.d-z3\.d}, pn8, \[x30\]
+[^:]+: a060e3e1        stnt1d  {z0\.d-z3\.d}, pn8, \[sp\]
+[^:]+: a068e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ee29        stnt1d  {z8\.d-z11\.d}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0216001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0216001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0216001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021601f        stnt1d  {z30\.d-z31\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a0217c01        stnt1d  {z0\.d-z1\.d}, pn15, \[x0, x1, lsl #3\]
+[^:]+: a02163c1        stnt1d  {z0\.d-z1\.d}, pn8, \[x30, x1, lsl #3\]
+[^:]+: a02163e1        stnt1d  {z0\.d-z1\.d}, pn8, \[sp, x1, lsl #3\]
+[^:]+: a03e6001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, x30, lsl #3\]
+[^:]+: a03f6001        stnt1d  {z0\.d-z1\.d}, pn8, \[x0, xzr, lsl #3\]
+[^:]+: a023674f        stnt1d  {z14\.d-z15\.d}, pn9, \[x26, x3, lsl #3\]
+[^:]+: a021e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021e01d        stnt1d  {z28\.d-z31\.d}, pn8, \[x0, x1, lsl #3\]
+[^:]+: a021fc01        stnt1d  {z0\.d-z3\.d}, pn15, \[x0, x1, lsl #3\]
+[^:]+: a021e3c1        stnt1d  {z0\.d-z3\.d}, pn8, \[x30, x1, lsl #3\]
+[^:]+: a021e3e1        stnt1d  {z0\.d-z3\.d}, pn8, \[sp, x1, lsl #3\]
+[^:]+: a03ee001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, x30, lsl #3\]
+[^:]+: a03fe001        stnt1d  {z0\.d-z3\.d}, pn8, \[x0, xzr, lsl #3\]
+[^:]+: a021ef69        stnt1d  {z8\.d-z11\.d}, pn11, \[x27, x1, lsl #3\]
diff --git a/gas/testsuite/gas/aarch64/sme2-3-sve2p1.s b/gas/testsuite/gas/aarch64/sme2-3-sve2p1.s
new file mode 100644 (file)
index 0000000..42c56b4
--- /dev/null
@@ -0,0 +1,175 @@
+       ld1d    { z0.d - z1.d }, pn8/z, [x0]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, #0, mul vl]
+       LD1D    { Z0.D - Z1.D }, PN8/Z, [X0]
+       ld1d    { z30.d - z31.d }, pn8/z, [x0]
+       ld1d    { z0.d - z1.d }, pn15/z, [x0]
+       ld1d    { z0.d - z1.d }, pn8/z, [x30]
+       ld1d    { z0.d - z1.d }, pn8/z, [sp]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, #-16, mul vl]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, #14, mul vl]
+       ld1d    { z12.d - z13.d }, pn13/z, [x11, #-10, mul vl]
+
+       ld1d    { z0.d - z3.d }, pn8/z, [x0]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, #0, mul vl]
+       LD1D    { Z0.D - Z3.D }, PN8/Z, [X0]
+       ld1d    { z28.d - z31.d }, pn8/z, [x0]
+       ld1d    { z0.d - z3.d }, pn15/z, [x0]
+       ld1d    { z0.d - z3.d }, pn8/z, [x30]
+       ld1d    { z0.d - z3.d }, pn8/z, [sp]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, #-32, mul vl]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, #28, mul vl]
+       ld1d    { z8.d - z11.d }, pn11/z, [x17, #20, mul vl]
+
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, x1, lsl 3]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, x1, lsl #3]
+       LD1D    { Z0.D - Z1.D }, PN8/Z, [X0, X1, LSL #3]
+       ld1d    { z30.d - z31.d }, pn8/z, [x0, x1, lsl #3]
+       ld1d    { z0.d - z1.d }, pn15/z, [x0, x1, lsl #3]
+       ld1d    { z0.d - z1.d }, pn8/z, [x30, x1, lsl #3]
+       ld1d    { z0.d - z1.d }, pn8/z, [sp, x1, lsl #3]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, x30, lsl #3]
+       ld1d    { z0.d - z1.d }, pn8/z, [x0, xzr, lsl #3]
+       ld1d    { z14.d - z15.d }, pn9/z, [x26, x3, lsl #3]
+
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, x1, lsl 3]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, x1, lsl #3]
+       LD1D    { Z0.D - Z3.D }, PN8/Z, [X0, X1, LSL #3]
+       ld1d    { z28.d - z31.d }, pn8/z, [x0, x1, lsl #3]
+       ld1d    { z0.d - z3.d }, pn15/z, [x0, x1, lsl #3]
+       ld1d    { z0.d - z3.d }, pn8/z, [x30, x1, lsl #3]
+       ld1d    { z0.d - z3.d }, pn8/z, [sp, x1, lsl #3]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, x30, lsl #3]
+       ld1d    { z0.d - z3.d }, pn8/z, [x0, xzr, lsl #3]
+       ld1d    { z8.d - z11.d }, pn11/z, [x27, x1, lsl #3]
+
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, #0, mul vl]
+       LDNT1D  { Z0.D - Z1.D }, PN8/Z, [X0]
+       ldnt1d  { z30.d - z31.d }, pn8/z, [x0]
+       ldnt1d  { z0.d - z1.d }, pn15/z, [x0]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x30]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [sp]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, #-16, mul vl]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, #14, mul vl]
+       ldnt1d  { z12.d - z13.d }, pn13/z, [x11, #-10, mul vl]
+
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, #0, mul vl]
+       LDNT1D  { Z0.D - Z3.D }, PN8/Z, [X0]
+       ldnt1d  { z28.d - z31.d }, pn8/z, [x0]
+       ldnt1d  { z0.d - z3.d }, pn15/z, [x0]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x30]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [sp]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, #-32, mul vl]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, #28, mul vl]
+       ldnt1d  { z8.d - z11.d }, pn11/z, [x17, #20, mul vl]
+
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, x1, lsl 3]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, x1, lsl #3]
+       LDNT1D  { Z0.D - Z1.D }, PN8/Z, [X0, X1, LSL #3]
+       ldnt1d  { z30.d - z31.d }, pn8/z, [x0, x1, lsl #3]
+       ldnt1d  { z0.d - z1.d }, pn15/z, [x0, x1, lsl #3]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x30, x1, lsl #3]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [sp, x1, lsl #3]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, x30, lsl #3]
+       ldnt1d  { z0.d - z1.d }, pn8/z, [x0, xzr, lsl #3]
+       ldnt1d  { z14.d - z15.d }, pn9/z, [x26, x3, lsl #3]
+
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, x1, lsl 3]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, x1, lsl #3]
+       LDNT1D  { Z0.D - Z3.D }, PN8/Z, [X0, X1, LSL #3]
+       ldnt1d  { z28.d - z31.d }, pn8/z, [x0, x1, lsl #3]
+       ldnt1d  { z0.d - z3.d }, pn15/z, [x0, x1, lsl #3]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x30, x1, lsl #3]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [sp, x1, lsl #3]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, x30, lsl #3]
+       ldnt1d  { z0.d - z3.d }, pn8/z, [x0, xzr, lsl #3]
+       ldnt1d  { z8.d - z11.d }, pn11/z, [x27, x1, lsl #3]
+
+       st1d    { z0.d - z1.d }, pn8, [x0]
+       st1d    { z0.d - z1.d }, pn8, [x0, #0, mul vl]
+       ST1D    { Z0.D - Z1.D }, PN8, [X0]
+       st1d    { z30.d - z31.d }, pn8, [x0]
+       st1d    { z0.d - z1.d }, pn15, [x0]
+       st1d    { z0.d - z1.d }, pn8, [x30]
+       st1d    { z0.d - z1.d }, pn8, [sp]
+       st1d    { z0.d - z1.d }, pn8, [x0, #-16, mul vl]
+       st1d    { z0.d - z1.d }, pn8, [x0, #14, mul vl]
+       st1d    { z12.d - z13.d }, pn13, [x11, #-10, mul vl]
+
+       st1d    { z0.d - z3.d }, pn8, [x0]
+       st1d    { z0.d - z3.d }, pn8, [x0, #0, mul vl]
+       ST1D    { Z0.D - Z3.D }, PN8, [X0]
+       st1d    { z28.d - z31.d }, pn8, [x0]
+       st1d    { z0.d - z3.d }, pn15, [x0]
+       st1d    { z0.d - z3.d }, pn8, [x30]
+       st1d    { z0.d - z3.d }, pn8, [sp]
+       st1d    { z0.d - z3.d }, pn8, [x0, #-32, mul vl]
+       st1d    { z0.d - z3.d }, pn8, [x0, #28, mul vl]
+       st1d    { z8.d - z11.d }, pn11, [x17, #20, mul vl]
+
+       st1d    { z0.d - z1.d }, pn8, [x0, x1, lsl 3]
+       st1d    { z0.d - z1.d }, pn8, [x0, x1, lsl #3]
+       ST1D    { Z0.D - Z1.D }, PN8, [X0, X1, LSL #3]
+       st1d    { z30.d - z31.d }, pn8, [x0, x1, lsl #3]
+       st1d    { z0.d - z1.d }, pn15, [x0, x1, lsl #3]
+       st1d    { z0.d - z1.d }, pn8, [x30, x1, lsl #3]
+       st1d    { z0.d - z1.d }, pn8, [sp, x1, lsl #3]
+       st1d    { z0.d - z1.d }, pn8, [x0, x30, lsl #3]
+       st1d    { z0.d - z1.d }, pn8, [x0, xzr, lsl #3]
+       st1d    { z14.d - z15.d }, pn9, [x26, x3, lsl #3]
+
+       st1d    { z0.d - z3.d }, pn8, [x0, x1, lsl 3]
+       st1d    { z0.d - z3.d }, pn8, [x0, x1, lsl #3]
+       ST1D    { Z0.D - Z3.D }, PN8, [X0, X1, LSL #3]
+       st1d    { z28.d - z31.d }, pn8, [x0, x1, lsl #3]
+       st1d    { z0.d - z3.d }, pn15, [x0, x1, lsl #3]
+       st1d    { z0.d - z3.d }, pn8, [x30, x1, lsl #3]
+       st1d    { z0.d - z3.d }, pn8, [sp, x1, lsl #3]
+       st1d    { z0.d - z3.d }, pn8, [x0, x30, lsl #3]
+       st1d    { z0.d - z3.d }, pn8, [x0, xzr, lsl #3]
+       st1d    { z8.d - z11.d }, pn11, [x27, x1, lsl #3]
+
+       stnt1d  { z0.d - z1.d }, pn8, [x0]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, #0, mul vl]
+       STNT1D  { Z0.D - Z1.D }, PN8, [X0]
+       stnt1d  { z30.d - z31.d }, pn8, [x0]
+       stnt1d  { z0.d - z1.d }, pn15, [x0]
+       stnt1d  { z0.d - z1.d }, pn8, [x30]
+       stnt1d  { z0.d - z1.d }, pn8, [sp]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, #-16, mul vl]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, #14, mul vl]
+       stnt1d  { z12.d - z13.d }, pn13, [x11, #-10, mul vl]
+
+       stnt1d  { z0.d - z3.d }, pn8, [x0]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, #0, mul vl]
+       STNT1D  { Z0.D - Z3.D }, PN8, [X0]
+       stnt1d  { z28.d - z31.d }, pn8, [x0]
+       stnt1d  { z0.d - z3.d }, pn15, [x0]
+       stnt1d  { z0.d - z3.d }, pn8, [x30]
+       stnt1d  { z0.d - z3.d }, pn8, [sp]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, #-32, mul vl]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, #28, mul vl]
+       stnt1d  { z8.d - z11.d }, pn11, [x17, #20, mul vl]
+
+       stnt1d  { z0.d - z1.d }, pn8, [x0, x1, lsl 3]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, x1, lsl #3]
+       STNT1D  { Z0.D - Z1.D }, PN8, [X0, X1, LSL #3]
+       stnt1d  { z30.d - z31.d }, pn8, [x0, x1, lsl #3]
+       stnt1d  { z0.d - z1.d }, pn15, [x0, x1, lsl #3]
+       stnt1d  { z0.d - z1.d }, pn8, [x30, x1, lsl #3]
+       stnt1d  { z0.d - z1.d }, pn8, [sp, x1, lsl #3]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, x30, lsl #3]
+       stnt1d  { z0.d - z1.d }, pn8, [x0, xzr, lsl #3]
+       stnt1d  { z14.d - z15.d }, pn9, [x26, x3, lsl #3]
+
+       stnt1d  { z0.d - z3.d }, pn8, [x0, x1, lsl 3]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, x1, lsl #3]
+       STNT1D  { Z0.D - Z3.D }, PN8, [X0, X1, LSL #3]
+       stnt1d  { z28.d - z31.d }, pn8, [x0, x1, lsl #3]
+       stnt1d  { z0.d - z3.d }, pn15, [x0, x1, lsl #3]
+       stnt1d  { z0.d - z3.d }, pn8, [x30, x1, lsl #3]
+       stnt1d  { z0.d - z3.d }, pn8, [sp, x1, lsl #3]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, x30, lsl #3]
+       stnt1d  { z0.d - z3.d }, pn8, [x0, xzr, lsl #3]
+       stnt1d  { z8.d - z11.d }, pn11, [x27, x1, lsl #3]
diff --git a/gas/testsuite/gas/aarch64/sme2-4-sve2p1.d b/gas/testsuite/gas/aarch64/sme2-4-sve2p1.d
new file mode 100644 (file)
index 0000000..83baa5d
--- /dev/null
@@ -0,0 +1,169 @@
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: a0402000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a0402000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a0402000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a040201e        ld1h    {z30\.h-z31\.h}, pn8/z, \[x0\]
+[^:]+: a0403c00        ld1h    {z0\.h-z1\.h}, pn15/z, \[x0\]
+[^:]+: a04023c0        ld1h    {z0\.h-z1\.h}, pn8/z, \[x30\]
+[^:]+: a04023e0        ld1h    {z0\.h-z1\.h}, pn8/z, \[sp\]
+[^:]+: a0482000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0472000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b356c        ld1h    {z12\.h-z13\.h}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a01c        ld1h    {z28\.h-z31\.h}, pn8/z, \[x0\]
+[^:]+: a040bc00        ld1h    {z0\.h-z3\.h}, pn15/z, \[x0\]
+[^:]+: a040a3c0        ld1h    {z0\.h-z3\.h}, pn8/z, \[x30\]
+[^:]+: a040a3e0        ld1h    {z0\.h-z3\.h}, pn8/z, \[sp\]
+[^:]+: a048a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ae28        ld1h    {z8\.h-z11\.h}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0012000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0012000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0012000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001201e        ld1h    {z30\.h-z31\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0013c00        ld1h    {z0\.h-z1\.h}, pn15/z, \[x0, x1, lsl #1\]
+[^:]+: a00123c0        ld1h    {z0\.h-z1\.h}, pn8/z, \[x30, x1, lsl #1\]
+[^:]+: a00123e0        ld1h    {z0\.h-z1\.h}, pn8/z, \[sp, x1, lsl #1\]
+[^:]+: a01e2000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, x30, lsl #1\]
+[^:]+: a01f2000        ld1h    {z0\.h-z1\.h}, pn8/z, \[x0, xzr, lsl #1\]
+[^:]+: a003274e        ld1h    {z14\.h-z15\.h}, pn9/z, \[x26, x3, lsl #1\]
+[^:]+: a001a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a01c        ld1h    {z28\.h-z31\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001bc00        ld1h    {z0\.h-z3\.h}, pn15/z, \[x0, x1, lsl #1\]
+[^:]+: a001a3c0        ld1h    {z0\.h-z3\.h}, pn8/z, \[x30, x1, lsl #1\]
+[^:]+: a001a3e0        ld1h    {z0\.h-z3\.h}, pn8/z, \[sp, x1, lsl #1\]
+[^:]+: a01ea000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, x30, lsl #1\]
+[^:]+: a01fa000        ld1h    {z0\.h-z3\.h}, pn8/z, \[x0, xzr, lsl #1\]
+[^:]+: a001af68        ld1h    {z8\.h-z11\.h}, pn11/z, \[x27, x1, lsl #1\]
+[^:]+: a0402001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a0402001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a0402001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0\]
+[^:]+: a040201f        ldnt1h  {z30\.h-z31\.h}, pn8/z, \[x0\]
+[^:]+: a0403c01        ldnt1h  {z0\.h-z1\.h}, pn15/z, \[x0\]
+[^:]+: a04023c1        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x30\]
+[^:]+: a04023e1        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[sp\]
+[^:]+: a0482001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0472001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b356d        ldnt1h  {z12\.h-z13\.h}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0\]
+[^:]+: a040a01d        ldnt1h  {z28\.h-z31\.h}, pn8/z, \[x0\]
+[^:]+: a040bc01        ldnt1h  {z0\.h-z3\.h}, pn15/z, \[x0\]
+[^:]+: a040a3c1        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x30\]
+[^:]+: a040a3e1        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[sp\]
+[^:]+: a048a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ae29        ldnt1h  {z8\.h-z11\.h}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0012001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0012001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0012001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001201f        ldnt1h  {z30\.h-z31\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a0013c01        ldnt1h  {z0\.h-z1\.h}, pn15/z, \[x0, x1, lsl #1\]
+[^:]+: a00123c1        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x30, x1, lsl #1\]
+[^:]+: a00123e1        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[sp, x1, lsl #1\]
+[^:]+: a01e2001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, x30, lsl #1\]
+[^:]+: a01f2001        ldnt1h  {z0\.h-z1\.h}, pn8/z, \[x0, xzr, lsl #1\]
+[^:]+: a003274f        ldnt1h  {z14\.h-z15\.h}, pn9/z, \[x26, x3, lsl #1\]
+[^:]+: a001a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001a01d        ldnt1h  {z28\.h-z31\.h}, pn8/z, \[x0, x1, lsl #1\]
+[^:]+: a001bc01        ldnt1h  {z0\.h-z3\.h}, pn15/z, \[x0, x1, lsl #1\]
+[^:]+: a001a3c1        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x30, x1, lsl #1\]
+[^:]+: a001a3e1        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[sp, x1, lsl #1\]
+[^:]+: a01ea001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, x30, lsl #1\]
+[^:]+: a01fa001        ldnt1h  {z0\.h-z3\.h}, pn8/z, \[x0, xzr, lsl #1\]
+[^:]+: a001af69        ldnt1h  {z8\.h-z11\.h}, pn11/z, \[x27, x1, lsl #1\]
+[^:]+: a0602000        st1h    {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a0602000        st1h    {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a0602000        st1h    {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a060201e        st1h    {z30\.h-z31\.h}, pn8, \[x0\]
+[^:]+: a0603c00        st1h    {z0\.h-z1\.h}, pn15, \[x0\]
+[^:]+: a06023c0        st1h    {z0\.h-z1\.h}, pn8, \[x30\]
+[^:]+: a06023e0        st1h    {z0\.h-z1\.h}, pn8, \[sp\]
+[^:]+: a0682000        st1h    {z0\.h-z1\.h}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0672000        st1h    {z0\.h-z1\.h}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b356c        st1h    {z12\.h-z13\.h}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060a000        st1h    {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a000        st1h    {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a000        st1h    {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a01c        st1h    {z28\.h-z31\.h}, pn8, \[x0\]
+[^:]+: a060bc00        st1h    {z0\.h-z3\.h}, pn15, \[x0\]
+[^:]+: a060a3c0        st1h    {z0\.h-z3\.h}, pn8, \[x30\]
+[^:]+: a060a3e0        st1h    {z0\.h-z3\.h}, pn8, \[sp\]
+[^:]+: a068a000        st1h    {z0\.h-z3\.h}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067a000        st1h    {z0\.h-z3\.h}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ae28        st1h    {z8\.h-z11\.h}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0212000        st1h    {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0212000        st1h    {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0212000        st1h    {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021201e        st1h    {z30\.h-z31\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0213c00        st1h    {z0\.h-z1\.h}, pn15, \[x0, x1, lsl #1\]
+[^:]+: a02123c0        st1h    {z0\.h-z1\.h}, pn8, \[x30, x1, lsl #1\]
+[^:]+: a02123e0        st1h    {z0\.h-z1\.h}, pn8, \[sp, x1, lsl #1\]
+[^:]+: a03e2000        st1h    {z0\.h-z1\.h}, pn8, \[x0, x30, lsl #1\]
+[^:]+: a03f2000        st1h    {z0\.h-z1\.h}, pn8, \[x0, xzr, lsl #1\]
+[^:]+: a023274e        st1h    {z14\.h-z15\.h}, pn9, \[x26, x3, lsl #1\]
+[^:]+: a021a000        st1h    {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a000        st1h    {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a000        st1h    {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a01c        st1h    {z28\.h-z31\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021bc00        st1h    {z0\.h-z3\.h}, pn15, \[x0, x1, lsl #1\]
+[^:]+: a021a3c0        st1h    {z0\.h-z3\.h}, pn8, \[x30, x1, lsl #1\]
+[^:]+: a021a3e0        st1h    {z0\.h-z3\.h}, pn8, \[sp, x1, lsl #1\]
+[^:]+: a03ea000        st1h    {z0\.h-z3\.h}, pn8, \[x0, x30, lsl #1\]
+[^:]+: a03fa000        st1h    {z0\.h-z3\.h}, pn8, \[x0, xzr, lsl #1\]
+[^:]+: a021af68        st1h    {z8\.h-z11\.h}, pn11, \[x27, x1, lsl #1\]
+[^:]+: a0602001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a0602001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a0602001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0\]
+[^:]+: a060201f        stnt1h  {z30\.h-z31\.h}, pn8, \[x0\]
+[^:]+: a0603c01        stnt1h  {z0\.h-z1\.h}, pn15, \[x0\]
+[^:]+: a06023c1        stnt1h  {z0\.h-z1\.h}, pn8, \[x30\]
+[^:]+: a06023e1        stnt1h  {z0\.h-z1\.h}, pn8, \[sp\]
+[^:]+: a0682001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0672001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b356d        stnt1h  {z12\.h-z13\.h}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0\]
+[^:]+: a060a01d        stnt1h  {z28\.h-z31\.h}, pn8, \[x0\]
+[^:]+: a060bc01        stnt1h  {z0\.h-z3\.h}, pn15, \[x0\]
+[^:]+: a060a3c1        stnt1h  {z0\.h-z3\.h}, pn8, \[x30\]
+[^:]+: a060a3e1        stnt1h  {z0\.h-z3\.h}, pn8, \[sp\]
+[^:]+: a068a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ae29        stnt1h  {z8\.h-z11\.h}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0212001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0212001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0212001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021201f        stnt1h  {z30\.h-z31\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a0213c01        stnt1h  {z0\.h-z1\.h}, pn15, \[x0, x1, lsl #1\]
+[^:]+: a02123c1        stnt1h  {z0\.h-z1\.h}, pn8, \[x30, x1, lsl #1\]
+[^:]+: a02123e1        stnt1h  {z0\.h-z1\.h}, pn8, \[sp, x1, lsl #1\]
+[^:]+: a03e2001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, x30, lsl #1\]
+[^:]+: a03f2001        stnt1h  {z0\.h-z1\.h}, pn8, \[x0, xzr, lsl #1\]
+[^:]+: a023274f        stnt1h  {z14\.h-z15\.h}, pn9, \[x26, x3, lsl #1\]
+[^:]+: a021a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021a01d        stnt1h  {z28\.h-z31\.h}, pn8, \[x0, x1, lsl #1\]
+[^:]+: a021bc01        stnt1h  {z0\.h-z3\.h}, pn15, \[x0, x1, lsl #1\]
+[^:]+: a021a3c1        stnt1h  {z0\.h-z3\.h}, pn8, \[x30, x1, lsl #1\]
+[^:]+: a021a3e1        stnt1h  {z0\.h-z3\.h}, pn8, \[sp, x1, lsl #1\]
+[^:]+: a03ea001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, x30, lsl #1\]
+[^:]+: a03fa001        stnt1h  {z0\.h-z3\.h}, pn8, \[x0, xzr, lsl #1\]
+[^:]+: a021af69        stnt1h  {z8\.h-z11\.h}, pn11, \[x27, x1, lsl #1\]
diff --git a/gas/testsuite/gas/aarch64/sme2-4-sve2p1.s b/gas/testsuite/gas/aarch64/sme2-4-sve2p1.s
new file mode 100644 (file)
index 0000000..ec92bbf
--- /dev/null
@@ -0,0 +1,175 @@
+       ld1h    { z0.h - z1.h }, pn8/z, [x0]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, #0, mul vl]
+       LD1H    { Z0.H - Z1.H }, PN8/Z, [X0]
+       ld1h    { z30.h - z31.h }, pn8/z, [x0]
+       ld1h    { z0.h - z1.h }, pn15/z, [x0]
+       ld1h    { z0.h - z1.h }, pn8/z, [x30]
+       ld1h    { z0.h - z1.h }, pn8/z, [sp]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, #-16, mul vl]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, #14, mul vl]
+       ld1h    { z12.h - z13.h }, pn13/z, [x11, #-10, mul vl]
+
+       ld1h    { z0.h - z3.h }, pn8/z, [x0]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, #0, mul vl]
+       LD1H    { Z0.H - Z3.H }, PN8/Z, [X0]
+       ld1h    { z28.h - z31.h }, pn8/z, [x0]
+       ld1h    { z0.h - z3.h }, pn15/z, [x0]
+       ld1h    { z0.h - z3.h }, pn8/z, [x30]
+       ld1h    { z0.h - z3.h }, pn8/z, [sp]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, #-32, mul vl]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, #28, mul vl]
+       ld1h    { z8.h - z11.h }, pn11/z, [x17, #20, mul vl]
+
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, x1, lsl 1]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, x1, lsl #1]
+       LD1H    { Z0.H - Z1.H }, PN8/Z, [X0, X1, LSL #1]
+       ld1h    { z30.h - z31.h }, pn8/z, [x0, x1, lsl #1]
+       ld1h    { z0.h - z1.h }, pn15/z, [x0, x1, lsl #1]
+       ld1h    { z0.h - z1.h }, pn8/z, [x30, x1, lsl #1]
+       ld1h    { z0.h - z1.h }, pn8/z, [sp, x1, lsl #1]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, x30, lsl #1]
+       ld1h    { z0.h - z1.h }, pn8/z, [x0, xzr, lsl #1]
+       ld1h    { z14.h - z15.h }, pn9/z, [x26, x3, lsl #1]
+
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, x1, lsl 1]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, x1, lsl #1]
+       LD1H    { Z0.H - Z3.H }, PN8/Z, [X0, X1, LSL #1]
+       ld1h    { z28.h - z31.h }, pn8/z, [x0, x1, lsl #1]
+       ld1h    { z0.h - z3.h }, pn15/z, [x0, x1, lsl #1]
+       ld1h    { z0.h - z3.h }, pn8/z, [x30, x1, lsl #1]
+       ld1h    { z0.h - z3.h }, pn8/z, [sp, x1, lsl #1]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, x30, lsl #1]
+       ld1h    { z0.h - z3.h }, pn8/z, [x0, xzr, lsl #1]
+       ld1h    { z8.h - z11.h }, pn11/z, [x27, x1, lsl #1]
+
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, #0, mul vl]
+       LDNT1H  { Z0.H - Z1.H }, PN8/Z, [X0]
+       ldnt1h  { z30.h - z31.h }, pn8/z, [x0]
+       ldnt1h  { z0.h - z1.h }, pn15/z, [x0]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x30]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [sp]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, #-16, mul vl]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, #14, mul vl]
+       ldnt1h  { z12.h - z13.h }, pn13/z, [x11, #-10, mul vl]
+
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, #0, mul vl]
+       LDNT1H  { Z0.H - Z3.H }, PN8/Z, [X0]
+       ldnt1h  { z28.h - z31.h }, pn8/z, [x0]
+       ldnt1h  { z0.h - z3.h }, pn15/z, [x0]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x30]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [sp]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, #-32, mul vl]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, #28, mul vl]
+       ldnt1h  { z8.h - z11.h }, pn11/z, [x17, #20, mul vl]
+
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, x1, lsl 1]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, x1, lsl #1]
+       LDNT1H  { Z0.H - Z1.H }, PN8/Z, [X0, X1, LSL #1]
+       ldnt1h  { z30.h - z31.h }, pn8/z, [x0, x1, lsl #1]
+       ldnt1h  { z0.h - z1.h }, pn15/z, [x0, x1, lsl #1]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x30, x1, lsl #1]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [sp, x1, lsl #1]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, x30, lsl #1]
+       ldnt1h  { z0.h - z1.h }, pn8/z, [x0, xzr, lsl #1]
+       ldnt1h  { z14.h - z15.h }, pn9/z, [x26, x3, lsl #1]
+
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, x1, lsl 1]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, x1, lsl #1]
+       LDNT1H  { Z0.H - Z3.H }, PN8/Z, [X0, X1, LSL #1]
+       ldnt1h  { z28.h - z31.h }, pn8/z, [x0, x1, lsl #1]
+       ldnt1h  { z0.h - z3.h }, pn15/z, [x0, x1, lsl #1]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x30, x1, lsl #1]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [sp, x1, lsl #1]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, x30, lsl #1]
+       ldnt1h  { z0.h - z3.h }, pn8/z, [x0, xzr, lsl #1]
+       ldnt1h  { z8.h - z11.h }, pn11/z, [x27, x1, lsl #1]
+
+       st1h    { z0.h - z1.h }, pn8, [x0]
+       st1h    { z0.h - z1.h }, pn8, [x0, #0, mul vl]
+       ST1H    { Z0.H - Z1.H }, PN8, [X0]
+       st1h    { z30.h - z31.h }, pn8, [x0]
+       st1h    { z0.h - z1.h }, pn15, [x0]
+       st1h    { z0.h - z1.h }, pn8, [x30]
+       st1h    { z0.h - z1.h }, pn8, [sp]
+       st1h    { z0.h - z1.h }, pn8, [x0, #-16, mul vl]
+       st1h    { z0.h - z1.h }, pn8, [x0, #14, mul vl]
+       st1h    { z12.h - z13.h }, pn13, [x11, #-10, mul vl]
+
+       st1h    { z0.h - z3.h }, pn8, [x0]
+       st1h    { z0.h - z3.h }, pn8, [x0, #0, mul vl]
+       ST1H    { Z0.H - Z3.H }, PN8, [X0]
+       st1h    { z28.h - z31.h }, pn8, [x0]
+       st1h    { z0.h - z3.h }, pn15, [x0]
+       st1h    { z0.h - z3.h }, pn8, [x30]
+       st1h    { z0.h - z3.h }, pn8, [sp]
+       st1h    { z0.h - z3.h }, pn8, [x0, #-32, mul vl]
+       st1h    { z0.h - z3.h }, pn8, [x0, #28, mul vl]
+       st1h    { z8.h - z11.h }, pn11, [x17, #20, mul vl]
+
+       st1h    { z0.h - z1.h }, pn8, [x0, x1, lsl 1]
+       st1h    { z0.h - z1.h }, pn8, [x0, x1, lsl #1]
+       ST1H    { Z0.H - Z1.H }, PN8, [X0, X1, LSL #1]
+       st1h    { z30.h - z31.h }, pn8, [x0, x1, lsl #1]
+       st1h    { z0.h - z1.h }, pn15, [x0, x1, lsl #1]
+       st1h    { z0.h - z1.h }, pn8, [x30, x1, lsl #1]
+       st1h    { z0.h - z1.h }, pn8, [sp, x1, lsl #1]
+       st1h    { z0.h - z1.h }, pn8, [x0, x30, lsl #1]
+       st1h    { z0.h - z1.h }, pn8, [x0, xzr, lsl #1]
+       st1h    { z14.h - z15.h }, pn9, [x26, x3, lsl #1]
+
+       st1h    { z0.h - z3.h }, pn8, [x0, x1, lsl 1]
+       st1h    { z0.h - z3.h }, pn8, [x0, x1, lsl #1]
+       ST1H    { Z0.H - Z3.H }, PN8, [X0, X1, LSL #1]
+       st1h    { z28.h - z31.h }, pn8, [x0, x1, lsl #1]
+       st1h    { z0.h - z3.h }, pn15, [x0, x1, lsl #1]
+       st1h    { z0.h - z3.h }, pn8, [x30, x1, lsl #1]
+       st1h    { z0.h - z3.h }, pn8, [sp, x1, lsl #1]
+       st1h    { z0.h - z3.h }, pn8, [x0, x30, lsl #1]
+       st1h    { z0.h - z3.h }, pn8, [x0, xzr, lsl #1]
+       st1h    { z8.h - z11.h }, pn11, [x27, x1, lsl #1]
+
+       stnt1h  { z0.h - z1.h }, pn8, [x0]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, #0, mul vl]
+       STNT1H  { Z0.H - Z1.H }, PN8, [X0]
+       stnt1h  { z30.h - z31.h }, pn8, [x0]
+       stnt1h  { z0.h - z1.h }, pn15, [x0]
+       stnt1h  { z0.h - z1.h }, pn8, [x30]
+       stnt1h  { z0.h - z1.h }, pn8, [sp]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, #-16, mul vl]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, #14, mul vl]
+       stnt1h  { z12.h - z13.h }, pn13, [x11, #-10, mul vl]
+
+       stnt1h  { z0.h - z3.h }, pn8, [x0]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, #0, mul vl]
+       STNT1H  { Z0.H - Z3.H }, PN8, [X0]
+       stnt1h  { z28.h - z31.h }, pn8, [x0]
+       stnt1h  { z0.h - z3.h }, pn15, [x0]
+       stnt1h  { z0.h - z3.h }, pn8, [x30]
+       stnt1h  { z0.h - z3.h }, pn8, [sp]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, #-32, mul vl]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, #28, mul vl]
+       stnt1h  { z8.h - z11.h }, pn11, [x17, #20, mul vl]
+
+       stnt1h  { z0.h - z1.h }, pn8, [x0, x1, lsl 1]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, x1, lsl #1]
+       STNT1H  { Z0.H - Z1.H }, PN8, [X0, X1, LSL #1]
+       stnt1h  { z30.h - z31.h }, pn8, [x0, x1, lsl #1]
+       stnt1h  { z0.h - z1.h }, pn15, [x0, x1, lsl #1]
+       stnt1h  { z0.h - z1.h }, pn8, [x30, x1, lsl #1]
+       stnt1h  { z0.h - z1.h }, pn8, [sp, x1, lsl #1]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, x30, lsl #1]
+       stnt1h  { z0.h - z1.h }, pn8, [x0, xzr, lsl #1]
+       stnt1h  { z14.h - z15.h }, pn9, [x26, x3, lsl #1]
+
+       stnt1h  { z0.h - z3.h }, pn8, [x0, x1, lsl 1]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, x1, lsl #1]
+       STNT1H  { Z0.H - Z3.H }, PN8, [X0, X1, LSL #1]
+       stnt1h  { z28.h - z31.h }, pn8, [x0, x1, lsl #1]
+       stnt1h  { z0.h - z3.h }, pn15, [x0, x1, lsl #1]
+       stnt1h  { z0.h - z3.h }, pn8, [x30, x1, lsl #1]
+       stnt1h  { z0.h - z3.h }, pn8, [sp, x1, lsl #1]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, x30, lsl #1]
+       stnt1h  { z0.h - z3.h }, pn8, [x0, xzr, lsl #1]
+       stnt1h  { z8.h - z11.h }, pn11, [x27, x1, lsl #1]
diff --git a/gas/testsuite/gas/aarch64/sme2-5-sve2p1.d b/gas/testsuite/gas/aarch64/sme2-5-sve2p1.d
new file mode 100644 (file)
index 0000000..e9cb7f2
--- /dev/null
@@ -0,0 +1,169 @@
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: a0404000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a0404000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a0404000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a040401e        ld1w    {z30\.s-z31\.s}, pn8/z, \[x0\]
+[^:]+: a0405c00        ld1w    {z0\.s-z1\.s}, pn15/z, \[x0\]
+[^:]+: a04043c0        ld1w    {z0\.s-z1\.s}, pn8/z, \[x30\]
+[^:]+: a04043e0        ld1w    {z0\.s-z1\.s}, pn8/z, \[sp\]
+[^:]+: a0484000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0474000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b556c        ld1w    {z12\.s-z13\.s}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c01c        ld1w    {z28\.s-z31\.s}, pn8/z, \[x0\]
+[^:]+: a040dc00        ld1w    {z0\.s-z3\.s}, pn15/z, \[x0\]
+[^:]+: a040c3c0        ld1w    {z0\.s-z3\.s}, pn8/z, \[x30\]
+[^:]+: a040c3e0        ld1w    {z0\.s-z3\.s}, pn8/z, \[sp\]
+[^:]+: a048c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ce28        ld1w    {z8\.s-z11\.s}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0014000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0014000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0014000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001401e        ld1w    {z30\.s-z31\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0015c00        ld1w    {z0\.s-z1\.s}, pn15/z, \[x0, x1, lsl #2\]
+[^:]+: a00143c0        ld1w    {z0\.s-z1\.s}, pn8/z, \[x30, x1, lsl #2\]
+[^:]+: a00143e0        ld1w    {z0\.s-z1\.s}, pn8/z, \[sp, x1, lsl #2\]
+[^:]+: a01e4000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, x30, lsl #2\]
+[^:]+: a01f4000        ld1w    {z0\.s-z1\.s}, pn8/z, \[x0, xzr, lsl #2\]
+[^:]+: a003474e        ld1w    {z14\.s-z15\.s}, pn9/z, \[x26, x3, lsl #2\]
+[^:]+: a001c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c01c        ld1w    {z28\.s-z31\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001dc00        ld1w    {z0\.s-z3\.s}, pn15/z, \[x0, x1, lsl #2\]
+[^:]+: a001c3c0        ld1w    {z0\.s-z3\.s}, pn8/z, \[x30, x1, lsl #2\]
+[^:]+: a001c3e0        ld1w    {z0\.s-z3\.s}, pn8/z, \[sp, x1, lsl #2\]
+[^:]+: a01ec000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, x30, lsl #2\]
+[^:]+: a01fc000        ld1w    {z0\.s-z3\.s}, pn8/z, \[x0, xzr, lsl #2\]
+[^:]+: a001cf68        ld1w    {z8\.s-z11\.s}, pn11/z, \[x27, x1, lsl #2\]
+[^:]+: a0404001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a0404001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a0404001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0\]
+[^:]+: a040401f        ldnt1w  {z30\.s-z31\.s}, pn8/z, \[x0\]
+[^:]+: a0405c01        ldnt1w  {z0\.s-z1\.s}, pn15/z, \[x0\]
+[^:]+: a04043c1        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x30\]
+[^:]+: a04043e1        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[sp\]
+[^:]+: a0484001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, #-16, mul vl\]
+[^:]+: a0474001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, #14, mul vl\]
+[^:]+: a04b556d        ldnt1w  {z12\.s-z13\.s}, pn13/z, \[x11, #-10, mul vl\]
+[^:]+: a040c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0\]
+[^:]+: a040c01d        ldnt1w  {z28\.s-z31\.s}, pn8/z, \[x0\]
+[^:]+: a040dc01        ldnt1w  {z0\.s-z3\.s}, pn15/z, \[x0\]
+[^:]+: a040c3c1        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x30\]
+[^:]+: a040c3e1        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[sp\]
+[^:]+: a048c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, #-32, mul vl\]
+[^:]+: a047c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, #28, mul vl\]
+[^:]+: a045ce29        ldnt1w  {z8\.s-z11\.s}, pn11/z, \[x17, #20, mul vl\]
+[^:]+: a0014001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0014001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0014001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001401f        ldnt1w  {z30\.s-z31\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a0015c01        ldnt1w  {z0\.s-z1\.s}, pn15/z, \[x0, x1, lsl #2\]
+[^:]+: a00143c1        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x30, x1, lsl #2\]
+[^:]+: a00143e1        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[sp, x1, lsl #2\]
+[^:]+: a01e4001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, x30, lsl #2\]
+[^:]+: a01f4001        ldnt1w  {z0\.s-z1\.s}, pn8/z, \[x0, xzr, lsl #2\]
+[^:]+: a003474f        ldnt1w  {z14\.s-z15\.s}, pn9/z, \[x26, x3, lsl #2\]
+[^:]+: a001c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001c01d        ldnt1w  {z28\.s-z31\.s}, pn8/z, \[x0, x1, lsl #2\]
+[^:]+: a001dc01        ldnt1w  {z0\.s-z3\.s}, pn15/z, \[x0, x1, lsl #2\]
+[^:]+: a001c3c1        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x30, x1, lsl #2\]
+[^:]+: a001c3e1        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[sp, x1, lsl #2\]
+[^:]+: a01ec001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, x30, lsl #2\]
+[^:]+: a01fc001        ldnt1w  {z0\.s-z3\.s}, pn8/z, \[x0, xzr, lsl #2\]
+[^:]+: a001cf69        ldnt1w  {z8\.s-z11\.s}, pn11/z, \[x27, x1, lsl #2\]
+[^:]+: a0604000        st1w    {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a0604000        st1w    {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a0604000        st1w    {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a060401e        st1w    {z30\.s-z31\.s}, pn8, \[x0\]
+[^:]+: a0605c00        st1w    {z0\.s-z1\.s}, pn15, \[x0\]
+[^:]+: a06043c0        st1w    {z0\.s-z1\.s}, pn8, \[x30\]
+[^:]+: a06043e0        st1w    {z0\.s-z1\.s}, pn8, \[sp\]
+[^:]+: a0684000        st1w    {z0\.s-z1\.s}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0674000        st1w    {z0\.s-z1\.s}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b556c        st1w    {z12\.s-z13\.s}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060c000        st1w    {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c000        st1w    {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c000        st1w    {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c01c        st1w    {z28\.s-z31\.s}, pn8, \[x0\]
+[^:]+: a060dc00        st1w    {z0\.s-z3\.s}, pn15, \[x0\]
+[^:]+: a060c3c0        st1w    {z0\.s-z3\.s}, pn8, \[x30\]
+[^:]+: a060c3e0        st1w    {z0\.s-z3\.s}, pn8, \[sp\]
+[^:]+: a068c000        st1w    {z0\.s-z3\.s}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067c000        st1w    {z0\.s-z3\.s}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ce28        st1w    {z8\.s-z11\.s}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0214000        st1w    {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0214000        st1w    {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0214000        st1w    {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021401e        st1w    {z30\.s-z31\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0215c00        st1w    {z0\.s-z1\.s}, pn15, \[x0, x1, lsl #2\]
+[^:]+: a02143c0        st1w    {z0\.s-z1\.s}, pn8, \[x30, x1, lsl #2\]
+[^:]+: a02143e0        st1w    {z0\.s-z1\.s}, pn8, \[sp, x1, lsl #2\]
+[^:]+: a03e4000        st1w    {z0\.s-z1\.s}, pn8, \[x0, x30, lsl #2\]
+[^:]+: a03f4000        st1w    {z0\.s-z1\.s}, pn8, \[x0, xzr, lsl #2\]
+[^:]+: a023474e        st1w    {z14\.s-z15\.s}, pn9, \[x26, x3, lsl #2\]
+[^:]+: a021c000        st1w    {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c000        st1w    {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c000        st1w    {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c01c        st1w    {z28\.s-z31\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021dc00        st1w    {z0\.s-z3\.s}, pn15, \[x0, x1, lsl #2\]
+[^:]+: a021c3c0        st1w    {z0\.s-z3\.s}, pn8, \[x30, x1, lsl #2\]
+[^:]+: a021c3e0        st1w    {z0\.s-z3\.s}, pn8, \[sp, x1, lsl #2\]
+[^:]+: a03ec000        st1w    {z0\.s-z3\.s}, pn8, \[x0, x30, lsl #2\]
+[^:]+: a03fc000        st1w    {z0\.s-z3\.s}, pn8, \[x0, xzr, lsl #2\]
+[^:]+: a021cf68        st1w    {z8\.s-z11\.s}, pn11, \[x27, x1, lsl #2\]
+[^:]+: a0604001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a0604001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a0604001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0\]
+[^:]+: a060401f        stnt1w  {z30\.s-z31\.s}, pn8, \[x0\]
+[^:]+: a0605c01        stnt1w  {z0\.s-z1\.s}, pn15, \[x0\]
+[^:]+: a06043c1        stnt1w  {z0\.s-z1\.s}, pn8, \[x30\]
+[^:]+: a06043e1        stnt1w  {z0\.s-z1\.s}, pn8, \[sp\]
+[^:]+: a0684001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, #-16, mul vl\]
+[^:]+: a0674001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, #14, mul vl\]
+[^:]+: a06b556d        stnt1w  {z12\.s-z13\.s}, pn13, \[x11, #-10, mul vl\]
+[^:]+: a060c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0\]
+[^:]+: a060c01d        stnt1w  {z28\.s-z31\.s}, pn8, \[x0\]
+[^:]+: a060dc01        stnt1w  {z0\.s-z3\.s}, pn15, \[x0\]
+[^:]+: a060c3c1        stnt1w  {z0\.s-z3\.s}, pn8, \[x30\]
+[^:]+: a060c3e1        stnt1w  {z0\.s-z3\.s}, pn8, \[sp\]
+[^:]+: a068c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, #-32, mul vl\]
+[^:]+: a067c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, #28, mul vl\]
+[^:]+: a065ce29        stnt1w  {z8\.s-z11\.s}, pn11, \[x17, #20, mul vl\]
+[^:]+: a0214001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0214001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0214001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021401f        stnt1w  {z30\.s-z31\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a0215c01        stnt1w  {z0\.s-z1\.s}, pn15, \[x0, x1, lsl #2\]
+[^:]+: a02143c1        stnt1w  {z0\.s-z1\.s}, pn8, \[x30, x1, lsl #2\]
+[^:]+: a02143e1        stnt1w  {z0\.s-z1\.s}, pn8, \[sp, x1, lsl #2\]
+[^:]+: a03e4001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, x30, lsl #2\]
+[^:]+: a03f4001        stnt1w  {z0\.s-z1\.s}, pn8, \[x0, xzr, lsl #2\]
+[^:]+: a023474f        stnt1w  {z14\.s-z15\.s}, pn9, \[x26, x3, lsl #2\]
+[^:]+: a021c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021c01d        stnt1w  {z28\.s-z31\.s}, pn8, \[x0, x1, lsl #2\]
+[^:]+: a021dc01        stnt1w  {z0\.s-z3\.s}, pn15, \[x0, x1, lsl #2\]
+[^:]+: a021c3c1        stnt1w  {z0\.s-z3\.s}, pn8, \[x30, x1, lsl #2\]
+[^:]+: a021c3e1        stnt1w  {z0\.s-z3\.s}, pn8, \[sp, x1, lsl #2\]
+[^:]+: a03ec001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, x30, lsl #2\]
+[^:]+: a03fc001        stnt1w  {z0\.s-z3\.s}, pn8, \[x0, xzr, lsl #2\]
+[^:]+: a021cf69        stnt1w  {z8\.s-z11\.s}, pn11, \[x27, x1, lsl #2\]
diff --git a/gas/testsuite/gas/aarch64/sme2-5-sve2p1.s b/gas/testsuite/gas/aarch64/sme2-5-sve2p1.s
new file mode 100644 (file)
index 0000000..0dda4b0
--- /dev/null
@@ -0,0 +1,175 @@
+       ld1w    { z0.s - z1.s }, pn8/z, [x0]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, #0, mul vl]
+       LD1W    { Z0.S - Z1.S }, PN8/Z, [X0]
+       ld1w    { z30.s - z31.s }, pn8/z, [x0]
+       ld1w    { z0.s - z1.s }, pn15/z, [x0]
+       ld1w    { z0.s - z1.s }, pn8/z, [x30]
+       ld1w    { z0.s - z1.s }, pn8/z, [sp]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, #-16, mul vl]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, #14, mul vl]
+       ld1w    { z12.s - z13.s }, pn13/z, [x11, #-10, mul vl]
+
+       ld1w    { z0.s - z3.s }, pn8/z, [x0]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, #0, mul vl]
+       LD1W    { Z0.S - Z3.S }, PN8/Z, [X0]
+       ld1w    { z28.s - z31.s }, pn8/z, [x0]
+       ld1w    { z0.s - z3.s }, pn15/z, [x0]
+       ld1w    { z0.s - z3.s }, pn8/z, [x30]
+       ld1w    { z0.s - z3.s }, pn8/z, [sp]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, #-32, mul vl]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, #28, mul vl]
+       ld1w    { z8.s - z11.s }, pn11/z, [x17, #20, mul vl]
+
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, x1, lsl 2]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, x1, lsl #2]
+       LD1W    { Z0.S - Z1.S }, PN8/Z, [X0, X1, LSL #2]
+       ld1w    { z30.s - z31.s }, pn8/z, [x0, x1, lsl #2]
+       ld1w    { z0.s - z1.s }, pn15/z, [x0, x1, lsl #2]
+       ld1w    { z0.s - z1.s }, pn8/z, [x30, x1, lsl #2]
+       ld1w    { z0.s - z1.s }, pn8/z, [sp, x1, lsl #2]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, x30, lsl #2]
+       ld1w    { z0.s - z1.s }, pn8/z, [x0, xzr, lsl #2]
+       ld1w    { z14.s - z15.s }, pn9/z, [x26, x3, lsl #2]
+
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, x1, lsl 2]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, x1, lsl #2]
+       LD1W    { Z0.S - Z3.S }, PN8/Z, [X0, X1, LSL #2]
+       ld1w    { z28.s - z31.s }, pn8/z, [x0, x1, lsl #2]
+       ld1w    { z0.s - z3.s }, pn15/z, [x0, x1, lsl #2]
+       ld1w    { z0.s - z3.s }, pn8/z, [x30, x1, lsl #2]
+       ld1w    { z0.s - z3.s }, pn8/z, [sp, x1, lsl #2]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, x30, lsl #2]
+       ld1w    { z0.s - z3.s }, pn8/z, [x0, xzr, lsl #2]
+       ld1w    { z8.s - z11.s }, pn11/z, [x27, x1, lsl #2]
+
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, #0, mul vl]
+       LDNT1W  { Z0.S - Z1.S }, PN8/Z, [X0]
+       ldnt1w  { z30.s - z31.s }, pn8/z, [x0]
+       ldnt1w  { z0.s - z1.s }, pn15/z, [x0]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x30]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [sp]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, #-16, mul vl]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, #14, mul vl]
+       ldnt1w  { z12.s - z13.s }, pn13/z, [x11, #-10, mul vl]
+
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, #0, mul vl]
+       LDNT1W  { Z0.S - Z3.S }, PN8/Z, [X0]
+       ldnt1w  { z28.s - z31.s }, pn8/z, [x0]
+       ldnt1w  { z0.s - z3.s }, pn15/z, [x0]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x30]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [sp]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, #-32, mul vl]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, #28, mul vl]
+       ldnt1w  { z8.s - z11.s }, pn11/z, [x17, #20, mul vl]
+
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, x1, lsl 2]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, x1, lsl #2]
+       LDNT1W  { Z0.S - Z1.S }, PN8/Z, [X0, X1, LSL #2]
+       ldnt1w  { z30.s - z31.s }, pn8/z, [x0, x1, lsl #2]
+       ldnt1w  { z0.s - z1.s }, pn15/z, [x0, x1, lsl #2]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x30, x1, lsl #2]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [sp, x1, lsl #2]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, x30, lsl #2]
+       ldnt1w  { z0.s - z1.s }, pn8/z, [x0, xzr, lsl #2]
+       ldnt1w  { z14.s - z15.s }, pn9/z, [x26, x3, lsl #2]
+
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, x1, lsl 2]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, x1, lsl #2]
+       LDNT1W  { Z0.S - Z3.S }, PN8/Z, [X0, X1, LSL #2]
+       ldnt1w  { z28.s - z31.s }, pn8/z, [x0, x1, lsl #2]
+       ldnt1w  { z0.s - z3.s }, pn15/z, [x0, x1, lsl #2]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x30, x1, lsl #2]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [sp, x1, lsl #2]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, x30, lsl #2]
+       ldnt1w  { z0.s - z3.s }, pn8/z, [x0, xzr, lsl #2]
+       ldnt1w  { z8.s - z11.s }, pn11/z, [x27, x1, lsl #2]
+
+       st1w    { z0.s - z1.s }, pn8, [x0]
+       st1w    { z0.s - z1.s }, pn8, [x0, #0, mul vl]
+       ST1W    { Z0.S - Z1.S }, PN8, [X0]
+       st1w    { z30.s - z31.s }, pn8, [x0]
+       st1w    { z0.s - z1.s }, pn15, [x0]
+       st1w    { z0.s - z1.s }, pn8, [x30]
+       st1w    { z0.s - z1.s }, pn8, [sp]
+       st1w    { z0.s - z1.s }, pn8, [x0, #-16, mul vl]
+       st1w    { z0.s - z1.s }, pn8, [x0, #14, mul vl]
+       st1w    { z12.s - z13.s }, pn13, [x11, #-10, mul vl]
+
+       st1w    { z0.s - z3.s }, pn8, [x0]
+       st1w    { z0.s - z3.s }, pn8, [x0, #0, mul vl]
+       ST1W    { Z0.S - Z3.S }, PN8, [X0]
+       st1w    { z28.s - z31.s }, pn8, [x0]
+       st1w    { z0.s - z3.s }, pn15, [x0]
+       st1w    { z0.s - z3.s }, pn8, [x30]
+       st1w    { z0.s - z3.s }, pn8, [sp]
+       st1w    { z0.s - z3.s }, pn8, [x0, #-32, mul vl]
+       st1w    { z0.s - z3.s }, pn8, [x0, #28, mul vl]
+       st1w    { z8.s - z11.s }, pn11, [x17, #20, mul vl]
+
+       st1w    { z0.s - z1.s }, pn8, [x0, x1, lsl 2]
+       st1w    { z0.s - z1.s }, pn8, [x0, x1, lsl #2]
+       ST1W    { Z0.S - Z1.S }, PN8, [X0, X1, LSL #2]
+       st1w    { z30.s - z31.s }, pn8, [x0, x1, lsl #2]
+       st1w    { z0.s - z1.s }, pn15, [x0, x1, lsl #2]
+       st1w    { z0.s - z1.s }, pn8, [x30, x1, lsl #2]
+       st1w    { z0.s - z1.s }, pn8, [sp, x1, lsl #2]
+       st1w    { z0.s - z1.s }, pn8, [x0, x30, lsl #2]
+       st1w    { z0.s - z1.s }, pn8, [x0, xzr, lsl #2]
+       st1w    { z14.s - z15.s }, pn9, [x26, x3, lsl #2]
+
+       st1w    { z0.s - z3.s }, pn8, [x0, x1, lsl 2]
+       st1w    { z0.s - z3.s }, pn8, [x0, x1, lsl #2]
+       ST1W    { Z0.S - Z3.S }, PN8, [X0, X1, LSL #2]
+       st1w    { z28.s - z31.s }, pn8, [x0, x1, lsl #2]
+       st1w    { z0.s - z3.s }, pn15, [x0, x1, lsl #2]
+       st1w    { z0.s - z3.s }, pn8, [x30, x1, lsl #2]
+       st1w    { z0.s - z3.s }, pn8, [sp, x1, lsl #2]
+       st1w    { z0.s - z3.s }, pn8, [x0, x30, lsl #2]
+       st1w    { z0.s - z3.s }, pn8, [x0, xzr, lsl #2]
+       st1w    { z8.s - z11.s }, pn11, [x27, x1, lsl #2]
+
+       stnt1w  { z0.s - z1.s }, pn8, [x0]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, #0, mul vl]
+       STNT1W  { Z0.S - Z1.S }, PN8, [X0]
+       stnt1w  { z30.s - z31.s }, pn8, [x0]
+       stnt1w  { z0.s - z1.s }, pn15, [x0]
+       stnt1w  { z0.s - z1.s }, pn8, [x30]
+       stnt1w  { z0.s - z1.s }, pn8, [sp]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, #-16, mul vl]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, #14, mul vl]
+       stnt1w  { z12.s - z13.s }, pn13, [x11, #-10, mul vl]
+
+       stnt1w  { z0.s - z3.s }, pn8, [x0]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, #0, mul vl]
+       STNT1W  { Z0.S - Z3.S }, PN8, [X0]
+       stnt1w  { z28.s - z31.s }, pn8, [x0]
+       stnt1w  { z0.s - z3.s }, pn15, [x0]
+       stnt1w  { z0.s - z3.s }, pn8, [x30]
+       stnt1w  { z0.s - z3.s }, pn8, [sp]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, #-32, mul vl]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, #28, mul vl]
+       stnt1w  { z8.s - z11.s }, pn11, [x17, #20, mul vl]
+
+       stnt1w  { z0.s - z1.s }, pn8, [x0, x1, lsl 2]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, x1, lsl #2]
+       STNT1W  { Z0.S - Z1.S }, PN8, [X0, X1, LSL #2]
+       stnt1w  { z30.s - z31.s }, pn8, [x0, x1, lsl #2]
+       stnt1w  { z0.s - z1.s }, pn15, [x0, x1, lsl #2]
+       stnt1w  { z0.s - z1.s }, pn8, [x30, x1, lsl #2]
+       stnt1w  { z0.s - z1.s }, pn8, [sp, x1, lsl #2]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, x30, lsl #2]
+       stnt1w  { z0.s - z1.s }, pn8, [x0, xzr, lsl #2]
+       stnt1w  { z14.s - z15.s }, pn9, [x26, x3, lsl #2]
+
+       stnt1w  { z0.s - z3.s }, pn8, [x0, x1, lsl 2]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, x1, lsl #2]
+       STNT1W  { Z0.S - Z3.S }, PN8, [X0, X1, LSL #2]
+       stnt1w  { z28.s - z31.s }, pn8, [x0, x1, lsl #2]
+       stnt1w  { z0.s - z3.s }, pn15, [x0, x1, lsl #2]
+       stnt1w  { z0.s - z3.s }, pn8, [x30, x1, lsl #2]
+       stnt1w  { z0.s - z3.s }, pn8, [sp, x1, lsl #2]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, x30, lsl #2]
+       stnt1w  { z0.s - z3.s }, pn8, [x0, xzr, lsl #2]
+       stnt1w  { z8.s - z11.s }, pn11, [x27, x1, lsl #2]
diff --git a/gas/testsuite/gas/aarch64/sme2-6-sve2p1.d b/gas/testsuite/gas/aarch64/sme2-6-sve2p1.d
new file mode 100644 (file)
index 0000000..a71d784
--- /dev/null
@@ -0,0 +1,109 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: 25208200        cntp    x0, pn0\.b, vlx2
+[^:]+: 25208200        cntp    x0, pn0\.b, vlx2
+[^:]+: 2520821e        cntp    x30, pn0\.b, vlx2
+[^:]+: 2520821f        cntp    xzr, pn0\.b, vlx2
+[^:]+: 252083e0        cntp    x0, pn15\.b, vlx2
+[^:]+: 25208600        cntp    x0, pn0\.b, vlx4
+[^:]+: 252087ab        cntp    x11, pn13\.b, vlx4
+[^:]+: 25608200        cntp    x0, pn0\.h, vlx2
+[^:]+: 25608200        cntp    x0, pn0\.h, vlx2
+[^:]+: 2560821e        cntp    x30, pn0\.h, vlx2
+[^:]+: 2560821f        cntp    xzr, pn0\.h, vlx2
+[^:]+: 256083e0        cntp    x0, pn15\.h, vlx2
+[^:]+: 25608600        cntp    x0, pn0\.h, vlx4
+[^:]+: 25608334        cntp    x20, pn9\.h, vlx2
+[^:]+: 25a08200        cntp    x0, pn0\.s, vlx2
+[^:]+: 25a08200        cntp    x0, pn0\.s, vlx2
+[^:]+: 25a0821e        cntp    x30, pn0\.s, vlx2
+[^:]+: 25a0821f        cntp    xzr, pn0\.s, vlx2
+[^:]+: 25a083e0        cntp    x0, pn15\.s, vlx2
+[^:]+: 25a08600        cntp    x0, pn0\.s, vlx4
+[^:]+: 25a0870f        cntp    x15, pn8\.s, vlx4
+[^:]+: 25e08200        cntp    x0, pn0\.d, vlx2
+[^:]+: 25e08200        cntp    x0, pn0\.d, vlx2
+[^:]+: 25e0821e        cntp    x30, pn0\.d, vlx2
+[^:]+: 25e0821f        cntp    xzr, pn0\.d, vlx2
+[^:]+: 25e083e0        cntp    x0, pn15\.d, vlx2
+[^:]+: 25e08600        cntp    x0, pn0\.d, vlx4
+[^:]+: 25e082a4        cntp    x4, pn5\.d, vlx2
+[^:]+: 25207010        pext    p0\.b, pn8\[0\]
+[^:]+: 25207010        pext    p0\.b, pn8\[0\]
+[^:]+: 2520701f        pext    p15\.b, pn8\[0\]
+[^:]+: 252070f0        pext    p0\.b, pn15\[0\]
+[^:]+: 25207310        pext    p0\.b, pn8\[3\]
+[^:]+: 25207274        pext    p4\.b, pn11\[2\]
+[^:]+: 25607010        pext    p0\.h, pn8\[0\]
+[^:]+: 25607010        pext    p0\.h, pn8\[0\]
+[^:]+: 2560701f        pext    p15\.h, pn8\[0\]
+[^:]+: 256070f0        pext    p0\.h, pn15\[0\]
+[^:]+: 25607310        pext    p0\.h, pn8\[3\]
+[^:]+: 256071d5        pext    p5\.h, pn14\[1\]
+[^:]+: 25a07010        pext    p0\.s, pn8\[0\]
+[^:]+: 25a07010        pext    p0\.s, pn8\[0\]
+[^:]+: 25a0701f        pext    p15\.s, pn8\[0\]
+[^:]+: 25a070f0        pext    p0\.s, pn15\[0\]
+[^:]+: 25a07310        pext    p0\.s, pn8\[3\]
+[^:]+: 25a07256        pext    p6\.s, pn10\[2\]
+[^:]+: 25e07010        pext    p0\.d, pn8\[0\]
+[^:]+: 25e07010        pext    p0\.d, pn8\[0\]
+[^:]+: 25e0701f        pext    p15\.d, pn8\[0\]
+[^:]+: 25e070f0        pext    p0\.d, pn15\[0\]
+[^:]+: 25e07310        pext    p0\.d, pn8\[3\]
+[^:]+: 25e07137        pext    p7\.d, pn9\[1\]
+[^:]+: 25207410        pext    {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 25207410        pext    {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 25207410        pext    {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 2520741e        pext    {p14\.b-p15\.b}, pn8\[0\]
+[^:]+: 2520741f        pext    {p15\.b-p0\.b}, pn8\[0\]
+[^:]+: 2520741f        pext    {p15\.b-p0\.b}, pn8\[0\]
+[^:]+: 252074f0        pext    {p0\.b-p1\.b}, pn15\[0\]
+[^:]+: 25207510        pext    {p0\.b-p1\.b}, pn8\[1\]
+[^:]+: 25207497        pext    {p7\.b-p8\.b}, pn12\[0\]
+[^:]+: 25607410        pext    {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 25607410        pext    {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 25607410        pext    {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 2560741e        pext    {p14\.h-p15\.h}, pn8\[0\]
+[^:]+: 2560741f        pext    {p15\.h-p0\.h}, pn8\[0\]
+[^:]+: 2560741f        pext    {p15\.h-p0\.h}, pn8\[0\]
+[^:]+: 256074f0        pext    {p0\.h-p1\.h}, pn15\[0\]
+[^:]+: 25607510        pext    {p0\.h-p1\.h}, pn8\[1\]
+[^:]+: 256074d2        pext    {p2\.h-p3\.h}, pn14\[0\]
+[^:]+: 25a07410        pext    {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a07410        pext    {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a07410        pext    {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a0741e        pext    {p14\.s-p15\.s}, pn8\[0\]
+[^:]+: 25a0741f        pext    {p15\.s-p0\.s}, pn8\[0\]
+[^:]+: 25a0741f        pext    {p15\.s-p0\.s}, pn8\[0\]
+[^:]+: 25a074f0        pext    {p0\.s-p1\.s}, pn15\[0\]
+[^:]+: 25a07510        pext    {p0\.s-p1\.s}, pn8\[1\]
+[^:]+: 25a074b5        pext    {p5\.s-p6\.s}, pn13\[0\]
+[^:]+: 25e07410        pext    {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e07410        pext    {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e07410        pext    {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e0741e        pext    {p14\.d-p15\.d}, pn8\[0\]
+[^:]+: 25e0741f        pext    {p15\.d-p0\.d}, pn8\[0\]
+[^:]+: 25e0741f        pext    {p15\.d-p0\.d}, pn8\[0\]
+[^:]+: 25e074f0        pext    {p0\.d-p1\.d}, pn15\[0\]
+[^:]+: 25e07510        pext    {p0\.d-p1\.d}, pn8\[1\]
+[^:]+: 25e0743c        pext    {p12\.d-p13\.d}, pn9\[0\]
+[^:]+: 25207810        ptrue   pn8\.b
+[^:]+: 25207813        ptrue   pn11\.b
+[^:]+: 25207817        ptrue   pn15\.b
+[^:]+: 25607810        ptrue   pn8\.h
+[^:]+: 25607811        ptrue   pn9\.h
+[^:]+: 25607817        ptrue   pn15\.h
+[^:]+: 25a07810        ptrue   pn8\.s
+[^:]+: 25a07816        ptrue   pn14\.s
+[^:]+: 25a07817        ptrue   pn15\.s
+[^:]+: 25e07810        ptrue   pn8\.d
+[^:]+: 25e07814        ptrue   pn12\.d
+[^:]+: 25e07817        ptrue   pn15\.d
diff --git a/gas/testsuite/gas/aarch64/sme2-6-sve2p1.s b/gas/testsuite/gas/aarch64/sme2-6-sve2p1.s
new file mode 100644 (file)
index 0000000..5fad125
--- /dev/null
@@ -0,0 +1,112 @@
+       cntp    x0, pn0.b, vlx2
+       CNTP    X0, PN0.B, VLx2
+       cntp    x30, pn0.b, vlx2
+       cntp    xzr, pn0.b, vlx2
+       cntp    x0, pn15.b, vlx2
+       cntp    x0, pn0.b, vlx4
+       CNTP    X11, PN13.b, VLx4
+
+       cntp    x0, pn0.h, vlx2
+       CNTP    X0, PN0.H, VLx2
+       cntp    x30, pn0.h, vlx2
+       cntp    xzr, pn0.h, vlx2
+       cntp    x0, pn15.h, vlx2
+       cntp    x0, pn0.h, vlx4
+       CNTP    X20, PN9.h, VLx2
+
+       cntp    x0, pn0.s, vlx2
+       CNTP    X0, PN0.s, VLx2
+       cntp    x30, pn0.s, vlx2
+       cntp    xzr, pn0.s, vlx2
+       cntp    x0, pn15.s, vlx2
+       cntp    x0, pn0.s, vlx4
+       CNTP    X15, PN8.s, VLx4
+
+       cntp    x0, pn0.d, vlx2
+       CNTP    X0, PN0.d, VLx2
+       cntp    x30, pn0.d, vlx2
+       cntp    xzr, pn0.d, vlx2
+       cntp    x0, pn15.d, vlx2
+       cntp    x0, pn0.d, vlx4
+       CNTP    X4, PN5.d, VLx2
+
+       pext    p0.b, pn8[0]
+       PEXT    P0.B, PN8[0]
+       pext    p15.b, pn8[0]
+       pext    p0.b, pn15[0]
+       pext    p0.b, pn8[3]
+       pext    p4.b, pn11[2]
+
+       pext    p0.h, pn8[0]
+       PEXT    P0.H, PN8[0]
+       pext    p15.h, pn8[0]
+       pext    p0.h, pn15[0]
+       pext    p0.h, pn8[3]
+       pext    p5.h, pn14[1]
+
+       pext    p0.s, pn8[0]
+       PEXT    P0.S, PN8[0]
+       pext    p15.s, pn8[0]
+       pext    p0.s, pn15[0]
+       pext    p0.s, pn8[3]
+       pext    p6.s, pn10[2]
+
+       pext    p0.d, pn8[0]
+       PEXT    P0.D, PN8[0]
+       pext    p15.d, pn8[0]
+       pext    p0.d, pn15[0]
+       pext    p0.d, pn8[3]
+       pext    p7.d, pn9[1]
+
+       pext    { p0.b, p1.b }, pn8[0]
+       pext    { p0.b - p1.b }, pn8[0]
+       PEXT    { P0.B - P1.B }, PN8[0]
+       pext    { p14.b - p15.b }, pn8[0]
+       pext    { p15.b, p0.b }, pn8[0]
+       pext    { p15.b - p0.b }, pn8[0]
+       pext    { p0.b - p1.b }, pn15[0]
+       pext    { p0.b - p1.b }, pn8[1]
+       pext    { p7.b - p8.b }, pn12[0]
+
+       pext    { p0.h, p1.h }, pn8[0]
+       pext    { p0.h - p1.h }, pn8[0]
+       PEXT    { P0.H - P1.H }, PN8[0]
+       pext    { p14.h - p15.h }, pn8[0]
+       pext    { p15.h, p0.h }, pn8[0]
+       pext    { p15.h - p0.h }, pn8[0]
+       pext    { p0.h - p1.h }, pn15[0]
+       pext    { p0.h - p1.h }, pn8[1]
+       pext    { p2.h - p3.h }, pn14[0]
+
+       pext    { p0.s, p1.s }, pn8[0]
+       pext    { p0.s - p1.s }, pn8[0]
+       PEXT    { P0.S - P1.S }, PN8[0]
+       pext    { p14.s - p15.s }, pn8[0]
+       pext    { p15.s, p0.s }, pn8[0]
+       pext    { p15.s - p0.s }, pn8[0]
+       pext    { p0.s - p1.s }, pn15[0]
+       pext    { p0.s - p1.s }, pn8[1]
+       pext    { p5.s - p6.s }, pn13[0]
+
+       pext    { p0.d, p1.d }, pn8[0]
+       pext    { p0.d - p1.d }, pn8[0]
+       PEXT    { P0.D - P1.D }, PN8[0]
+       pext    { p14.d - p15.d }, pn8[0]
+       pext    { p15.d, p0.d }, pn8[0]
+       pext    { p15.d - p0.d }, pn8[0]
+       pext    { p0.d - p1.d }, pn15[0]
+       pext    { p0.d - p1.d }, pn8[1]
+       pext    { p12.d - p13.d }, pn9[0]
+
+       ptrue   pn8.b
+       ptrue   pn11.b
+       ptrue   pn15.b
+       ptrue   pn8.h
+       ptrue   pn9.h
+       ptrue   pn15.h
+       ptrue   pn8.s
+       ptrue   pn14.s
+       ptrue   pn15.s
+       ptrue   pn8.d
+       ptrue   pn12.d
+       ptrue   pn15.d
index 8c6fdc5d508d15b85917fba20f247ce70e508b85..3fcad5d84089bd2684558bfd39c3ffd8dc6790c1 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 9e60d1fd9b04cdc8ffce1838a3ec569e4f6add8e..6e9df901975d514707ecaa802f9890a0c7cdd478 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 2095aba0e659bcc9b7db8d7f81942e8196202739..1305d41ba33f2b86b621629e784ff137457521be 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index b7bf3afbcad55921c39fd7412786a7c135d9d756..e3a5d16c103939dad1fb38e4445cde7f9f1ba9b6 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index a1e5dc19a1cbce09888da4c29282215f0832954a..a73144ac21690b625a0476d2cad56b1b2dec0076 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 0d6f7c1eb3c7df9eede04b30983dfa5477614737..7aa5c3e9fe5719f52410c60e66ecc345da5afe64 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 2741ad57b04dd579d28a864fa5c8c477c6a09dd3..2c155dee41613368dec1523de5c22c7ae131056b 100644 (file)
@@ -1,4 +1,5 @@
 #as: -march=armv8-a+sme2
+#as: -march=armv8-a+sve2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index f4c36b6551207be994834e4b8b55e976571b33ad..fa4ed8cf5326b72984f4817dcc8ff7abf2d8be49 100644 (file)
@@ -1,5 +1,7 @@
 #name: Test of SVE2.1 instructions
 #as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#as: -march=armv8-a+sme2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 390c63d8acf5352ae31c1e60dfa4228235905b13..94dbecb0927bae53e493ed3774e47e91373da8ca 100644 (file)
@@ -1,5 +1,7 @@
 #name: Test of SVE2.1 ld[1-4]q/st[1-4]q instructions.
 #as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#as: -march=armv8-a+sme2p1
 #objdump: -dr
 
 [^:]+:     file format .*
@@ -8,15 +10,6 @@
 [^:]+:
 
 [^:]+:
-.*:    c400a000        ld1q    {z0.q}, p0/z, \[z0.d, x0\]
-.*:    c400a01f        ld1q    {z31.q}, p0/z, \[z0.d, x0\]
-.*:    c400bc00        ld1q    {z0.q}, p7/z, \[z0.d, x0\]
-.*:    c400a3e0        ld1q    {z0.q}, p0/z, \[z31.d, x0\]
-.*:    c41ea000        ld1q    {z0.q}, p0/z, \[z0.d, x30\]
-.*:    c41fa000        ld1q    {z0.q}, p0/z, \[z0.d\]
-.*:    c41fa000        ld1q    {z0.q}, p0/z, \[z0.d\]
-.*:    c41ebfff        ld1q    {z31.q}, p7/z, \[z31.d, x30\]
-.*:    c404acef        ld1q    {z15.q}, p3/z, \[z7.d, x4\]
 .*:    a490e000        ld2q    {z0.q-z1.q}, p0/z, \[x0\]
 .*:    a490e01f        ld2q    {z31.q-z0.q}, p0/z, \[x0\]
 .*:    a490fc00        ld2q    {z0.q-z1.q}, p7/z, \[x0\]
 .*:    a5a4886a        ld4q    {z10.q-z13.q}, p2/z, \[x3, x4, lsl #4\]
 .*:    a5a4886a        ld4q    {z10.q-z13.q}, p2/z, \[x3, x4, lsl #4\]
 .*:    a5a48bea        ld4q    {z10.q-z13.q}, p2/z, \[sp, x4, lsl #4\]
-.*:    e4202000        st1q    {z0.q}, p0, \[z0.d, x0\]
-.*:    e420201f        st1q    {z31.q}, p0, \[z0.d, x0\]
-.*:    e4203c00        st1q    {z0.q}, p7, \[z0.d, x0\]
-.*:    e42023e0        st1q    {z0.q}, p0, \[z31.d, x0\]
-.*:    e43e2000        st1q    {z0.q}, p0, \[z0.d, x30\]
-.*:    e43f2000        st1q    {z0.q}, p0, \[z0.d\]
-.*:    e43f2000        st1q    {z0.q}, p0, \[z0.d\]
-.*:    e43e3fff        st1q    {z31.q}, p7, \[z31.d, x30\]
-.*:    e4242cef        st1q    {z15.q}, p3, \[z7.d, x4\]
 .*:    e4400000        st2q    {z0.q-z1.q}, p0, \[x0\]
 .*:    e440001f        st2q    {z31.q-z0.q}, p0, \[x0\]
 .*:    e4401c00        st2q    {z0.q-z1.q}, p7, \[x0\]
index 70d5044bcaa1eb56bc58b118f26745c1213ad88b..4a8f805d5dfe892dd00512927d160e9dfc967c3e 100644 (file)
@@ -1,13 +1,3 @@
-ld1q { Z0.Q }, P0/Z, [Z0.D, x0]
-ld1q { Z31.Q }, P0/Z, [Z0.D, x0]
-ld1q { Z0.Q }, P7/Z, [Z0.D, x0]
-ld1q { Z0.Q }, P0/Z, [Z31.D, x0]
-ld1q { Z0.Q }, P0/Z, [Z0.D, x30]
-ld1q { Z0.Q }, P0/Z, [Z0.D, xzr]
-ld1q { Z0.Q }, P0/Z, [Z0.D]
-ld1q { Z31.Q }, P7/Z, [Z31.D, x30]
-ld1q { Z15.Q }, P3/Z, [Z7.D, x4]
-
 ld2q {Z0.Q, Z1.Q}, p0/Z, [x0,  #0, MUL VL]
 ld2q {Z31.Q, Z0.Q}, p0/Z, [x0,  #0, MUL VL]
 ld2q {Z0.Q, Z1.Q}, p7/Z, [x0,  #0, MUL VL]
@@ -76,16 +66,6 @@ ld4q {Z10.Q - Z11.Q - Z12.Q - Z13.Q}, p2/Z, [x3,  x4, LSL  #4]
 ld4q {Z10.Q - Z13.Q}, p2/Z, [x3,  x4, LSL  #4]
 ld4q {Z10.Q, Z11.Q, Z12.Q, Z13.Q}, p2/Z, [sp,  x4, LSL  #4]
 
-st1q { Z0.Q }, P0, [Z0.D, x0]
-st1q { Z31.Q }, P0, [Z0.D, x0]
-st1q { Z0.Q }, P7, [Z0.D, x0]
-st1q { Z0.Q }, P0, [Z31.D, x0]
-st1q { Z0.Q }, P0, [Z0.D, x30]
-st1q { Z0.Q }, P0, [Z0.D, xzr]
-st1q { Z0.Q }, P0, [Z0.D]
-st1q { Z31.Q }, P7, [Z31.D, x30]
-st1q { Z15.Q }, P3, [Z7.D, x4]
-
 st2q {Z0.Q, Z1.Q}, p0, [x0,  #0, MUL VL]
 st2q {Z31.Q, Z0.Q}, p0, [x0,  #0, MUL VL]
 st2q {Z0.Q, Z1.Q}, p7, [x0,  #0, MUL VL]
index f581e345f58bd91c1eb4c61e15f3cfde2c209002..1c23eb0e71727fcd288415bc3bf63d46b0406ff7 100644 (file)
@@ -1,5 +1,8 @@
 #name: Test of SVE2.1 orqv instruction.
 #as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#as: -march=armv8-a+sme2p1
+#as: -march=armv9.4-a
 #objdump: -dr
 
 [^:]+:     file format .*
index 42d1ee41e9952fdc057fba71e84ed41e8bc6327c..388c33ef71158bfef256fd76d0602271e2f77b87 100644 (file)
@@ -1,5 +1,7 @@
 #name: Test of SVE2.1 tblq, tbxq, uzpq[1-2] and zipq[1-2] instruction.
 #as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#as: -march=armv8-a+sme2p1
 #objdump: -dr
 
 [^:]+:     file format .*
index 6bd1a22aaf49f337239fbcdd12b6d1104521bb39..d3358b4425a7287efea699966618de2987f24a68 100644 (file)
@@ -1,5 +1,7 @@
 #name: Test of SVE2.1 pmov instruction.
 #as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#as: -march=armv8-a+sme2p1
 #objdump: -dr
 
 [^:]+:     file format .*
diff --git a/gas/testsuite/gas/aarch64/sve2p1-8.d b/gas/testsuite/gas/aarch64/sve2p1-8.d
new file mode 100644 (file)
index 0000000..bb2ca46
--- /dev/null
@@ -0,0 +1,29 @@
+#name: Test of SVE2.1 ld1q/st1q instructions.
+#as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:    c400a000        ld1q    {z0.q}, p0/z, \[z0.d, x0\]
+.*:    c400a01f        ld1q    {z31.q}, p0/z, \[z0.d, x0\]
+.*:    c400bc00        ld1q    {z0.q}, p7/z, \[z0.d, x0\]
+.*:    c400a3e0        ld1q    {z0.q}, p0/z, \[z31.d, x0\]
+.*:    c41ea000        ld1q    {z0.q}, p0/z, \[z0.d, x30\]
+.*:    c41fa000        ld1q    {z0.q}, p0/z, \[z0.d\]
+.*:    c41fa000        ld1q    {z0.q}, p0/z, \[z0.d\]
+.*:    c41ebfff        ld1q    {z31.q}, p7/z, \[z31.d, x30\]
+.*:    c404acef        ld1q    {z15.q}, p3/z, \[z7.d, x4\]
+.*:    e4202000        st1q    {z0.q}, p0, \[z0.d, x0\]
+.*:    e420201f        st1q    {z31.q}, p0, \[z0.d, x0\]
+.*:    e4203c00        st1q    {z0.q}, p7, \[z0.d, x0\]
+.*:    e42023e0        st1q    {z0.q}, p0, \[z31.d, x0\]
+.*:    e43e2000        st1q    {z0.q}, p0, \[z0.d, x30\]
+.*:    e43f2000        st1q    {z0.q}, p0, \[z0.d\]
+.*:    e43f2000        st1q    {z0.q}, p0, \[z0.d\]
+.*:    e43e3fff        st1q    {z31.q}, p7, \[z31.d, x30\]
+.*:    e4242cef        st1q    {z15.q}, p3, \[z7.d, x4\]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-8.s b/gas/testsuite/gas/aarch64/sve2p1-8.s
new file mode 100644 (file)
index 0000000..0606238
--- /dev/null
@@ -0,0 +1,19 @@
+ld1q { Z0.Q }, P0/Z, [Z0.D, x0]
+ld1q { Z31.Q }, P0/Z, [Z0.D, x0]
+ld1q { Z0.Q }, P7/Z, [Z0.D, x0]
+ld1q { Z0.Q }, P0/Z, [Z31.D, x0]
+ld1q { Z0.Q }, P0/Z, [Z0.D, x30]
+ld1q { Z0.Q }, P0/Z, [Z0.D, xzr]
+ld1q { Z0.Q }, P0/Z, [Z0.D]
+ld1q { Z31.Q }, P7/Z, [Z31.D, x30]
+ld1q { Z15.Q }, P3/Z, [Z7.D, x4]
+
+st1q { Z0.Q }, P0, [Z0.D, x0]
+st1q { Z31.Q }, P0, [Z0.D, x0]
+st1q { Z0.Q }, P7, [Z0.D, x0]
+st1q { Z0.Q }, P0, [Z31.D, x0]
+st1q { Z0.Q }, P0, [Z0.D, x30]
+st1q { Z0.Q }, P0, [Z0.D, xzr]
+st1q { Z0.Q }, P0, [Z0.D]
+st1q { Z31.Q }, P7, [Z31.D, x30]
+st1q { Z15.Q }, P3, [Z7.D, x4]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-9-invalid.d
new file mode 100644 (file)
index 0000000..ac49bc8
--- /dev/null
@@ -0,0 +1,2 @@
+#as: -march=armv9.4-a
+#error_output: sve2p1-9-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-9-invalid.l
new file mode 100644 (file)
index 0000000..d2739e7
--- /dev/null
@@ -0,0 +1,73 @@
+.*: Assembler messages:
+.*: Error: p0-p7 expected at operand 2 -- `ld1d { ?z0.q ?},p8/z,\[x0\]'
+.*: Error: invalid base register at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x31\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,#8,mul vl\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,#-9,mul vl\]'
+.*: Error: operand mismatch -- `ld1d { ?z0.q ?},p0,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:      ld1d { ?z0.q ?}, p0/z, \[x0\]
+.*: Error: p0-p7 expected at operand 2 -- `ld1d { ?z0.q ?},p8/z,\[x0,x0,LSL#3\]'
+.*: Error: invalid base register at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x31,x0,LSL#3\]'
+.*: Error: invalid base register at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[xzr,x0,LSL#3\]'
+.*: Error: only 'MUL VL' is permitted at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,x31,LSL#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,xzr,LSL#3\]'
+.*: Error: invalid offset register at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,sp,LSL#3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,x0\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d { ?z0.q ?},p0/z,\[x0,x0,LSL#2\]'
+.*: Error: operand mismatch -- `ld1d { ?z0.q ?},p0,\[x0,x0,LSL#3\]'
+.*: Info:    did you mean this\?
+.*: Info:      ld1d { ?z0.q ?}, p0/z, \[x0, x0, lsl #3\]
+.*: Error: p0-p7 expected at operand 2 -- `ld1w { ?z0.q ?},p8/z,\[x0\]'
+.*: Error: invalid base register at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x31\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,#8,mul vl\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,#-9,mul vl\]'
+.*: Error: operand mismatch -- `ld1w { ?z0.q ?},p0,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:      ld1w { ?z0.q ?}, p0/z, \[x0\]
+.*: Error: p0-p7 expected at operand 2 -- `ld1w { ?z0.q ?},p8/z,\[x0,x0,LSL#2\]'
+.*: Error: invalid base register at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x31,x0,LSL#2\]'
+.*: Error: invalid base register at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[xzr,x0,LSL#2\]'
+.*: Error: only 'MUL VL' is permitted at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,x31,LSL#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,xzr,LSL#2\]'
+.*: Error: invalid offset register at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,sp,LSL#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,x0\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w { ?z0.q ?},p0/z,\[x0,x0,LSL#3\]'
+.*: Error: operand mismatch -- `ld1w { ?z0.q ?},p0,\[x0,x0,LSL#2\]'
+.*: Info:    did you mean this\?
+.*: Info:      ld1w { ?z0.q ?}, p0/z, \[x0, x0, lsl #2\]
+.*: Error: p0-p7 expected at operand 2 -- `st1d { ?z0.q ?},p8,\[x0\]'
+.*: Error: invalid base register at operand 3 -- `st1d { ?z0.q ?},p0,\[x31\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,#8,mul vl\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,#-9,mul vl\]'
+.*: Error: operand mismatch -- `st1d { ?z0.q ?},p0/z,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:      st1d { ?z0.q ?}, p0, \[x0\]
+.*: Error: p0-p7 expected at operand 2 -- `st1d { ?z0.q ?},p8,\[x0,x0,LSL#3\]'
+.*: Error: invalid base register at operand 3 -- `st1d { ?z0.q ?},p0,\[x31,x0,LSL#3\]'
+.*: Error: invalid base register at operand 3 -- `st1d { ?z0.q ?},p0,\[xzr,x0,LSL#3\]'
+.*: Error: only 'MUL VL' is permitted at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,x31,LSL#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,xzr,LSL#3\]'
+.*: Error: invalid offset register at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,sp,LSL#3\]'
+.*: Error: invalid addressing mode at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,x0\]'
+.*: Error: invalid addressing mode at operand 3 -- `st1d { ?z0.q ?},p0,\[x0,x0,LSL#2\]'
+.*: Error: operand mismatch -- `st1d { ?z0.q ?},p0/z,\[x0,x0,LSL#3\]'
+.*: Info:    did you mean this\?
+.*: Info:      st1d { ?z0.q ?}, p0, \[x0, x0, lsl #3\]
+.*: Error: p0-p7 expected at operand 2 -- `st1w { ?z0.q ?},p8,\[x0\]'
+.*: Error: invalid base register at operand 3 -- `st1w { ?z0.q ?},p0,\[x31\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,#8,mul vl\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,#-9,mul vl\]'
+.*: Error: operand mismatch -- `st1w { ?z0.q ?},p0/z,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:      st1w { ?z0.q ?}, p0, \[x0\]
+.*: Error: p0-p7 expected at operand 2 -- `st1w { ?z0.q ?},p8,\[x0,x0,LSL#2\]'
+.*: Error: invalid base register at operand 3 -- `st1w { ?z0.q ?},p0,\[x31,x0,LSL#2\]'
+.*: Error: invalid base register at operand 3 -- `st1w { ?z0.q ?},p0,\[xzr,x0,LSL#2\]'
+.*: Error: only 'MUL VL' is permitted at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,x31,LSL#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,xzr,LSL#2\]'
+.*: Error: invalid offset register at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,sp,LSL#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,x0\]'
+.*: Error: invalid addressing mode at operand 3 -- `st1w { ?z0.q ?},p0,\[x0,x0,LSL#3\]'
+.*: Error: operand mismatch -- `st1w { ?z0.q ?},p0/z,\[x0,x0,LSL#2\]'
+.*: Info:    did you mean this\?
+.*: Info:      st1w { ?z0.q ?}, p0, \[x0, x0, lsl #2\]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-9-invalid.s
new file mode 100644 (file)
index 0000000..757d0b1
--- /dev/null
@@ -0,0 +1,69 @@
+ld1d { z0.q }, p8/z, [x0]
+ld1d { z0.q }, p0/z, [x31]
+ld1d { z0.q }, p0/z, [x0, #8, mul vl]
+ld1d { z0.q }, p0/z, [x0, #-9, mul vl]
+// FIXME: This form is incorrectly accepted:
+ld1d { z0.q }, p0/z, [x0, #0]
+ld1d { z0.q }, p0, [x0]
+
+ld1d { z0.q }, p8/z, [x0, x0, LSL #3]
+ld1d { z0.q }, p0/z, [x31, x0, LSL #3]
+ld1d { z0.q }, p0/z, [xzr, x0, LSL #3]
+// FIXME: confusing error message:
+ld1d { z0.q }, p0/z, [x0, x31, LSL #3]
+ld1d { z0.q }, p0/z, [x0, xzr, LSL #3]
+ld1d { z0.q }, p0/z, [x0, sp, LSL #3]
+ld1d { z0.q }, p0/z, [x0, x0]
+ld1d { z0.q }, p0/z, [x0, x0, LSL #2]
+ld1d { z0.q }, p0, [x0, x0, LSL #3]
+
+ld1w { z0.q }, p8/z, [x0]
+ld1w { z0.q }, p0/z, [x31]
+ld1w { z0.q }, p0/z, [x0, #8, mul vl]
+ld1w { z0.q }, p0/z, [x0, #-9, mul vl]
+ld1w { z0.q }, p0/z, [x0, #0]
+ld1w { z0.q }, p0, [x0]
+
+ld1w { z0.q }, p8/z, [x0, x0, LSL #2]
+ld1w { z0.q }, p0/z, [x31, x0, LSL #2]
+ld1w { z0.q }, p0/z, [xzr, x0, LSL #2]
+ld1w { z0.q }, p0/z, [x0, x31, LSL #2]
+ld1w { z0.q }, p0/z, [x0, xzr, LSL #2]
+ld1w { z0.q }, p0/z, [x0, sp, LSL #2]
+ld1w { z0.q }, p0/z, [x0, x0]
+ld1w { z0.q }, p0/z, [x0, x0, LSL #3]
+ld1w { z0.q }, p0, [x0, x0, LSL #2]
+
+st1d { z0.q }, p8, [x0]
+st1d { z0.q }, p0, [x31]
+st1d { z0.q }, p0, [x0, #8, mul vl]
+st1d { z0.q }, p0, [x0, #-9, mul vl]
+st1d { z0.q }, p0, [x0, #0]
+st1d { z0.q }, p0/z, [x0]
+
+st1d { z0.q }, p8, [x0, x0, LSL #3]
+st1d { z0.q }, p0, [x31, x0, LSL #3]
+st1d { z0.q }, p0, [xzr, x0, LSL #3]
+st1d { z0.q }, p0, [x0, x31, LSL #3]
+st1d { z0.q }, p0, [x0, xzr, LSL #3]
+st1d { z0.q }, p0, [x0, sp, LSL #3]
+st1d { z0.q }, p0, [x0, x0]
+st1d { z0.q }, p0, [x0, x0, LSL #2]
+st1d { z0.q }, p0/z, [x0, x0, LSL #3]
+
+st1w { z0.q }, p8, [x0]
+st1w { z0.q }, p0, [x31]
+st1w { z0.q }, p0, [x0, #8, mul vl]
+st1w { z0.q }, p0, [x0, #-9, mul vl]
+st1w { z0.q }, p0, [x0, #0]
+st1w { z0.q }, p0/z, [x0]
+
+st1w { z0.q }, p8, [x0, x0, LSL #2]
+st1w { z0.q }, p0, [x31, x0, LSL #2]
+st1w { z0.q }, p0, [xzr, x0, LSL #2]
+st1w { z0.q }, p0, [x0, x31, LSL #2]
+st1w { z0.q }, p0, [x0, xzr, LSL #2]
+st1w { z0.q }, p0, [x0, sp, LSL #2]
+st1w { z0.q }, p0, [x0, x0]
+st1w { z0.q }, p0, [x0, x0, LSL #3]
+st1w { z0.q }, p0/z, [x0, x0, LSL #2]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9.d b/gas/testsuite/gas/aarch64/sve2p1-9.d
new file mode 100644 (file)
index 0000000..9a5c0d2
--- /dev/null
@@ -0,0 +1,75 @@
+#name: Test of SVE2.1 ld1q/st1q instructions.
+#as: -march=armv9.4-a
+#as: -march=armv8-a+sve2p1
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:    a5902000        ld1d    {z0.q}, p0/z, \[x0\]
+.*:    a5902000        ld1d    {z0.q}, p0/z, \[x0\]
+.*:    a5972000        ld1d    {z0.q}, p0/z, \[x0, #7, mul vl\]
+.*:    a5982000        ld1d    {z0.q}, p0/z, \[x0, #-8, mul vl\]
+.*:    a59f2000        ld1d    {z0.q}, p0/z, \[x0, #-1, mul vl\]
+.*:    a590201f        ld1d    {z31.q}, p0/z, \[x0\]
+.*:    a5903c00        ld1d    {z0.q}, p7/z, \[x0\]
+.*:    a59023c0        ld1d    {z0.q}, p0/z, \[x30\]
+.*:    a59023e0        ld1d    {z0.q}, p0/z, \[sp\]
+.*:    a5808000        ld1d    {z0.q}, p0/z, \[x0, x0, lsl #3\]
+.*:    a580801f        ld1d    {z31.q}, p0/z, \[x0, x0, lsl #3\]
+.*:    a5809c00        ld1d    {z0.q}, p7/z, \[x0, x0, lsl #3\]
+.*:    a58083c0        ld1d    {z0.q}, p0/z, \[x30, x0, lsl #3\]
+.*:    a58083e0        ld1d    {z0.q}, p0/z, \[sp, x0, lsl #3\]
+.*:    a58f8000        ld1d    {z0.q}, p0/z, \[x0, x15, lsl #3\]
+.*:    a59e8000        ld1d    {z0.q}, p0/z, \[x0, x30, lsl #3\]
+.*:    a5102000        ld1w    {z0.q}, p0/z, \[x0\]
+.*:    a5102000        ld1w    {z0.q}, p0/z, \[x0\]
+.*:    a5172000        ld1w    {z0.q}, p0/z, \[x0, #7, mul vl\]
+.*:    a5182000        ld1w    {z0.q}, p0/z, \[x0, #-8, mul vl\]
+.*:    a51f2000        ld1w    {z0.q}, p0/z, \[x0, #-1, mul vl\]
+.*:    a510201f        ld1w    {z31.q}, p0/z, \[x0\]
+.*:    a5103c00        ld1w    {z0.q}, p7/z, \[x0\]
+.*:    a51023c0        ld1w    {z0.q}, p0/z, \[x30\]
+.*:    a51023e0        ld1w    {z0.q}, p0/z, \[sp\]
+.*:    a5008000        ld1w    {z0.q}, p0/z, \[x0, x0, lsl #2\]
+.*:    a500801f        ld1w    {z31.q}, p0/z, \[x0, x0, lsl #2\]
+.*:    a5009c00        ld1w    {z0.q}, p7/z, \[x0, x0, lsl #2\]
+.*:    a50083c0        ld1w    {z0.q}, p0/z, \[x30, x0, lsl #2\]
+.*:    a50083e0        ld1w    {z0.q}, p0/z, \[sp, x0, lsl #2\]
+.*:    a50f8000        ld1w    {z0.q}, p0/z, \[x0, x15, lsl #2\]
+.*:    a51e8000        ld1w    {z0.q}, p0/z, \[x0, x30, lsl #2\]
+.*:    e5c0e000        st1d    {z0.q}, p0, \[x0\]
+.*:    e5c0e000        st1d    {z0.q}, p0, \[x0\]
+.*:    e5c7e000        st1d    {z0.q}, p0, \[x0, #7, mul vl\]
+.*:    e5c8e000        st1d    {z0.q}, p0, \[x0, #-8, mul vl\]
+.*:    e5cfe000        st1d    {z0.q}, p0, \[x0, #-1, mul vl\]
+.*:    e5c0e01f        st1d    {z31.q}, p0, \[x0\]
+.*:    e5c0fc00        st1d    {z0.q}, p7, \[x0\]
+.*:    e5c0e3c0        st1d    {z0.q}, p0, \[x30\]
+.*:    e5c0e3e0        st1d    {z0.q}, p0, \[sp\]
+.*:    e5c04000        st1d    {z0.q}, p0, \[x0, x0, lsl #3\]
+.*:    e5c0401f        st1d    {z31.q}, p0, \[x0, x0, lsl #3\]
+.*:    e5c05c00        st1d    {z0.q}, p7, \[x0, x0, lsl #3\]
+.*:    e5c043c0        st1d    {z0.q}, p0, \[x30, x0, lsl #3\]
+.*:    e5c043e0        st1d    {z0.q}, p0, \[sp, x0, lsl #3\]
+.*:    e5cf4000        st1d    {z0.q}, p0, \[x0, x15, lsl #3\]
+.*:    e5de4000        st1d    {z0.q}, p0, \[x0, x30, lsl #3\]
+.*:    e500e000        st1w    {z0.q}, p0, \[x0\]
+.*:    e500e000        st1w    {z0.q}, p0, \[x0\]
+.*:    e507e000        st1w    {z0.q}, p0, \[x0, #7, mul vl\]
+.*:    e508e000        st1w    {z0.q}, p0, \[x0, #-8, mul vl\]
+.*:    e50fe000        st1w    {z0.q}, p0, \[x0, #-1, mul vl\]
+.*:    e500e01f        st1w    {z31.q}, p0, \[x0\]
+.*:    e500fc00        st1w    {z0.q}, p7, \[x0\]
+.*:    e500e3c0        st1w    {z0.q}, p0, \[x30\]
+.*:    e500e3e0        st1w    {z0.q}, p0, \[sp\]
+.*:    e5004000        st1w    {z0.q}, p0, \[x0, x0, lsl #2\]
+.*:    e500401f        st1w    {z31.q}, p0, \[x0, x0, lsl #2\]
+.*:    e5005c00        st1w    {z0.q}, p7, \[x0, x0, lsl #2\]
+.*:    e50043c0        st1w    {z0.q}, p0, \[x30, x0, lsl #2\]
+.*:    e50043e0        st1w    {z0.q}, p0, \[sp, x0, lsl #2\]
+.*:    e50f4000        st1w    {z0.q}, p0, \[x0, x15, lsl #2\]
+.*:    e51e4000        st1w    {z0.q}, p0, \[x0, x30, lsl #2\]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9.s b/gas/testsuite/gas/aarch64/sve2p1-9.s
new file mode 100644 (file)
index 0000000..d5ba328
--- /dev/null
@@ -0,0 +1,71 @@
+ld1d { z0.q }, p0/z, [x0]
+ld1d { z0.q }, p0/z, [x0, #0, mul vl]
+ld1d { z0.q }, p0/z, [x0, #7, mul vl]
+ld1d { z0.q }, p0/z, [x0, #-8, mul vl]
+ld1d { z0.q }, p0/z, [x0, #-1, mul vl]
+ld1d { z31.q }, p0/z, [x0]
+ld1d { z0.q }, p7/z, [x0]
+ld1d { z0.q }, p0/z, [x30]
+ld1d { z0.q }, p0/z, [sp]
+
+ld1d { z0.q }, p0/z, [x0, x0, LSL #3]
+ld1d { z31.q }, p0/z, [x0, x0, LSL #3]
+ld1d { z0.q }, p7/z, [x0, x0, LSL #3]
+ld1d { z0.q }, p0/z, [x30, x0, LSL #3]
+ld1d { z0.q }, p0/z, [sp, x0, LSL #3]
+ld1d { z0.q }, p0/z, [x0, x15, LSL #3]
+ld1d { z0.q }, p0/z, [x0, x30, LSL #3]
+
+ld1w { z0.q }, p0/z, [x0]
+ld1w { z0.q }, p0/z, [x0, #0, mul vl]
+ld1w { z0.q }, p0/z, [x0, #7, mul vl]
+ld1w { z0.q }, p0/z, [x0, #-8, mul vl]
+ld1w { z0.q }, p0/z, [x0, #-1, mul vl]
+ld1w { z31.q }, p0/z, [x0]
+ld1w { z0.q }, p7/z, [x0]
+ld1w { z0.q }, p0/z, [x30]
+ld1w { z0.q }, p0/z, [sp]
+
+ld1w { z0.q }, p0/z, [x0, x0, LSL #2]
+ld1w { z31.q }, p0/z, [x0, x0, LSL #2]
+ld1w { z0.q }, p7/z, [x0, x0, LSL #2]
+ld1w { z0.q }, p0/z, [x30, x0, LSL #2]
+ld1w { z0.q }, p0/z, [sp, x0, LSL #2]
+ld1w { z0.q }, p0/z, [x0, x15, LSL #2]
+ld1w { z0.q }, p0/z, [x0, x30, LSL #2]
+
+st1d { z0.q }, p0, [x0]
+st1d { z0.q }, p0, [x0, #0, mul vl]
+st1d { z0.q }, p0, [x0, #7, mul vl]
+st1d { z0.q }, p0, [x0, #-8, mul VL]
+st1d { z0.q }, p0, [x0, #-1, MUL vl]
+st1d { z31.q }, p0, [x0]
+st1d { z0.q }, p7, [x0]
+st1d { z0.q }, p0, [x30]
+st1d { z0.q }, p0, [sp]
+
+st1d { z0.q }, p0, [x0, x0, lsl #3]
+st1d { z31.q }, p0, [x0, x0, LSL #3]
+st1d { z0.q }, p7, [x0, x0, LSL #3]
+st1d { z0.q }, p0, [x30, x0, LSL #3]
+st1d { z0.q }, p0, [sp, x0, LSL #3]
+st1d { z0.q }, p0, [x0, x15, LSL #3]
+st1d { z0.q }, p0, [x0, x30, LSL #3]
+
+st1w { z0.q }, p0, [x0]
+st1w { z0.q }, p0, [x0, #0, mul vl]
+st1w { z0.q }, p0, [x0, #7, mul vl]
+st1w { z0.q }, p0, [x0, #-8, mul VL]
+st1w { z0.q }, p0, [x0, #-1, MUL vl]
+st1w { z31.q }, p0, [x0]
+st1w { z0.q }, p7, [x0]
+st1w { z0.q }, p0, [x30]
+st1w { z0.q }, p0, [sp]
+
+st1w { z0.q }, p0, [x0, x0, lsl #2]
+st1w { z31.q }, p0, [x0, x0, LSL #2]
+st1w { z0.q }, p7, [x0, x0, LSL #2]
+st1w { z0.q }, p0, [x30, x0, LSL #2]
+st1w { z0.q }, p0, [sp, x0, LSL #2]
+st1w { z0.q }, p0, [x0, x15, LSL #2]
+st1w { z0.q }, p0, [x0, x30, LSL #2]
index 755373557fc6e03da9d828ad4cbf4ca15541adff..dfe3f05820ab156bb7d5fc5c86dd6cbaba91065c 100644 (file)
@@ -268,6 +268,8 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_SVE_B16B16,
   /* SME non-widening BFloat16 instructions.  */
   AARCH64_FEATURE_SME_B16B16,
+  /* Armv9.5-A processors.  */
+  AARCH64_FEATURE_V9_5A,
 
   /* Virtual features.  These are used to gate instructions that are enabled
      by either of two (or more) sets of command line flags.  */
@@ -279,8 +281,12 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_FP8DOT2_SVE,
   /* +sme-f16f16 or +sme-f8f16  */
   AARCH64_FEATURE_SME_F16F16_F8F16,
-  /* Armv9.5-A processors.  */
-  AARCH64_FEATURE_V9_5A,
+  /* +sve2p1 or +sme */
+  AARCH64_FEATURE_SVE2p1_SME,
+  /* +sve2p1 or +sme2 */
+  AARCH64_FEATURE_SVE2p1_SME2,
+  /* +sve2p1 or +sme2p1 */
+  AARCH64_FEATURE_SVE2p1_SME2p1,
   AARCH64_NUM_FEATURES
 };
 
index 07e12f6d252c601a3e3963ce0a179078e4455f4e..eb1411378777098edd6dcf010567c5c6e7cbad01 100644 (file)
@@ -271,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000x000101x00xxxxxxxxxxxxxx
                                                                  luti4.  */
-                                                              return 3480;
+                                                              return 3488;
                                                             }
                                                           else
                                                             {
@@ -310,7 +310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx01101x00xxxxxxxxxxxxxx
                                                              luti4.  */
-                                                          return 3481;
+                                                          return 3489;
                                                         }
                                                       else
                                                         {
@@ -542,7 +542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000010011x1xxxx00xxxxxxxxxx
                                                                      movt.  */
-                                                                  return 3482;
+                                                                  return 3490;
                                                                 }
                                                             }
                                                           else
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx00xxx
                                                  fmopa.  */
-                                              return 3548;
+                                              return 3556;
                                             }
                                           else
                                             {
@@ -1374,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx01xxx
                                                  fmopa.  */
-                                              return 3547;
+                                              return 3555;
                                             }
                                         }
                                       else
@@ -1722,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xx0000010001xxxx1xx0xxxxx1000xxx
                                                                      fmlall.  */
-                                                                  return 3541;
+                                                                  return 3549;
                                                                 }
                                                             }
                                                         }
@@ -1772,7 +1772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000010001xxxx1xx1xxxxx100xxxx
                                                                  fdot.  */
-                                                              return 3526;
+                                                              return 3534;
                                                             }
                                                         }
                                                     }
@@ -2223,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxxxxx0xxxxxx100xxx
                                                                  fmlall.  */
-                                                              return 3540;
+                                                              return 3548;
                                                             }
                                                         }
                                                     }
@@ -2328,7 +2328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx10xxxx
                                                              fmlal.  */
-                                                          return 3533;
+                                                          return 3541;
                                                         }
                                                     }
                                                 }
@@ -2512,7 +2512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx11xxxx
                                                              fmlal.  */
-                                                          return 3532;
+                                                          return 3540;
                                                         }
                                                     }
                                                 }
@@ -2554,7 +2554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx0000010100xxxxxxxxxxxxxxxx0xxx
                                                  fmlall.  */
-                                              return 3539;
+                                              return 3547;
                                             }
                                           else
                                             {
@@ -2922,7 +2922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx0xxxxxx111xxx
                                                              fdot.  */
-                                                          return 3519;
+                                                          return 3527;
                                                         }
                                                       else
                                                         {
@@ -2991,7 +2991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx001xxx
                                                              fdot.  */
-                                                          return 3520;
+                                                          return 3528;
                                                         }
                                                       else
                                                         {
@@ -3070,7 +3070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx0000011100xxxxxxx0xxxxxxx0xxxx
                                                      fmlal.  */
-                                                  return 3531;
+                                                  return 3539;
                                                 }
                                               else
                                                 {
@@ -3125,7 +3125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000011101xxxx0xx01xxxxx00xxxx
                                                                  fvdotb.  */
-                                                              return 3550;
+                                                              return 3558;
                                                             }
                                                           else
                                                             {
@@ -3143,7 +3143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx0xxxxxx10xxxx
                                                          fdot.  */
-                                                      return 3525;
+                                                      return 3533;
                                                     }
                                                 }
                                             }
@@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx1xxxxxx10xxxx
                                                          fvdot.  */
-                                                      return 3549;
+                                                      return 3557;
                                                     }
                                                 }
                                             }
@@ -3297,7 +3297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx01xxxxxx1xxxx
                                                          fvdott.  */
-                                                      return 3551;
+                                                      return 3559;
                                                     }
                                                   else
                                                     {
@@ -3496,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx00xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3545;
+                                                                              return 3553;
                                                                             }
                                                                           else
                                                                             {
@@ -3504,7 +3504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx10xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3546;
+                                                                              return 3554;
                                                                             }
                                                                         }
                                                                     }
@@ -3559,7 +3559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3543;
+                                                                  return 3551;
                                                                 }
                                                               else
                                                                 {
@@ -3567,7 +3567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3544;
+                                                                  return 3552;
                                                                 }
                                                             }
                                                         }
@@ -3621,7 +3621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3529;
+                                                                      return 3537;
                                                                     }
                                                                   else
                                                                     {
@@ -3629,7 +3629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3530;
+                                                                      return 3538;
                                                                     }
                                                                 }
                                                             }
@@ -3691,7 +3691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx00xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3537;
+                                                                              return 3545;
                                                                             }
                                                                           else
                                                                             {
@@ -3699,7 +3699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx10xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3538;
+                                                                              return 3546;
                                                                             }
                                                                         }
                                                                     }
@@ -3754,7 +3754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3535;
+                                                                  return 3543;
                                                                 }
                                                               else
                                                                 {
@@ -3762,7 +3762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3536;
+                                                                  return 3544;
                                                                 }
                                                             }
                                                         }
@@ -3831,7 +3831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx001xxxxx000xx
                                                                      fmlall.  */
-                                                                  return 3542;
+                                                                  return 3550;
                                                                 }
                                                             }
                                                           else
@@ -3914,7 +3914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx11xxxx0xx011xxxxx00xxx
                                                                  fmlal.  */
-                                                              return 3534;
+                                                              return 3542;
                                                             }
                                                         }
                                                       else
@@ -3960,7 +3960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x00xx111xxxxx00xxx
                                                                                  fadd.  */
-                                                                              return 3483;
+                                                                              return 3491;
                                                                             }
                                                                           else
                                                                             {
@@ -3990,7 +3990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x10xx111xxxxx00xxx
                                                                                  fadd.  */
-                                                                              return 3484;
+                                                                              return 3492;
                                                                             }
                                                                           else
                                                                             {
@@ -4146,7 +4146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3523;
+                                                                      return 3531;
                                                                     }
                                                                   else
                                                                     {
@@ -4154,7 +4154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3524;
+                                                                      return 3532;
                                                                     }
                                                                 }
                                                             }
@@ -4449,7 +4449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx100xxxxx01xxx
                                                                          fdot.  */
-                                                                      return 3527;
+                                                                      return 3535;
                                                                     }
                                                                   else
                                                                     {
@@ -4457,7 +4457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010011xxxx0xx100xxxxx01xxx
                                                                          fdot.  */
-                                                                      return 3528;
+                                                                      return 3536;
                                                                     }
                                                                 }
                                                               else
@@ -4793,7 +4793,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x00xx111xxxxx01xxx
                                                                                  fsub.  */
-                                                                              return 3485;
+                                                                              return 3493;
                                                                             }
                                                                           else
                                                                             {
@@ -4823,7 +4823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x10xx111xxxxx01xxx
                                                                                  fsub.  */
-                                                                              return 3486;
+                                                                              return 3494;
                                                                             }
                                                                           else
                                                                             {
@@ -4919,7 +4919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx100xxxxx11xxx
                                                                          fdot.  */
-                                                                      return 3521;
+                                                                      return 3529;
                                                                     }
                                                                   else
                                                                     {
@@ -4927,7 +4927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010011xxxx0xx100xxxxx11xxx
                                                                          fdot.  */
-                                                                      return 3522;
+                                                                      return 3530;
                                                                     }
                                                                 }
                                                               else
@@ -5502,7 +5502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx101000xx1x0xxxx0
                                                                          fscale.  */
-                                                                      return 3457;
+                                                                      return 3465;
                                                                     }
                                                                 }
                                                               else
@@ -5694,7 +5694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x0100100111000xxxx0xxxxx
                                                                                          fcvt.  */
-                                                                                      return 3454;
+                                                                                      return 3462;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5702,7 +5702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x1100100111000xxxx0xxxxx
                                                                                          bfcvt.  */
-                                                                                      return 3449;
+                                                                                      return 3457;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5711,7 +5711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      x1000001xx110100111000xxxx0xxxxx
                                                                                      fcvt.  */
-                                                                                  return 3455;
+                                                                                  return 3463;
                                                                                 }
                                                                             }
                                                                           else
@@ -5740,7 +5740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000001xx1xx100111000xxxx1xxxxx
                                                                              fcvtn.  */
-                                                                          return 3456;
+                                                                          return 3464;
                                                                         }
                                                                     }
                                                                 }
@@ -5823,7 +5823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010010x110111000xxxxxxxxx0
                                                                                          f1cvt.  */
-                                                                                      return 3450;
+                                                                                      return 3458;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5831,7 +5831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011010x110111000xxxxxxxxx0
                                                                                          f2cvt.  */
-                                                                                      return 3451;
+                                                                                      return 3459;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5842,7 +5842,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010110x110111000xxxxxxxxx0
                                                                                          bf1cvt.  */
-                                                                                      return 3445;
+                                                                                      return 3453;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5850,7 +5850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011110x110111000xxxxxxxxx0
                                                                                          bf2cvt.  */
-                                                                                      return 3446;
+                                                                                      return 3454;
                                                                                     }
                                                                                 }
                                                                             }
@@ -5885,7 +5885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001001xxx10111000xxxxxxxxx1
                                                                                  f1cvtl.  */
-                                                                              return 3452;
+                                                                              return 3460;
                                                                             }
                                                                           else
                                                                             {
@@ -5893,7 +5893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxx10111000xxxxxxxxx1
                                                                                  f2cvtl.  */
-                                                                              return 3453;
+                                                                              return 3461;
                                                                             }
                                                                         }
                                                                       else
@@ -5904,7 +5904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001011xxx10111000xxxxxxxxx1
                                                                                  bf1cvtl.  */
-                                                                              return 3447;
+                                                                              return 3455;
                                                                             }
                                                                           else
                                                                             {
@@ -5912,7 +5912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001111xxx10111000xxxxxxxxx1
                                                                                  bf2cvtl.  */
-                                                                              return 3448;
+                                                                              return 3456;
                                                                             }
                                                                         }
                                                                     }
@@ -6181,7 +6181,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1100xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3459;
+                                                                      return 3467;
                                                                     }
                                                                 }
                                                               else
@@ -6357,7 +6357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1010xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3458;
+                                                                      return 3466;
                                                                     }
                                                                   else
                                                                     {
@@ -6365,7 +6365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1110xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3460;
+                                                                      return 3468;
                                                                     }
                                                                 }
                                                             }
@@ -11533,7 +11533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0x11010000xxxxxxx1xxxxxxxxxxxxx
                                              addpt.  */
-                                          return 3461;
+                                          return 3469;
                                         }
                                       else
                                         {
@@ -11541,7 +11541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x1x11010000xxxxxxx1xxxxxxxxxxxxx
                                              subpt.  */
-                                          return 3462;
+                                          return 3470;
                                         }
                                     }
                                 }
@@ -12459,7 +12459,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
                                  maddpt.  */
-                              return 3463;
+                              return 3471;
                             }
                           else
                             {
@@ -12467,7 +12467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
                                  msubpt.  */
-                              return 3464;
+                              return 3472;
                             }
                         }
                     }
@@ -12552,7 +12552,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000100000xxxxxxxxxxxxx
                                                                      addpt.  */
-                                                                  return 3465;
+                                                                  return 3473;
                                                                 }
                                                               else
                                                                 {
@@ -12659,7 +12659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000101000xxxxxxxxxxxxx
                                                                      subpt.  */
-                                                                  return 3467;
+                                                                  return 3475;
                                                                 }
                                                               else
                                                                 {
@@ -12864,7 +12864,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000010xxxxxxxxxx
                                                              addpt.  */
-                                                          return 3466;
+                                                          return 3474;
                                                         }
                                                       else
                                                         {
@@ -12905,7 +12905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000011xxxxxxxxxx
                                                              subpt.  */
-                                                          return 3468;
+                                                          return 3476;
                                                         }
                                                       else
                                                         {
@@ -14563,7 +14563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110100xxxxxxxxxx
                                                              mlapt.  */
-                                                          return 3470;
+                                                          return 3478;
                                                         }
                                                     }
                                                   else
@@ -14593,7 +14593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110110xxxxxxxxxx
                                                              madpt.  */
-                                                          return 3469;
+                                                          return 3477;
                                                         }
                                                     }
                                                 }
@@ -15747,7 +15747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      110001x0x00xxxxx101xxxxxxxxxxxxx
                                                      ld1q.  */
-                                                  return 3406;
+                                                  return 3414;
                                                 }
                                               else
                                                 {
@@ -17279,7 +17279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x0x00xxxxx000xxxxxxxxxxxxx
                                                      st3q.  */
-                                                  return 3415;
+                                                  return 3423;
                                                 }
                                               else
                                                 {
@@ -17289,7 +17289,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0010xxxxx000xxxxxxxxxxxxx
                                                          st2q.  */
-                                                      return 3414;
+                                                      return 3422;
                                                     }
                                                   else
                                                     {
@@ -17297,7 +17297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0110xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3416;
+                                                      return 3424;
                                                     }
                                                 }
                                             }
@@ -17963,7 +17963,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x0xx01xxxx111xxxxxxxxxxxxx
                                                      ld2q.  */
-                                                  return 3407;
+                                                  return 3415;
                                                 }
                                             }
                                         }
@@ -18099,7 +18099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101001x0xx1xxxxx100xxxxxxxxxxxxx
                                                  ld2q.  */
-                                              return 3410;
+                                              return 3418;
                                             }
                                         }
                                       else
@@ -18244,7 +18244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x00x1xxxxx000xxxxxxxxxxxxx
                                                      st2q.  */
-                                                  return 3417;
+                                                  return 3425;
                                                 }
                                             }
                                           else
@@ -18287,7 +18287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0101xxxxx000xxxxxxxxxxxxx
                                                          st3q.  */
-                                                      return 3418;
+                                                      return 3426;
                                                     }
                                                 }
                                               else
@@ -18328,7 +18328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0111xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3419;
+                                                      return 3427;
                                                     }
                                                 }
                                             }
@@ -18357,7 +18357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0001xxxxx0100x1xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3506;
+                                                              return 3514;
                                                             }
                                                         }
                                                       else
@@ -18366,7 +18366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0001xxxxx0101xxxxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3508;
+                                                          return 3516;
                                                         }
                                                     }
                                                   else
@@ -18407,7 +18407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx0101xxxxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3518;
+                                                          return 3526;
                                                         }
                                                     }
                                                   else
@@ -18440,7 +18440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0011xxxxx010xx1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3504;
+                                                          return 3512;
                                                         }
                                                     }
                                                   else
@@ -18511,7 +18511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11001x0001xxxxx100010xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3509;
+                                                              return 3517;
                                                             }
                                                         }
                                                       else
@@ -18520,7 +18520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x11001x0001xxxxx1000x1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3505;
+                                                          return 3513;
                                                         }
                                                     }
                                                   else
@@ -18529,7 +18529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1100xxxxxxxxxxxx
                                                          fmlallbb.  */
-                                                      return 3510;
+                                                      return 3518;
                                                     }
                                                 }
                                               else
@@ -18538,7 +18538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0001xxxxx1x01xxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3511;
+                                                  return 3519;
                                                 }
                                             }
                                           else
@@ -18565,7 +18565,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x0101xxxxx100010xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3507;
+                                                                  return 3515;
                                                                 }
                                                             }
                                                           else
@@ -18583,7 +18583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx1100xxxxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3514;
+                                                          return 3522;
                                                         }
                                                     }
                                                   else
@@ -18592,7 +18592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0101xxxxx1x01xxxxxxxxxxxx
                                                          fmlalt.  */
-                                                      return 3517;
+                                                      return 3525;
                                                     }
                                                 }
                                               else
@@ -18625,7 +18625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0011xxxxx100xx1xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3503;
+                                                      return 3511;
                                                     }
                                                 }
                                               else
@@ -18634,7 +18634,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0011xxxxx110xxxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3512;
+                                                  return 3520;
                                                 }
                                             }
                                           else
@@ -18666,7 +18666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx110xxxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3516;
+                                                      return 3524;
                                                     }
                                                 }
                                               else
@@ -18965,7 +18965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x0xx1xxxxx001xxxxxxxxxxxxx
                                                  st1q.  */
-                                              return 3413;
+                                              return 3421;
                                             }
                                         }
                                       else
@@ -18980,7 +18980,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1010xxxxxxxxxxxx
                                                          fmlalltb.  */
-                                                      return 3513;
+                                                      return 3521;
                                                     }
                                                   else
                                                     {
@@ -18988,7 +18988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1011xxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3515;
+                                                      return 3523;
                                                     }
                                                 }
                                               else
@@ -21443,7 +21443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101100xxxxxxxxxx
                                                              luti2.  */
-                                                          return 3475;
+                                                          return 3483;
                                                         }
                                                     }
                                                   else
@@ -21452,7 +21452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x10xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3476;
+                                                      return 3484;
                                                     }
                                                 }
                                               else
@@ -21465,7 +21465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101001xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3477;
+                                                          return 3485;
                                                         }
                                                       else
                                                         {
@@ -21473,7 +21473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101101xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3478;
+                                                          return 3486;
                                                         }
                                                     }
                                                   else
@@ -21482,7 +21482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x11xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3479;
+                                                      return 3487;
                                                     }
                                                 }
                                             }
@@ -22363,21 +22363,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 20) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x10x0xxxxx001xxxxxxxxxxxxx
-                                                     ld1rqw.  */
-                                                  return 1613;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x10x00xxxx001xxxxxxxxxxxxx
+                                                         ld1rqw.  */
+                                                      return 1613;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x11x00xxxx001xxxxxxxxxxxxx
+                                                         ld1rqd.  */
+                                                      return 1609;
+                                                    }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x11x0xxxxx001xxxxxxxxxxxxx
-                                                     ld1rqd.  */
-                                                  return 1609;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x10x01xxxx001xxxxxxxxxxxxx
+                                                         ld1w.  */
+                                                      return 3408;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x11x01xxxx001xxxxxxxxxxxxx
+                                                         ld1d.  */
+                                                      return 3406;
+                                                    }
                                                 }
                                             }
                                         }
@@ -22433,7 +22455,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x00xxxxxxxxxx
                                                                              f1cvt.  */
-                                                                          return 3437;
+                                                                          return 3445;
                                                                         }
                                                                       else
                                                                         {
@@ -22441,7 +22463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x10xxxxxxxxxx
                                                                              bf1cvt.  */
-                                                                          return 3433;
+                                                                          return 3441;
                                                                         }
                                                                     }
                                                                   else
@@ -22452,7 +22474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x01xxxxxxxxxx
                                                                              f2cvt.  */
-                                                                          return 3438;
+                                                                          return 3446;
                                                                         }
                                                                       else
                                                                         {
@@ -22460,7 +22482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x11xxxxxxxxxx
                                                                              bf2cvt.  */
-                                                                          return 3434;
+                                                                          return 3442;
                                                                         }
                                                                     }
                                                                 }
@@ -22505,7 +22527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x00xxxxxxxxxx
                                                                          fcvtn.  */
-                                                                      return 3442;
+                                                                      return 3450;
                                                                     }
                                                                   else
                                                                     {
@@ -22513,7 +22535,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x10xxxxxxxxxx
                                                                          bfcvtn.  */
-                                                                      return 3441;
+                                                                      return 3449;
                                                                     }
                                                                 }
                                                               else
@@ -22524,7 +22546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x01xxxxxxxxxx
                                                                          fcvtnb.  */
-                                                                      return 3443;
+                                                                      return 3451;
                                                                     }
                                                                   else
                                                                     {
@@ -22532,7 +22554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x11xxxxxxxxxx
                                                                          fcvtnt.  */
-                                                                      return 3444;
+                                                                      return 3452;
                                                                     }
                                                                 }
                                                             }
@@ -22593,7 +22615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x00xxxxxxxxxx
                                                                          f1cvtlt.  */
-                                                                      return 3439;
+                                                                      return 3447;
                                                                     }
                                                                   else
                                                                     {
@@ -22601,7 +22623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x10xxxxxxxxxx
                                                                          bf1cvtlt.  */
-                                                                      return 3435;
+                                                                      return 3443;
                                                                     }
                                                                 }
                                                               else
@@ -22612,7 +22634,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x01xxxxxxxxxx
                                                                          f2cvtlt.  */
-                                                                      return 3440;
+                                                                      return 3448;
                                                                     }
                                                                   else
                                                                     {
@@ -22620,7 +22642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x11xxxxxxxxxx
                                                                          bf2cvtlt.  */
-                                                                      return 3436;
+                                                                      return 3444;
                                                                     }
                                                                 }
                                                             }
@@ -23438,21 +23460,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 111001x1x0xxxxxx010xxxxxxxxxxxxx
-                                                 str.  */
-                                              return 2010;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x100xxxxxx010xxxxxxxxxxxxx
+                                                     st1w.  */
+                                                  return 3413;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x110xxxxxx010xxxxxxxxxxxxx
+                                                     str.  */
+                                                  return 2010;
+                                                }
                                             }
                                           else
                                             {
                                               if (((word >> 21) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x1x10xxxxx010xxxxxxxxxxxxx
-                                                     st1w.  */
-                                                  return 1968;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1010xxxxx010xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1968;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1110xxxxx010xxxxxxxxxxxxx
+                                                         st1d.  */
+                                                      return 3411;
+                                                    }
                                                 }
                                               else
                                                 {
@@ -23607,21 +23651,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 13) & 0x1) == 0)
                                         {
-                                          if (((word >> 4) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x1xx0xxxxx100xxxxxxxx0xxxx
-                                                 cmpeq.  */
-                                              return 1384;
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x1xx0xxxxx100xxxxxxxx0xxxx
+                                                     cmpeq.  */
+                                                  return 1384;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x1xx0xxxxx100xxxxxxxx1xxxx
+                                                     cmpne.  */
+                                                  return 1407;
+                                                }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x1xx0xxxxx100xxxxxxxx1xxxx
-                                                 cmpne.  */
-                                              return 1407;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x10x0xxxxx100xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 3409;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x11x0xxxxx100xxxxxxxxxxxxx
+                                                     ld1d.  */
+                                                  return 3407;
+                                                }
                                             }
                                         }
                                       else
@@ -23946,7 +24012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10x01xxxx111xxxxxxxxxxxxx
                                                          ld3q.  */
-                                                      return 3408;
+                                                      return 3416;
                                                     }
                                                   else
                                                     {
@@ -23954,7 +24020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11x01xxxx111xxxxxxxxxxxxx
                                                          ld4q.  */
-                                                      return 3409;
+                                                      return 3417;
                                                     }
                                                 }
                                             }
@@ -24842,11 +24908,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 20) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x1xx00xxxx111xxxxxxxxxxxxx
-                                                     st1w.  */
-                                                  return 1973;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1x000xxxx111xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 3412;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x10100xxxx111xxxxxxxxxxxxx
+                                                             st1w.  */
+                                                          return 1973;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x11100xxxx111xxxxxxxxxxxxx
+                                                             st1d.  */
+                                                          return 3410;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
@@ -25127,7 +25215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x1xxxxx100xxxxxxxxxxxxx
                                                      ld3q.  */
-                                                  return 3411;
+                                                  return 3419;
                                                 }
                                               else
                                                 {
@@ -25135,7 +25223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x1xxxxx100xxxxxxxxxxxxx
                                                      ld4q.  */
-                                                  return 3412;
+                                                  return 3420;
                                                 }
                                             }
                                           else
@@ -27200,7 +27288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110100xxxxxxxx100xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3471;
+                                                      return 3479;
                                                     }
                                                 }
                                             }
@@ -27214,7 +27302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx000xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3473;
+                                                      return 3481;
                                                     }
                                                   else
                                                     {
@@ -27222,7 +27310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx100xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3474;
+                                                      return 3482;
                                                     }
                                                 }
                                               else
@@ -27231,7 +27319,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      0x001110110xxxxxxxxx00xxxxxxxxxx
                                                      luti2.  */
-                                                  return 3472;
+                                                  return 3480;
                                                 }
                                             }
                                         }
@@ -27347,7 +27435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3495;
+                                                              return 3503;
                                                             }
                                                           else
                                                             {
@@ -27355,7 +27443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlalltb.  */
-                                                              return 3497;
+                                                              return 3505;
                                                             }
                                                         }
                                                       else
@@ -27366,7 +27454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlallbt.  */
-                                                              return 3496;
+                                                              return 3504;
                                                             }
                                                           else
                                                             {
@@ -27374,7 +27462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlalltt.  */
-                                                              return 3498;
+                                                              return 3506;
                                                             }
                                                         }
                                                     }
@@ -27462,7 +27550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn.  */
-                                                              return 3428;
+                                                              return 3436;
                                                             }
                                                           else
                                                             {
@@ -27470,7 +27558,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn2.  */
-                                                              return 3429;
+                                                              return 3437;
                                                             }
                                                         }
                                                       else
@@ -27479,7 +27567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x10xxxxxx11101xxxxxxxxxx
                                                              fcvtn.  */
-                                                          return 3430;
+                                                          return 3438;
                                                         }
                                                     }
                                                 }
@@ -27622,7 +27710,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x00xxxxxx11111xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3487;
+                                                          return 3495;
                                                         }
                                                       else
                                                         {
@@ -27632,7 +27720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x001110010xxxxxx11111xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3489;
+                                                              return 3497;
                                                             }
                                                           else
                                                             {
@@ -27642,7 +27730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3491;
+                                                                  return 3499;
                                                                 }
                                                               else
                                                                 {
@@ -27650,7 +27738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalt.  */
-                                                                  return 3492;
+                                                                  return 3500;
                                                                 }
                                                             }
                                                         }
@@ -27924,7 +28012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx101110110xxxxx0x1111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3431;
+                                                          return 3439;
                                                         }
                                                     }
                                                 }
@@ -29316,7 +29404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl.  */
-                                                                      return 3424;
+                                                                      return 3432;
                                                                     }
                                                                   else
                                                                     {
@@ -29324,7 +29412,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl2.  */
-                                                                      return 3425;
+                                                                      return 3433;
                                                                     }
                                                                 }
                                                               else
@@ -29335,7 +29423,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl.  */
-                                                                      return 3420;
+                                                                      return 3428;
                                                                     }
                                                                   else
                                                                     {
@@ -29343,7 +29431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl2.  */
-                                                                      return 3421;
+                                                                      return 3429;
                                                                     }
                                                                 }
                                                             }
@@ -29357,7 +29445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl.  */
-                                                                      return 3426;
+                                                                      return 3434;
                                                                     }
                                                                   else
                                                                     {
@@ -29365,7 +29453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl2.  */
-                                                                      return 3427;
+                                                                      return 3435;
                                                                     }
                                                                 }
                                                               else
@@ -29376,7 +29464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl.  */
-                                                                      return 3422;
+                                                                      return 3430;
                                                                     }
                                                                   else
                                                                     {
@@ -29384,7 +29472,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl2.  */
-                                                                      return 3423;
+                                                                      return 3431;
                                                                     }
                                                                 }
                                                             }
@@ -31383,7 +31471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx1011101x1xxxxx111111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3432;
+                                                          return 3440;
                                                         }
                                                     }
                                                 }
@@ -33099,7 +33187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111100xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3488;
+                                                      return 3496;
                                                     }
                                                   else
                                                     {
@@ -33129,7 +33217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111101xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3490;
+                                                      return 3498;
                                                     }
                                                   else
                                                     {
@@ -33139,7 +33227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x000111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3493;
+                                                          return 3501;
                                                         }
                                                       else
                                                         {
@@ -33147,7 +33235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x100111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3494;
+                                                          return 3502;
                                                         }
                                                     }
                                                 }
@@ -33689,7 +33777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x010111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlallbb.  */
-                                                          return 3499;
+                                                          return 3507;
                                                         }
                                                       else
                                                         {
@@ -33697,7 +33785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x110111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3501;
+                                                          return 3509;
                                                         }
                                                     }
                                                   else
@@ -33728,7 +33816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x0101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlallbt.  */
-                                                      return 3500;
+                                                      return 3508;
                                                     }
                                                   else
                                                     {
@@ -33736,7 +33824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3502;
+                                                      return 3510;
                                                     }
                                                 }
                                             }
index 16fa47b1a6187e450c73d8c6667cd1678b5ca76d..70cd3ffb6e0000835f88fbdffdf53ff8cb40974c 100644 (file)
@@ -2863,6 +2863,12 @@ static const aarch64_feature_set aarch64_feature_sme_f16f16_f8f16 =
   AARCH64_FEATURES (2, SME_F16F16_F8F16, SME2);
 static const aarch64_feature_set aarch64_feature_sme_f16f16 =
   AARCH64_FEATURES (2, SME_F16F16, SME2);
+static const aarch64_feature_set aarch64_feature_sve2p1_sme =
+  AARCH64_FEATURES (2, SVE2p1_SME, SVE);
+static const aarch64_feature_set aarch64_feature_sve2p1_sme2 =
+  AARCH64_FEATURES (2, SVE2p1_SME2, SVE);
+static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
+  AARCH64_FEATURES (2, SVE2p1_SME2p1, SVE);
 
 #define CORE           &aarch64_feature_v8
 #define FP             &aarch64_feature_fp
@@ -2954,6 +2960,9 @@ static const aarch64_feature_set aarch64_feature_sme_f16f16 =
 #define SME_F8F16      &aarch64_feature_sme_f8f16
 #define SME_F16F16_F8F16 &aarch64_feature_sme_f16f16_f8f16
 #define SME_F16F16     &aarch64_feature_sme_f16f16
+#define SVE2p1_SME     &aarch64_feature_sve2p1_sme
+#define SVE2p1_SME2    &aarch64_feature_sve2p1_sme2
+#define SVE2p1_SME2p1  &aarch64_feature_sve2p1_sme2p1
 
 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL }
@@ -3190,6 +3199,24 @@ static const aarch64_feature_set aarch64_feature_sme_f16f16 =
 #define SME_F16F16_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
   { NAME, OPCODE, MASK, CLASS, OP, SME_F16F16, OPS, QUALS, \
     FLAGS | F_STRICT, 0, TIED, NULL }
+#define SVE2p1_SME_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME, OPS, QUALS, \
+    F_STRICT | FLAGS, 0, TIED, NULL }
+#define SVE2p1_SME_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME, OPS, QUALS, \
+    F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL }
+#define SVE2p1_SME2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2, OPS, QUALS, \
+    F_STRICT | FLAGS, 0, TIED, NULL }
+#define SVE2p1_SME2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2, OPS, QUALS, \
+    F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL }
+#define SVE2p1_SME2p1_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2p1, OPS, QUALS, \
+    F_STRICT | FLAGS, 0, TIED, NULL }
+#define SVE2p1_SME2p1_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2p1, OPS, QUALS, \
+    F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL }
 
 #define MOPS_CPY_OP1_OP2_PME_INSN(NAME, OPCODE, MASK, FLAGS, CONSTRAINTS) \
   MOPS_INSN (NAME, OPCODE, MASK, 0, \
@@ -5825,42 +5852,42 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME_INSN ("ldr", 0xe1000000, 0xffff9c10, sme_ldr, 0, OP2 (SME_ZA_array_off4, SME_ADDR_RI_U4xVL), {}, 0, 1),
   SME_INSN ("str", 0xe1200000, 0xffff9c10, sme_str, 0, OP2 (SME_ZA_array_off4, SME_ADDR_RI_U4xVL), {}, 0, 1),
 
-  SME_INSNC ("revd", 0x52e8000, 0xffffe000, sme_misc, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_QMQ, 0, C_SCAN_MOVPRFX, 0),
-  SME_INSNC ("sclamp", 0x4400c000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
-  SME_INSNC ("uclamp", 0x4400c400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
-  SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_Pd, SVE_Pg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
-  SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_PNd, SVE_PNg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
+  SVE2p1_SME_INSNC ("revd", 0x052e8000, 0xffffe000, sme_misc, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_QMQ, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME_INSNC ("sclamp", 0x4400c000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME_INSNC ("uclamp", 0x4400c400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_Pd, SVE_Pg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
+  SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_PNd, SVE_PNg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
 
   /* Added in SME2, but part of the prefetch hint space and available
      without special command-line flags.  */
   CORE_INSN ("rprfm", 0xf8a04818, 0xffe04c18, sme_misc, 0, OP3 (RPRFMOP, Rm, SIMD_ADDR_SIMPLE), OP_SVE_UXU, 0),
 
   /* SME2 extensions to SVE2.  */
-  SME2_INSNC ("bfmlslb", 0x64e06000, 0xffe0f400, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_11_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("bfmlslb", 0x64e0a000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("bfmlslt", 0x64e06400, 0xffe0f400, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_11_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("bfmlslt", 0x64e0a400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("fdot", 0x64204000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("fdot", 0x64208000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("fclamp", 0x64202400, 0xff20fc00, sme_size_22_hsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_HSD, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("sdot", 0x4480c800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("sdot", 0x4400c800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSN ("sqcvtn", 0x45314000, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
-  SME2_INSN ("sqcvtun", 0x45315000, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
-  SME2_INSN ("sqrshrn", 0x45b02800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
-  SME2_INSN ("sqrshrun", 0x45b00800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
-  SME2_INSNC ("udot", 0x4480cc00, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSNC ("udot", 0x4400cc00, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
-  SME2_INSN ("uqcvtn", 0x45314800, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
-  SME2_INSN ("uqrshrn", 0x45b03800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
-  SME2_INSN ("whilege", 0x25205010, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilegt", 0x25205011, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilehi", 0x25205811, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilehs", 0x25205810, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilele", 0x25205411, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilelo", 0x25205c10, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilels", 0x25205c11, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
-  SME2_INSN ("whilelt", 0x25205410, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSNC ("bfmlslb", 0x64e06000, 0xffe0f400, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_11_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("bfmlslb", 0x64e0a000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("bfmlslt", 0x64e06400, 0xffe0f400, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_11_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("bfmlslt", 0x64e0a400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("fdot", 0x64204000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("fdot", 0x64208000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("fclamp", 0x64202400, 0xff20fc00, sme_size_22_hsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_HSD, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("sdot", 0x4480c800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("sdot", 0x4400c800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSN ("sqcvtn", 0x45314000, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
+  SVE2p1_SME2_INSN ("sqcvtun", 0x45315000, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
+  SVE2p1_SME2_INSN ("sqrshrn", 0x45b02800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
+  SVE2p1_SME2_INSN ("sqrshrun", 0x45b00800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
+  SVE2p1_SME2_INSNC ("udot", 0x4480cc00, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_19_INDEX), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSNC ("udot", 0x4400cc00, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0, C_SCAN_MOVPRFX, 0),
+  SVE2p1_SME2_INSN ("uqcvtn", 0x45314800, 0xfffffc20, sve_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0),
+  SVE2p1_SME2_INSN ("uqrshrn", 0x45b03800, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0),
+  SVE2p1_SME2_INSN ("whilege", 0x25205010, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilegt", 0x25205011, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilehi", 0x25205811, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilehs", 0x25205810, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilele", 0x25205411, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilelo", 0x25205c10, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilels", 0x25205c11, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilelt", 0x25205410, 0xff20fc11, sme_size_22, 0, OP3 (SME_Pdx2, Rn, Rm), OP_SVE_VXX_BHSD, 0, 0),
 
   /* SME2 extensions to SME.  */
   SME2_INSN ("add", 0xc1a01c10, 0xffbf9c38, sme_int_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VVV_SD, F_OD (2), 0),
@@ -5898,7 +5925,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("bfvdot", 0xc1500018, 0xfff09038, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2), OP_SVE_SHH, F_OD (2), 0),
   SME2_INSN ("bmopa", 0x80800008, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SVE_SMMSS, 0, 0),
   SME2_INSN ("bmops", 0x80800018, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SVE_SMMSS, 0, 0),
-  SME2_INSN ("cntp", 0x25208200, 0xff3ffa00, sme_size_22, 0, OP3 (Rd, SME_PNn, SME_VLxN_10), OP_SVE_XV_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("cntp", 0x25208200, 0xff3ffa00, sme_size_22, 0, OP3 (Rd, SME_PNn, SME_VLxN_10), OP_SVE_XV_BHSD, 0, 0),
   SME2_INSN ("fadd", 0xc1a01c00, 0xffbf9c38, sme_fp_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VVV_SD, F_OD (2), 0),
   SME2_INSN ("fadd", 0xc1a11c00, 0xffbf9c78, sme_fp_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VVV_SD, F_OD (4), 0),
   SME2_INSN ("fclamp", 0xc120c000, 0xff20fc01, sme_size_22_hsd, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_HSD, 0, 0),
@@ -5970,68 +5997,68 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("fsub", 0xc1a01c08, 0xffbf9c38, sme_fp_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VVV_SD, F_OD (2), 0),
   SME2_INSN ("fsub", 0xc1a11c08, 0xffbf9c78, sme_fp_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VVV_SD, F_OD (4), 0),
   SME2_INSN ("fvdot", 0xc1500008, 0xfff09038, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2), OP_SVE_SHH, F_OD (2), 0),
-  SME2_INSN ("ld1b", 0xa0400000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ld1b", 0xa0408000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1b", 0xa0400000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1b", 0xa0408000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ld1b", 0xa1400000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ld1b", 0xa1408000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ld1b", 0xa0000000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ld1b", 0xa0008000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1b", 0xa0000000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1b", 0xa0008000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ld1b", 0xa1000000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ld1b", 0xa1008000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ld1d", 0xa0406000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ld1d", 0xa040e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1d", 0xa0406000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1d", 0xa040e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ld1d", 0xa1406000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ld1d", 0xa140e000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ld1d", 0xa0006000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ld1d", 0xa000e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1d", 0xa0006000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1d", 0xa000e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ld1d", 0xa1006000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ld1d", 0xa100e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ld1h", 0xa0402000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ld1h", 0xa040a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1h", 0xa0402000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1h", 0xa040a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ld1h", 0xa1402000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ld1h", 0xa140a000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ld1h", 0xa0002000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ld1h", 0xa000a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1h", 0xa0002000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1h", 0xa000a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ld1h", 0xa1002000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ld1h", 0xa100a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ld1w", 0xa0404000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ld1w", 0xa040c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1w", 0xa0404000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1w", 0xa040c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ld1w", 0xa1404000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ld1w", 0xa140c000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ld1w", 0xa0004000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ld1w", 0xa000c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1w", 0xa0004000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ld1w", 0xa000c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ld1w", 0xa1004000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ld1w", 0xa100c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ldnt1b", 0xa0400001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ldnt1b", 0xa0408001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1b", 0xa0400001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1b", 0xa0408001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ldnt1b", 0xa1400008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ldnt1b", 0xa1408008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ldnt1b", 0xa0000001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ldnt1b", 0xa0008001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1b", 0xa0000001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1b", 0xa0008001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ldnt1b", 0xa1000008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
   SME2_INSN ("ldnt1b", 0xa1008008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
-  SME2_INSN ("ldnt1d", 0xa0406001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ldnt1d", 0xa040e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1d", 0xa0406001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1d", 0xa040e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ldnt1d", 0xa1406008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ldnt1d", 0xa140e008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ldnt1d", 0xa0006001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ldnt1d", 0xa000e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1d", 0xa0006001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1d", 0xa000e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ldnt1d", 0xa1006008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
   SME2_INSN ("ldnt1d", 0xa100e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
-  SME2_INSN ("ldnt1h", 0xa0402001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ldnt1h", 0xa040a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1h", 0xa0402001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1h", 0xa040a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ldnt1h", 0xa1402008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ldnt1h", 0xa140a008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ldnt1h", 0xa0002001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ldnt1h", 0xa000a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1h", 0xa0002001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1h", 0xa000a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ldnt1h", 0xa1002008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
   SME2_INSN ("ldnt1h", 0xa100a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
-  SME2_INSN ("ldnt1w", 0xa0404001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ldnt1w", 0xa040c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1w", 0xa0404001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1w", 0xa040c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ldnt1w", 0xa1404008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ldnt1w", 0xa140c008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ldnt1w", 0xa0004001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
-  SME2_INSN ("ldnt1w", 0xa000c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1w", 0xa0004001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+  SVE2p1_SME2_INSN ("ldnt1w", 0xa000c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ldnt1w", 0xa1004008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ldnt1w", 0xa100c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
   SME2_INSN ("ldr", 0xe11f8000, 0xfffffc1f, sme_misc, 0, OP2 (SME_ZT0, SIMD_ADDR_SIMPLE), {}, 0, 0),
@@ -6059,9 +6086,9 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("mova", 0xc0040400, 0xff3f1c78, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx4), OP_SVE_VV_BHSDQ, F_OD (4), 0),
   SME2_INSN ("movt", 0xc04e03e0, 0xffff8fe0, sme_misc, 0, OP2 (SME_ZT0_INDEX, Rt), OP_SVE_UX, 0, 0),
   SME2_INSN ("movt", 0xc04c03e0, 0xffff8fe0, sme_misc, 0, OP2 (Rt, SME_ZT0_INDEX), OP_SVE_XU, 0, 0),
-  SME2_INSN ("pext", 0x25207010, 0xff3ffc10, sme_size_22, 0, OP2 (SVE_Pd, SME_PNn3_INDEX2), OP_SVE_VU_BHSD, 0, 0),
-  SME2_INSN ("pext", 0x25207410, 0xff3ffe10, sme_size_22, 0, OP2 (SME_PdxN, SME_PNn3_INDEX1), OP_SVE_VU_BHSD, F_OD (2), 0),
-  SME2_INSN ("ptrue", 0x25207810, 0xff3ffff8, sme_size_22, 0, OP1 (SME_PNd3), OP_SVE_V_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("pext", 0x25207010, 0xff3ffc10, sme_size_22, 0, OP2 (SVE_Pd, SME_PNn3_INDEX2), OP_SVE_VU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("pext", 0x25207410, 0xff3ffe10, sme_size_22, 0, OP2 (SME_PdxN, SME_PNn3_INDEX1), OP_SVE_VU_BHSD, F_OD (2), 0),
+  SVE2p1_SME2_INSN ("ptrue", 0x25207810, 0xff3ffff8, sme_size_22, 0, OP1 (SME_PNd3), OP_SVE_V_BHSD, 0, 0),
   SME2_INSN ("sclamp", 0xc120c400, 0xff20fc01, sme_size_22, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
   SME2_INSN ("sclamp", 0xc120cc00, 0xff20fc03, sme_size_22, 0, OP3 (SME_Zdnx4, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
   SME2_INSN ("scvtf", 0xc122e000, 0xfffffc21, sve_misc, 0, OP2 (SME_Zdnx2, SME_Znx2), OP_SVE_SS, 0, 0),
@@ -6142,68 +6169,68 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("srshl", 0xc120aa20, 0xff30ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zm), OP_SVE_VVV_BHSD, 0, 1),
   SME2_INSN ("srshl", 0xc120b220, 0xff21ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zmx2), OP_SVE_VVV_BHSD, 0, 1),
   SME2_INSN ("srshl", 0xc120ba20, 0xff23ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zmx4), OP_SVE_VVV_BHSD, 0, 1),
-  SME2_INSN ("st1b", 0xa0600000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("st1b", 0xa0608000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1b", 0xa0600000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1b", 0xa0608000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
   SME2_INSN ("st1b", 0xa1600000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
   SME2_INSN ("st1b", 0xa1608000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("st1b", 0xa0200000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("st1b", 0xa0208000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1b", 0xa0200000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1b", 0xa0208000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
   SME2_INSN ("st1b", 0xa1200000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
   SME2_INSN ("st1b", 0xa1208000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("st1d", 0xa0606000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("st1d", 0xa060e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1d", 0xa0606000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1d", 0xa060e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
   SME2_INSN ("st1d", 0xa1606000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
   SME2_INSN ("st1d", 0xa160e000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("st1d", 0xa0206000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("st1d", 0xa020e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1d", 0xa0206000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1d", 0xa020e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
   SME2_INSN ("st1d", 0xa1206000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
   SME2_INSN ("st1d", 0xa120e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("st1h", 0xa0602000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("st1h", 0xa060a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1h", 0xa0602000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1h", 0xa060a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
   SME2_INSN ("st1h", 0xa1602000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
   SME2_INSN ("st1h", 0xa160a000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("st1h", 0xa0202000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("st1h", 0xa020a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1h", 0xa0202000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1h", 0xa020a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
   SME2_INSN ("st1h", 0xa1202000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
   SME2_INSN ("st1h", 0xa120a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("st1w", 0xa0604000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("st1w", 0xa060c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1w", 0xa0604000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1w", 0xa060c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
   SME2_INSN ("st1w", 0xa1604000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
   SME2_INSN ("st1w", 0xa160c000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("st1w", 0xa0204000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("st1w", 0xa020c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1w", 0xa0204000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("st1w", 0xa020c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
   SME2_INSN ("st1w", 0xa1204000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
   SME2_INSN ("st1w", 0xa120c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("stnt1b", 0xa0600001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("stnt1b", 0xa0608001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1b", 0xa0600001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1b", 0xa0608001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
   SME2_INSN ("stnt1b", 0xa1600008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
   SME2_INSN ("stnt1b", 0xa1608008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("stnt1b", 0xa0200001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("stnt1b", 0xa0208001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1b", 0xa0200001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1b", 0xa0208001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
   SME2_INSN ("stnt1b", 0xa1200008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
   SME2_INSN ("stnt1b", 0xa1208008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
-  SME2_INSN ("stnt1d", 0xa0606001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("stnt1d", 0xa060e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1d", 0xa0606001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1d", 0xa060e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
   SME2_INSN ("stnt1d", 0xa1606008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
   SME2_INSN ("stnt1d", 0xa160e008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("stnt1d", 0xa0206001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("stnt1d", 0xa020e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1d", 0xa0206001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1d", 0xa020e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
   SME2_INSN ("stnt1d", 0xa1206008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
   SME2_INSN ("stnt1d", 0xa120e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
-  SME2_INSN ("stnt1h", 0xa0602001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("stnt1h", 0xa060a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1h", 0xa0602001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1h", 0xa060a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
   SME2_INSN ("stnt1h", 0xa1602008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
   SME2_INSN ("stnt1h", 0xa160a008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("stnt1h", 0xa0202001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("stnt1h", 0xa020a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1h", 0xa0202001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1h", 0xa020a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
   SME2_INSN ("stnt1h", 0xa1202008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
   SME2_INSN ("stnt1h", 0xa120a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
-  SME2_INSN ("stnt1w", 0xa0604001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("stnt1w", 0xa060c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1w", 0xa0604001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1w", 0xa060c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
   SME2_INSN ("stnt1w", 0xa1604008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
   SME2_INSN ("stnt1w", 0xa160c008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("stnt1w", 0xa0204001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
-  SME2_INSN ("stnt1w", 0xa020c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1w", 0xa0204001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+  SVE2p1_SME2_INSN ("stnt1w", 0xa020c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
   SME2_INSN ("stnt1w", 0xa1204008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
   SME2_INSN ("stnt1w", 0xa120c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
   SME2_INSN ("str", 0xe13f8000, 0xfffffc1f, sme_misc, 0, OP2 (SME_ZT0, SIMD_ADDR_SIMPLE), {}, 0, 0),
@@ -6318,14 +6345,14 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("uzp", 0xc120d401, 0xffe0fc01, sme_misc, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_QQQ, 0, 0),
   SME2_INSN ("uzp", 0xc136e002, 0xff3ffc63, sme_size_22, 0, OP2 (SME_Zdnx4, SME_Znx4), OP_SVE_VV_BHSD, 0, 0),
   SME2_INSN ("uzp", 0xc137e002, 0xfffffc63, sme_misc, 0, OP2 (SME_Zdnx4, SME_Znx4), OP_SVE_QQ, 0, 0),
-  SME2_INSN ("whilege", 0x25204010, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilegt", 0x25204018, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilehi", 0x25204818, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilehs", 0x25204810, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilele", 0x25204418, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilelo", 0x25204c10, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilels", 0x25204c18, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-  SME2_INSN ("whilelt", 0x25204410, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilege", 0x25204010, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilegt", 0x25204018, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilehi", 0x25204818, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilehs", 0x25204810, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilele", 0x25204418, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilelo", 0x25204c10, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilels", 0x25204c18, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
+  SVE2p1_SME2_INSN ("whilelt", 0x25204410, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
   SME2_INSN ("zero", 0xc0480001, 0xffffffff, sme_misc, 0, OP1 (SME_ZT0_LIST), {}, 0, 0),
   SME2_INSN ("zip", 0xc120d000, 0xff20fc01, sme_size_22, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
   SME2_INSN ("zip", 0xc120d400, 0xffe0fc01, sme_misc, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_QQQ, 0, 0),
@@ -6766,54 +6793,63 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME_F16F16_INSN("fcvtl", 0xc1a0e001, 0xfffffc01, sme_misc, 0, OP2 (SME_Zdnx2, SVE_Zn), OP_SVE_SH, F_OD (2), 0),
 
 /* SVE2p1 Instructions.  */
-  SVE2p1_INSN("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("andqv",0x041e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("smaxqv",0x040c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("sminqv",0x040e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("umaxqv",0x040d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("uminqv",0x040f2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("eorqv",0x041d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("faddqv",0x6410a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("fmaxnmqv",0x6414a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("fmaxqv",0x6416a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
-
-  SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0),
-  SVE2p1_INSN("orqv",0x041c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
-  SVE2p1_INSN("tblq",0x4400f800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_ZnxN, SVE_Zm_16), OP_SVE_VVV_BHSD, F_OD(1), 0),
-  SVE2p1_INSN("tbxq",0x05203400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
-  SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1),
-  SVE2p1_INSN("uzpq1",0x4400e800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
-  SVE2p1_INSN("uzpq2",0x4400ec00, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
-  SVE2p1_INSN("zipq1",0x4400e000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
-  SVE2p1_INSN("zipq2",0x4400e400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
-
-  SVE2p1_INSN("pmov",0x052a3800, 0xfffffc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn0_INDEX), OP_SVE_BU, 0, 0),
-  SVE2p1_INSN("pmov",0x052c3800, 0xfffdfc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn1_17_INDEX), OP_SVE_HU, 0, 0),
-  SVE2p1_INSN("pmov",0x05683800, 0xfff9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn2_18_INDEX), OP_SVE_SU, 0, 0),
-  SVE2p1_INSN("pmov",0x05a83800, 0xffb9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn3_22_INDEX), OP_SVE_DU, 0, 0),
-
-  SVE2p1_INSN("pmov",0x052b3800, 0xfffffe00, sve_misc, 0, OP2 (SVE_Zd0_INDEX, SVE_Pg4_5), OP_SVE_UB, 0, 0),
-  SVE2p1_INSN("pmov",0x052d3800, 0xfffdfe00, sve_misc, 0, OP2 (SVE_Zd1_17_INDEX, SVE_Pg4_5), OP_SVE_UH, 0, 0),
-  SVE2p1_INSN("pmov",0x05693800, 0xfff9fe00, sve_misc, 0, OP2 (SVE_Zd2_18_INDEX, SVE_Pg4_5), OP_SVE_US, 0, 0),
-  SVE2p1_INSN("pmov",0x05a93800, 0xffb9fe00, sve_misc, 0, OP2 (SVE_Zd3_22_INDEX, SVE_Pg4_5), OP_SVE_UD, 0, 0),
+  SVE2p1_SME2p1_INSN("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("andqv",0x041e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("smaxqv",0x040c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("sminqv",0x040e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("umaxqv",0x040d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("uminqv",0x040f2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("eorqv",0x041d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("faddqv",0x6410a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("fmaxnmqv",0x6414a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("fmaxqv",0x6416a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
+
+  SVE2p1_SME2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0),
+  SVE2p1_SME2p1_INSN("orqv",0x041c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+  SVE2p1_SME2p1_INSN("tblq",0x4400f800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_ZnxN, SVE_Zm_16), OP_SVE_VVV_BHSD, F_OD(1), 0),
+  SVE2p1_SME2p1_INSN("tbxq",0x05203400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+  SVE2p1_SME2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1),
+  SVE2p1_SME2p1_INSN("uzpq1",0x4400e800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+  SVE2p1_SME2p1_INSN("uzpq2",0x4400ec00, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+  SVE2p1_SME2p1_INSN("zipq1",0x4400e000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+  SVE2p1_SME2p1_INSN("zipq2",0x4400e400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+
+  SVE2p1_SME2p1_INSN("pmov",0x052a3800, 0xfffffc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn0_INDEX), OP_SVE_BU, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x052c3800, 0xfffdfc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn1_17_INDEX), OP_SVE_HU, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x05683800, 0xfff9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn2_18_INDEX), OP_SVE_SU, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x05a83800, 0xffb9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn3_22_INDEX), OP_SVE_DU, 0, 0),
+
+  SVE2p1_SME2p1_INSN("pmov",0x052b3800, 0xfffffe00, sve_misc, 0, OP2 (SVE_Zd0_INDEX, SVE_Pg4_5), OP_SVE_UB, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x052d3800, 0xfffdfe00, sve_misc, 0, OP2 (SVE_Zd1_17_INDEX, SVE_Pg4_5), OP_SVE_UH, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x05693800, 0xfff9fe00, sve_misc, 0, OP2 (SVE_Zd2_18_INDEX, SVE_Pg4_5), OP_SVE_US, 0, 0),
+  SVE2p1_SME2p1_INSN("pmov",0x05a93800, 0xffb9fe00, sve_misc, 0, OP2 (SVE_Zd3_22_INDEX, SVE_Pg4_5), OP_SVE_UD, 0, 0),
+
+  SVE2p1_INSN("ld1d",0xa5902000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_QZU, F_OD(1), 0),
+  SVE2p1_INSN("ld1d",0xa5808000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL3), OP_SVE_QZU, F_OD(1), 0),
+  SVE2p1_INSN("ld1w",0xa5102000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_QZU, F_OD(1), 0),
+  SVE2p1_INSN("ld1w",0xa5008000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL2), OP_SVE_QZU, F_OD(1), 0),
+  SVE2p1_INSN("st1d",0xe5c0e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_QUU, F_OD(1), 0),
+  SVE2p1_INSN("st1d",0xe5c04000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL3), OP_SVE_QUU, F_OD(1), 0),
+  SVE2p1_INSN("st1w",0xe500e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_QUU, F_OD(1), 0),
+  SVE2p1_INSN("st1w",0xe5004000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL2), OP_SVE_QUU, F_OD(1), 0),
 
   SVE2p1_INSN("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QZD, F_OD (1), 0),
-  SVE2p1_INSN("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, F_OD (2), 0),
-  SVE2p1_INSN("ld3q",0xa510e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QZU, F_OD (3), 0),
-  SVE2p1_INSN("ld4q",0xa590e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QZU, F_OD (4), 0),
-  SVE2p1_INSN("ld2q",0xa4a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (2), 0),
-  SVE2p1_INSN("ld3q",0xa5208000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (3), 0),
-  SVE2p1_INSN("ld4q",0xa5a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (4), 0),
+  SVE2p1_SME2p1_INSN("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, F_OD (2), 0),
+  SVE2p1_SME2p1_INSN("ld3q",0xa510e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QZU, F_OD (3), 0),
+  SVE2p1_SME2p1_INSN("ld4q",0xa590e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QZU, F_OD (4), 0),
+  SVE2p1_SME2p1_INSN("ld2q",0xa4a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (2), 0),
+  SVE2p1_SME2p1_INSN("ld3q",0xa5208000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (3), 0),
+  SVE2p1_SME2p1_INSN("ld4q",0xa5a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QZU, F_OD (4), 0),
 
   SVE2p1_INSN("st1q",0xe4202000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QUD, F_OD (1), 0),
-  SVE2p1_INSN("st2q",0xe4400000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QUU, F_OD (2), 0),
-  SVE2p1_INSN("st3q",0xe4800000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QUU, F_OD (3), 0),
-  SVE2p1_INSN("st4q",0xe4c00000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QUU, F_OD (4), 0),
-  SVE2p1_INSN("st2q",0xe4600000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (2), 0),
-  SVE2p1_INSN("st3q",0xe4a00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (3), 0),
-  SVE2p1_INSN("st4q",0xe4e00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (4), 0),
+  SVE2p1_SME2p1_INSN("st2q",0xe4400000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QUU, F_OD (2), 0),
+  SVE2p1_SME2p1_INSN("st3q",0xe4800000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QUU, F_OD (3), 0),
+  SVE2p1_SME2p1_INSN("st4q",0xe4c00000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QUU, F_OD (4), 0),
+  SVE2p1_SME2p1_INSN("st2q",0xe4600000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (2), 0),
+  SVE2p1_SME2p1_INSN("st3q",0xe4a00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (3), 0),
+  SVE2p1_SME2p1_INSN("st4q",0xe4e00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL4), OP_SVE_QUU, F_OD (4), 0),
 
   FP8_INSN("bf1cvtl", 0x2ea17800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2_HB_LOWER, 0),
   FP8_INSN("bf1cvtl2", 0x6ea17800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2_HB_FULL, 0),