public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] aarch64: Add the SME2 MOVA instructions
@ 2023-03-30 10:14 Richard Sandiford
  0 siblings, 0 replies; only message in thread
From: Richard Sandiford @ 2023-03-30 10:14 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d8773a8a5f5614f508d9919cb7626ae0497b8141

commit d8773a8a5f5614f508d9919cb7626ae0497b8141
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Mar 30 11:09:12 2023 +0100

    aarch64: Add the SME2 MOVA instructions
    
    SME2 defines new MOVA instructions for moving multiple registers
    to and from ZA.  As with SME, the instructions are also available
    through MOV aliases.
    
    One notable feature of these instructions (and many other SME2
    instructions) is that some register lists must start at a multiple
    of the list's size.  The patch uses the general error "start register
    out of range" when this constraint isn't met, rather than an error
    specifically about multiples.  This ensures that the error is
    consistent between these simple consecutive lists and later
    strided lists, for which the requirements aren't a simple multiple.

Diff:
---
 gas/config/tc-aarch64.c                      |   8 +
 gas/testsuite/gas/aarch64/legacy_reg_names.l |   2 +-
 gas/testsuite/gas/aarch64/sme-3-illegal.l    |   2 +-
 gas/testsuite/gas/aarch64/sme2-1-invalid.d   |   3 +
 gas/testsuite/gas/aarch64/sme2-1-invalid.l   | 327 +++++++++++++
 gas/testsuite/gas/aarch64/sme2-1-invalid.s   | 323 ++++++++++++
 gas/testsuite/gas/aarch64/sme2-1-noarch.d    |   3 +
 gas/testsuite/gas/aarch64/sme2-1-noarch.l    | 289 +++++++++++
 gas/testsuite/gas/aarch64/sme2-1.d           | 305 ++++++++++++
 gas/testsuite/gas/aarch64/sme2-1.s           | 338 +++++++++++++
 include/opcode/aarch64.h                     |  10 +
 opcodes/aarch64-asm-2.c                      |  34 +-
 opcodes/aarch64-asm.c                        |  50 +-
 opcodes/aarch64-asm.h                        |   2 +
 opcodes/aarch64-dis-2.c                      | 702 ++++++++++++++++-----------
 opcodes/aarch64-dis.c                        |  60 ++-
 opcodes/aarch64-dis.h                        |   2 +
 opcodes/aarch64-opc-2.c                      |   8 +
 opcodes/aarch64-opc.c                        |  79 ++-
 opcodes/aarch64-opc.h                        |   6 +
 opcodes/aarch64-tbl.h                        |  43 ++
 21 files changed, 2282 insertions(+), 314 deletions(-)

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 8d5cc5194de..bf9771d1010 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -6712,6 +6712,10 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 
 	case AARCH64_OPND_SVE_ZnxN:
 	case AARCH64_OPND_SVE_ZtxN:
+	case AARCH64_OPND_SME_Zdnx2:
+	case AARCH64_OPND_SME_Zdnx4:
+	case AARCH64_OPND_SME_Znx2:
+	case AARCH64_OPND_SME_Znx4:
 	  reg_type = REG_TYPE_Z;
 	  goto vector_reg_list;
 
@@ -7708,7 +7712,9 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	  break;
 
 	case AARCH64_OPND_SME_ZA_HV_idx_src:
+	case AARCH64_OPND_SME_ZA_HV_idx_srcxN:
 	case AARCH64_OPND_SME_ZA_HV_idx_dest:
+	case AARCH64_OPND_SME_ZA_HV_idx_destxN:
 	case AARCH64_OPND_SME_ZA_HV_idx_ldstr:
 	  if (operands[i] == AARCH64_OPND_SME_ZA_HV_idx_ldstr
 	      ? !parse_sme_za_hv_tiles_operand_with_braces (&str,
@@ -7727,6 +7733,8 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	  info->imm.value = val;
 	  break;
 
+	case AARCH64_OPND_SME_ZA_array_off3_0:
+	case AARCH64_OPND_SME_ZA_array_off3_5:
 	case AARCH64_OPND_SME_ZA_array_off4:
 	  if (!parse_dual_indexed_reg (&str, REG_TYPE_ZA,
 				       &info->indexed_za, &qualifier, 0))
diff --git a/gas/testsuite/gas/aarch64/legacy_reg_names.l b/gas/testsuite/gas/aarch64/legacy_reg_names.l
index f3dde54e418..ca5f86cdfe9 100644
--- a/gas/testsuite/gas/aarch64/legacy_reg_names.l
+++ b/gas/testsuite/gas/aarch64/legacy_reg_names.l
@@ -1,4 +1,4 @@
 [^:]*: Assembler messages:
 [^:]*:5: Error: indexed vector register expected at operand 1 -- `dup v0.b,v1.b\[7\]'
-[^:]*:6: Error: expected a register at operand 1 -- `mov r0.w,r1.w'
+[^:]*:6: Error: expected a register or register list at operand 1 -- `mov r0.w,r1.w'
 [^:]*:7: Error: expected an Advanced SIMD vector register at operand 2 -- `dup s0,s1\[3\]'
diff --git a/gas/testsuite/gas/aarch64/sme-3-illegal.l b/gas/testsuite/gas/aarch64/sme-3-illegal.l
index f5fb169b78a..dd1bf7922f7 100644
--- a/gas/testsuite/gas/aarch64/sme-3-illegal.l
+++ b/gas/testsuite/gas/aarch64/sme-3-illegal.l
@@ -3,7 +3,7 @@
 [^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za2v\.h\[w12,#0\],p0/m,z0.h'
 [^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za4v\.s\[w12,#0\],p0/m,z0.s'
 [^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za8v\.d\[w12,#0\],p0/m,z0.d'
-[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `mova za16v\.q\[w12\],p0/m,z0.q'
+[^:]*:[0-9]+: Error: expected a register or register list at operand 1 -- `mova za16v\.q\[w12\],p0/m,z0.q'
 [^:]*:[0-9]+: Error: immediate offset out of range 0 to 15 at operand 1 -- `mova za0v\.b\[w15,#16\],p7/m,z31.b'
 [^:]*:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 1 -- `mova za1v\.h\[w15,#8\],p7/m,z31.h'
 [^:]*:[0-9]+: Error: immediate offset out of range 0 to 3 at operand 1 -- `mova za3v\.s\[w15,#4\],p7/m,z31.s'
diff --git a/gas/testsuite/gas/aarch64/sme2-1-invalid.d b/gas/testsuite/gas/aarch64/sme2-1-invalid.d
new file mode 100644
index 00000000000..5ca0674ab0b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-1-invalid.s
+#error_output: sme2-1-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-1-invalid.l b/gas/testsuite/gas/aarch64/sme2-1-invalid.l
new file mode 100644
index 00000000000..d8d2d77c0a4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1-invalid.l
@@ -0,0 +1,327 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `mov 0,za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: expected a register at operand 2 -- `mov {z0\.b-z1\.b},0'
+[^ :]+:[0-9]+: Error: operand mismatch -- `mov {z0\.d-z1\.d},za\.q\[w8,0\]'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	mov {z0\.d-z1\.d}, za\.d\[w8, 0\]
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	mov {z0\.b-z1\.b}, za\.b\[w8, 0\]
+[^ :]+:[0-9]+: Info:    	mov {z0\.h-z1\.h}, za\.h\[w8, 0\]
+[^ :]+:[0-9]+: Info:    	mov {z0\.s-z1\.s}, za\.s\[w8, 0\]
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.d-z2\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 2 -- `mov {z0\.d-z1\.d},za\.d\[w7,0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 2 -- `mov {z0\.d-z1\.d},za\.d\[w12,0\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 2 -- `mov {z0\.d-z1\.d},za\.d\[w8,-1\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 2 -- `mov {z0\.d-z1\.d},za\.d\[w8,8\]'
+[^ :]+:[0-9]+: Error: operand mismatch -- `mov {z0\.d-z3\.d},za\.q\[w8,0\]'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	mov {z0\.d-z3\.d}, za\.d\[w8, 0\]
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	mov {z0\.b-z3\.b}, za\.b\[w8, 0\]
+[^ :]+:[0-9]+: Info:    	mov {z0\.h-z3\.h}, za\.h\[w8, 0\]
+[^ :]+:[0-9]+: Info:    	mov {z0\.s-z3\.s}, za\.s\[w8, 0\]
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.d-z4\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z2\.d-z5\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z3\.d-z6\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 2 -- `mov {z0\.d-z3\.d},za\.d\[w7,0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 2 -- `mov {z0\.d-z3\.d},za\.d\[w12,0\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 2 -- `mov {z0\.d-z3\.d},za\.d\[w8,-1\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 2 -- `mov {z0\.d-z3\.d},za\.d\[w8,8\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.b-z2\.b},za0h\.b\[w8,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.b-z1\.b},za1h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.b-z1\.b},za1v\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w11,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w16,0:1\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,-2:-1\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,1:2\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,15:16\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,16:17\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,0:1,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.b-z1\.b},za0h\.b\[w12,0:1,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.b-z1\.b},za0\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.h-z2\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.h-z1\.h},za2h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.h-z1\.h},za2v\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w11,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w16,0:1\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,-2:-1\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,1:2\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,7:8\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,8:9\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,0:1,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.h-z1\.h},za0h\.h\[w12,0:1,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.h-z1\.h},za0\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.s-z2\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.s-z1\.s},za4h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.s-z1\.s},za4v\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w11,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w16,0:1\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,-2:-1\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,1:2\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,3:4\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,4:5\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,0:1,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.s-z1\.s},za0h\.s\[w12,0:1,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.s-z1\.s},za0\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.d-z2\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.d-z1\.d},za8h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.d-z1\.d},za8v\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w11,0:1\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w16,0:1\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,-2:-1\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,1:2\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,2:3\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 2 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,0:1,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `mov {z0\.d-z1\.d},za0h\.d\[w12,0:1,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.d-z1\.d},za0\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.b-z4\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z2\.b-z5\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z3\.b-z6\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.b-z3\.b},za1h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.b-z3\.b},za1v\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w11,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w16,0:3\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,-4:-1\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,1:4\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,2:5\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,3:6\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,13:16\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,14:17\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,15:18\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,16:19\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,0:3,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.b-z3\.b},za0h\.b\[w12,0:3,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.b-z3\.b},za0\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.h-z2\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z2\.h-z5\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z3\.h-z6\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.h-z3\.h},za2h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.h-z3\.h},za2v\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w11,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w16,0:3\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,-4:-1\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,1:2\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,5:8\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,6:9\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,7:10\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,8:11\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,0:3,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.h-z3\.h},za0h\.h\[w12,0:3,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.h-z3\.h},za0\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.s-z2\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z2\.s-z5\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z3\.s-z6\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.s-z3\.s},za4h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.s-z3\.s},za4v\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w11,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w16,0:3\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,-4:-1\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,1:4\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,2:5\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,3:6\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,4:7\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,0:3,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.s-z3\.s},za0h\.s\[w12,0:3,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.s-z3\.s},za0\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z1\.d-z2\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z2\.d-z5\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `mov {z3\.d-z6\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.d-z3\.d},za8h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 2 -- `mov {z0\.d-z3\.d},za8v\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w11,0:3\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w16,0:3\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,-4:-1\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,1:4\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,2:5\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,3:6\]'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,4:7\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 2 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,0:2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,0:3,vgx2\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `mov {z0\.d-z3\.d},za0h\.d\[w12,0:3,vgx4\]'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 2 -- `mov {z0\.d-z3\.d},za0\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `mova 0,za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: expected a register at operand 2 -- `mova {z0\.b-z1\.b},0'
+[^ :]+:[0-9]+: Error: operand mismatch -- `mova za\.q\[w8,0\],{z0\.q-z1\.q}'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	mova za\.b\[w8, 0\], {z0\.b-z1\.b}
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	mova za\.h\[w8, 0\], {z0\.h-z1\.h}
+[^ :]+:[0-9]+: Info:    	mova za\.s\[w8, 0\], {z0\.s-z1\.s}
+[^ :]+:[0-9]+: Info:    	mova za\.d\[w8, 0\], {z0\.d-z1\.d}
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `mova za\.d\[w7,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `mova za\.d\[w12,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 1 -- `mova za\.d\[w8,-1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 1 -- `mova za\.d\[w8,8\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za\.d\[w8,0\],{z1\.d-z2\.d}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `mova za\.q\[w8,0\],{z0\.q-z3\.q}'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	mova za\.b\[w8, 0\], {z0\.b-z3\.b}
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	mova za\.h\[w8, 0\], {z0\.h-z3\.h}
+[^ :]+:[0-9]+: Info:    	mova za\.s\[w8, 0\], {z0\.s-z3\.s}
+[^ :]+:[0-9]+: Info:    	mova za\.d\[w8, 0\], {z0\.d-z3\.d}
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `mova za\.d\[w7,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `mova za\.d\[w12,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 1 -- `mova za\.d\[w8,-1\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 7 at operand 1 -- `mova za\.d\[w8,8\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za\.d\[w8,0\],{z1\.d-z4\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za\.d\[w8,0\],{z2\.d-z5\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za\.d\[w8,0\],{z3\.d-z6\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.b\[w8,0:1\],{z1\.b-z2\.b}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za1h\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za1v\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.b\[w11,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.b\[w16,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,-2:-1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.b\[w12,1:2\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,15:16\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,16:17\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0:2\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0:3\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.b\[w12,0:1,vgx2\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.b\[w12,0:1,vgx4\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.h\[w12,0:1\],{z1\.h-z2\.h}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za2h\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za2v\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.h\[w11,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.h\[w16,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,-2:-1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.h\[w12,1:2\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,7:8\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,8:9\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:2\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:3\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.h\[w12,0:1,vgx2\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.h\[w12,0:1,vgx4\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.s\[w12,0:1\],{z1\.s-z2\.s}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za4h\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za4v\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.s\[w11,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.s\[w16,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,-2:-1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.s\[w12,1:2\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,3:4\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,4:5\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:2\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:3\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.s\[w12,0:1,vgx2\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.s\[w12,0:1,vgx4\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.d\[w12,0:1\],{z1\.d-z2\.d}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za8h\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za8v\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.d\[w11,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.d\[w16,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,-2:-1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,1:2\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,2:3\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:2\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:3\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.d\[w12,0:1,vgx2\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.d\[w12,0:1,vgx4\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.b\[w12,0:3\],{z1\.b-z4\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.b\[w12,0:3\],{z2\.b-z5\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.b\[w12,0:3\],{z3\.b-z6\.b}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za1h\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za1v\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.b\[w11,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.b\[w16,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,-4:-1\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.b\[w12,1:4\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,2:5\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.b\[w12,3:6\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.b\[w12,13:16\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,14:17\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,15:18\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 14 at operand 1 -- `mova za0h\.b\[w12,16:19\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.b\[w12,0:1\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0:2\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0:3,vgx2\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.b\[w12,0:3,vgx4\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:3\],{z1\.h-z2\.h}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.h\[w12,0:3\],{z2\.h-z5\.h}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.h\[w12,0:3\],{z3\.h-z6\.h}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za2h\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za2v\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.h\[w11,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.h\[w16,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,-4:-1\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.h\[w12,1:2\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.h\[w12,5:8\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,6:9\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,7:10\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 6 at operand 1 -- `mova za0h\.h\[w12,8:11\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.h\[w12,0:1\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:2\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:3,vgx2\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.h\[w12,0:3,vgx4\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:3\],{z1\.s-z2\.s}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.s\[w12,0:3\],{z2\.s-z5\.s}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.s\[w12,0:3\],{z3\.s-z6\.s}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za4h\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za4v\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.s\[w11,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.s\[w16,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,-4:-1\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 2 at operand 1 -- `mova za0h\.s\[w12,1:4\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,2:5\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,3:6\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 2 at operand 1 -- `mova za0h\.s\[w12,4:7\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.s\[w12,0:1\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:2\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:3,vgx2\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.s\[w12,0:3,vgx4\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:3\],{z1\.d-z2\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.d\[w12,0:3\],{z2\.d-z5\.d}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `mova za0h\.d\[w12,0:3\],{z3\.d-z6\.d}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za8h\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `mova za8v\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.d\[w11,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w12-w15 at operand 1 -- `mova za0h\.d\[w16,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,-4:-1\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,1:4\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,2:5\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,3:6\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `mova za0h\.d\[w12,4:7\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `mova za0h\.d\[w12,0:1\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:2\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:3,vgx2\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: expected a range of two offsets at operand 1 -- `mova za0h\.d\[w12,0:3,vgx4\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: missing horizontal or vertical suffix at operand 1 -- `mova za0\.d\[w12,0:3\],{z0\.d-z3\.d}'
diff --git a/gas/testsuite/gas/aarch64/sme2-1-invalid.s b/gas/testsuite/gas/aarch64/sme2-1-invalid.s
new file mode 100644
index 00000000000..36ee20f64f9
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1-invalid.s
@@ -0,0 +1,323 @@
+	mov	0, za.b[w8, 0]
+	mov	{ z0.b - z1.b }, 0
+
+	mov	{ z0.d - z1.d }, za.q[w8, 0]
+	mov	{ z1.d - z2.d }, za.d[w8, 0]
+	mov	{ z0.d - z1.d }, za.d[w7, 0]
+	mov	{ z0.d - z1.d }, za.d[w12, 0]
+	mov	{ z0.d - z1.d }, za.d[w8, -1]
+	mov	{ z0.d - z1.d }, za.d[w8, 8]
+
+	mov	{ z0.d - z3.d }, za.q[w8, 0]
+	mov	{ z1.d - z4.d }, za.d[w8, 0]
+	mov	{ z2.d - z5.d }, za.d[w8, 0]
+	mov	{ z3.d - z6.d }, za.d[w8, 0]
+	mov	{ z0.d - z3.d }, za.d[w7, 0]
+	mov	{ z0.d - z3.d }, za.d[w12, 0]
+	mov	{ z0.d - z3.d }, za.d[w8, -1]
+	mov	{ z0.d - z3.d }, za.d[w8, 8]
+
+	mov	{ z1.b - z2.b }, za0h.b[w8, 0:1]
+	mov	{ z0.b - z1.b }, za1h.b[w12, 0:1]
+	mov	{ z0.b - z1.b }, za1v.b[w12, 0:1]
+	mov	{ z0.b - z1.b }, za0h.b[w11, 0:1]
+	mov	{ z0.b - z1.b }, za0h.b[w16, 0:1]
+	mov	{ z0.b - z1.b }, za0h.b[w12, -2:-1]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 1:2]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 15:16]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 16:17]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0:2]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0:3]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0:1, vgx2]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0:1, vgx4]
+	mov	{ z0.b - z1.b }, za0.b[w12, 0:1]
+
+	mov	{ z1.h - z2.h }, za0h.h[w12, 0:1]
+	mov	{ z0.h - z1.h }, za2h.h[w12, 0:1]
+	mov	{ z0.h - z1.h }, za2v.h[w12, 0:1]
+	mov	{ z0.h - z1.h }, za0h.h[w11, 0:1]
+	mov	{ z0.h - z1.h }, za0h.h[w16, 0:1]
+	mov	{ z0.h - z1.h }, za0h.h[w12, -2:-1]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 1:2]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 7:8]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 8:9]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0:2]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0:3]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0:1, vgx2]
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0:1, vgx4]
+	mov	{ z0.h - z1.h }, za0.h[w12, 0:1]
+
+	mov	{ z1.s - z2.s }, za0h.s[w12, 0:1]
+	mov	{ z0.s - z1.s }, za4h.s[w12, 0:1]
+	mov	{ z0.s - z1.s }, za4v.s[w12, 0:1]
+	mov	{ z0.s - z1.s }, za0h.s[w11, 0:1]
+	mov	{ z0.s - z1.s }, za0h.s[w16, 0:1]
+	mov	{ z0.s - z1.s }, za0h.s[w12, -2:-1]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 1:2]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 3:4]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 4:5]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 0]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 0:2]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 0:3]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 0:1, vgx2]
+	mov	{ z0.s - z1.s }, za0h.s[w12, 0:1, vgx4]
+	mov	{ z0.s - z1.s }, za0.s[w12, 0:1]
+
+	mov	{ z1.d - z2.d }, za0h.d[w12, 0:1]
+	mov	{ z0.d - z1.d }, za8h.d[w12, 0:1]
+	mov	{ z0.d - z1.d }, za8v.d[w12, 0:1]
+	mov	{ z0.d - z1.d }, za0h.d[w11, 0:1]
+	mov	{ z0.d - z1.d }, za0h.d[w16, 0:1]
+	mov	{ z0.d - z1.d }, za0h.d[w12, -2:-1]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 1:2]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 2:3]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 0]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 0:2]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 0:3]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 0:1, vgx2]
+	mov	{ z0.d - z1.d }, za0h.d[w12, 0:1, vgx4]
+	mov	{ z0.d - z1.d }, za0.d[w12, 0:1]
+
+	mov	{ z1.b - z4.b }, za0h.b[w12, 0:3]
+	mov	{ z2.b - z5.b }, za0h.b[w12, 0:3]
+	mov	{ z3.b - z6.b }, za0h.b[w12, 0:3]
+	mov	{ z0.b - z3.b }, za1h.b[w12, 0:3]
+	mov	{ z0.b - z3.b }, za1v.b[w12, 0:3]
+	mov	{ z0.b - z3.b }, za0h.b[w11, 0:3]
+	mov	{ z0.b - z3.b }, za0h.b[w16, 0:3]
+	mov	{ z0.b - z3.b }, za0h.b[w12, -4:-1]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 1:4]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 2:5]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 3:6]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 13:16]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 14:17]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 15:18]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 16:19]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 0]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 0:1]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 0:2]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 0:3, vgx2]
+	mov	{ z0.b - z3.b }, za0h.b[w12, 0:3, vgx4]
+	mov	{ z0.b - z3.b }, za0.b[w12, 0:3]
+
+	mov	{ z1.h - z2.h }, za0h.h[w12, 0:3]
+	mov	{ z2.h - z5.h }, za0h.h[w12, 0:3]
+	mov	{ z3.h - z6.h }, za0h.h[w12, 0:3]
+	mov	{ z0.h - z3.h }, za2h.h[w12, 0:3]
+	mov	{ z0.h - z3.h }, za2v.h[w12, 0:3]
+	mov	{ z0.h - z3.h }, za0h.h[w11, 0:3]
+	mov	{ z0.h - z3.h }, za0h.h[w16, 0:3]
+	mov	{ z0.h - z3.h }, za0h.h[w12, -4:-1]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 1:2]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 5:8]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 6:9]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 7:10]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 8:11]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 0]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 0:1]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 0:2]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 0:3, vgx2]
+	mov	{ z0.h - z3.h }, za0h.h[w12, 0:3, vgx4]
+	mov	{ z0.h - z3.h }, za0.h[w12, 0:3]
+
+	mov	{ z1.s - z2.s }, za0h.s[w12, 0:3]
+	mov	{ z2.s - z5.s }, za0h.s[w12, 0:3]
+	mov	{ z3.s - z6.s }, za0h.s[w12, 0:3]
+	mov	{ z0.s - z3.s }, za4h.s[w12, 0:3]
+	mov	{ z0.s - z3.s }, za4v.s[w12, 0:3]
+	mov	{ z0.s - z3.s }, za0h.s[w11, 0:3]
+	mov	{ z0.s - z3.s }, za0h.s[w16, 0:3]
+	mov	{ z0.s - z3.s }, za0h.s[w12, -4:-1]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 1:4]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 2:5]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 3:6]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 4:7]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 0]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 0:1]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 0:2]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 0:3, vgx2]
+	mov	{ z0.s - z3.s }, za0h.s[w12, 0:3, vgx4]
+	mov	{ z0.s - z3.s }, za0.s[w12, 0:3]
+
+	mov	{ z1.d - z2.d }, za0h.d[w12, 0:3]
+	mov	{ z2.d - z5.d }, za0h.d[w12, 0:3]
+	mov	{ z3.d - z6.d }, za0h.d[w12, 0:3]
+	mov	{ z0.d - z3.d }, za8h.d[w12, 0:3]
+	mov	{ z0.d - z3.d }, za8v.d[w12, 0:3]
+	mov	{ z0.d - z3.d }, za0h.d[w11, 0:3]
+	mov	{ z0.d - z3.d }, za0h.d[w16, 0:3]
+	mov	{ z0.d - z3.d }, za0h.d[w12, -4:-1]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 1:4]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 2:5]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 3:6]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 4:7]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 0]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 0:1]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 0:2]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 0:3, vgx2]
+	mov	{ z0.d - z3.d }, za0h.d[w12, 0:3, vgx4]
+	mov	{ z0.d - z3.d }, za0.d[w12, 0:3]
+
+	mova	0, za.b[w8, 0]
+	mova	{ z0.b - z1.b }, 0
+
+	mova	za.q[w8, 0], { z0.q - z1.q }
+	mova	za.d[w7, 0], { z0.d - z1.d }
+	mova	za.d[w12, 0], { z0.d - z1.d }
+	mova	za.d[w8, -1], { z0.d - z1.d }
+	mova	za.d[w8, 8], { z0.d - z1.d }
+	mova	za.d[w8, 0], { z1.d - z2.d }
+
+	mova	za.q[w8, 0], { z0.q - z3.q }
+	mova	za.d[w7, 0], { z0.d - z3.d }
+	mova	za.d[w12, 0], { z0.d - z3.d }
+	mova	za.d[w8, -1], { z0.d - z3.d }
+	mova	za.d[w8, 8], { z0.d - z3.d }
+	mova	za.d[w8, 0], { z1.d - z4.d }
+	mova	za.d[w8, 0], { z2.d - z5.d }
+	mova	za.d[w8, 0], { z3.d - z6.d }
+
+	mova	za0h.b[w8, 0:1], { z1.b - z2.b }
+	mova	za1h.b[w12, 0:1], { z0.b - z1.b }
+	mova	za1v.b[w12, 0:1], { z0.b - z1.b }
+	mova	za0h.b[w11, 0:1], { z0.b - z1.b }
+	mova	za0h.b[w16, 0:1], { z0.b - z1.b }
+	mova	za0h.b[w12, -2:-1], { z0.b - z1.b }
+	mova	za0h.b[w12, 1:2], { z0.b - z1.b }
+	mova	za0h.b[w12, 15:16], { z0.b - z1.b }
+	mova	za0h.b[w12, 16:17], { z0.b - z1.b }
+	mova	za0h.b[w12, 0], { z0.b - z1.b }
+	mova	za0h.b[w12, 0:2], { z0.b - z1.b }
+	mova	za0h.b[w12, 0:3], { z0.b - z1.b }
+	mova	za0h.b[w12, 0:1, vgx2], { z0.b - z1.b }
+	mova	za0h.b[w12, 0:1, vgx4], { z0.b - z1.b }
+	mova	za0.b[w12, 0:1], { z0.b - z1.b }
+
+	mova	za0h.h[w12, 0:1], { z1.h - z2.h }
+	mova	za2h.h[w12, 0:1], { z0.h - z1.h }
+	mova	za2v.h[w12, 0:1], { z0.h - z1.h }
+	mova	za0h.h[w11, 0:1], { z0.h - z1.h }
+	mova	za0h.h[w16, 0:1], { z0.h - z1.h }
+	mova	za0h.h[w12, -2:-1], { z0.h - z1.h }
+	mova	za0h.h[w12, 1:2], { z0.h - z1.h }
+	mova	za0h.h[w12, 7:8], { z0.h - z1.h }
+	mova	za0h.h[w12, 8:9], { z0.h - z1.h }
+	mova	za0h.h[w12, 0], { z0.h - z1.h }
+	mova	za0h.h[w12, 0:2], { z0.h - z1.h }
+	mova	za0h.h[w12, 0:3], { z0.h - z1.h }
+	mova	za0h.h[w12, 0:1, vgx2], { z0.h - z1.h }
+	mova	za0h.h[w12, 0:1, vgx4], { z0.h - z1.h }
+	mova	za0.h[w12, 0:1], { z0.h - z1.h }
+
+	mova	za0h.s[w12, 0:1], { z1.s - z2.s }
+	mova	za4h.s[w12, 0:1], { z0.s - z1.s }
+	mova	za4v.s[w12, 0:1], { z0.s - z1.s }
+	mova	za0h.s[w11, 0:1], { z0.s - z1.s }
+	mova	za0h.s[w16, 0:1], { z0.s - z1.s }
+	mova	za0h.s[w12, -2:-1], { z0.s - z1.s }
+	mova	za0h.s[w12, 1:2], { z0.s - z1.s }
+	mova	za0h.s[w12, 3:4], { z0.s - z1.s }
+	mova	za0h.s[w12, 4:5], { z0.s - z1.s }
+	mova	za0h.s[w12, 0], { z0.s - z1.s }
+	mova	za0h.s[w12, 0:2], { z0.s - z1.s }
+	mova	za0h.s[w12, 0:3], { z0.s - z1.s }
+	mova	za0h.s[w12, 0:1, vgx2], { z0.s - z1.s }
+	mova	za0h.s[w12, 0:1, vgx4], { z0.s - z1.s }
+	mova	za0.s[w12, 0:1], { z0.s - z1.s }
+
+	mova	za0h.d[w12, 0:1], { z1.d - z2.d }
+	mova	za8h.d[w12, 0:1], { z0.d - z1.d }
+	mova	za8v.d[w12, 0:1], { z0.d - z1.d }
+	mova	za0h.d[w11, 0:1], { z0.d - z1.d }
+	mova	za0h.d[w16, 0:1], { z0.d - z1.d }
+	mova	za0h.d[w12, -2:-1], { z0.d - z1.d }
+	mova	za0h.d[w12, 1:2], { z0.d - z1.d }
+	mova	za0h.d[w12, 2:3], { z0.d - z1.d }
+	mova	za0h.d[w12, 0], { z0.d - z1.d }
+	mova	za0h.d[w12, 0:2], { z0.d - z1.d }
+	mova	za0h.d[w12, 0:3], { z0.d - z1.d }
+	mova	za0h.d[w12, 0:1, vgx2], { z0.d - z1.d }
+	mova	za0h.d[w12, 0:1, vgx4], { z0.d - z1.d }
+	mova	za0.d[w12, 0:1], { z0.d - z1.d }
+
+	mova	za0h.b[w12, 0:3], { z1.b - z4.b }
+	mova	za0h.b[w12, 0:3], { z2.b - z5.b }
+	mova	za0h.b[w12, 0:3], { z3.b - z6.b }
+	mova	za1h.b[w12, 0:3], { z0.b - z3.b }
+	mova	za1v.b[w12, 0:3], { z0.b - z3.b }
+	mova	za0h.b[w11, 0:3], { z0.b - z3.b }
+	mova	za0h.b[w16, 0:3], { z0.b - z3.b }
+	mova	za0h.b[w12, -4:-1], { z0.b - z3.b }
+	mova	za0h.b[w12, 1:4], { z0.b - z3.b }
+	mova	za0h.b[w12, 2:5], { z0.b - z3.b }
+	mova	za0h.b[w12, 3:6], { z0.b - z3.b }
+	mova	za0h.b[w12, 13:16], { z0.b - z3.b }
+	mova	za0h.b[w12, 14:17], { z0.b - z3.b }
+	mova	za0h.b[w12, 15:18], { z0.b - z3.b }
+	mova	za0h.b[w12, 16:19], { z0.b - z3.b }
+	mova	za0h.b[w12, 0], { z0.b - z3.b }
+	mova	za0h.b[w12, 0:1], { z0.b - z3.b }
+	mova	za0h.b[w12, 0:2], { z0.b - z3.b }
+	mova	za0h.b[w12, 0:3, vgx2], { z0.b - z3.b }
+	mova	za0h.b[w12, 0:3, vgx4], { z0.b - z3.b }
+	mova	za0.b[w12, 0:3], { z0.b - z3.b }
+
+	mova	za0h.h[w12, 0:3], { z1.h - z2.h }
+	mova	za0h.h[w12, 0:3], { z2.h - z5.h }
+	mova	za0h.h[w12, 0:3], { z3.h - z6.h }
+	mova	za2h.h[w12, 0:3], { z0.h - z3.h }
+	mova	za2v.h[w12, 0:3], { z0.h - z3.h }
+	mova	za0h.h[w11, 0:3], { z0.h - z3.h }
+	mova	za0h.h[w16, 0:3], { z0.h - z3.h }
+	mova	za0h.h[w12, -4:-1], { z0.h - z3.h }
+	mova	za0h.h[w12, 1:2], { z0.h - z3.h }
+	mova	za0h.h[w12, 5:8], { z0.h - z3.h }
+	mova	za0h.h[w12, 6:9], { z0.h - z3.h }
+	mova	za0h.h[w12, 7:10], { z0.h - z3.h }
+	mova	za0h.h[w12, 8:11], { z0.h - z3.h }
+	mova	za0h.h[w12, 0], { z0.h - z3.h }
+	mova	za0h.h[w12, 0:1], { z0.h - z3.h }
+	mova	za0h.h[w12, 0:2], { z0.h - z3.h }
+	mova	za0h.h[w12, 0:3, vgx2], { z0.h - z3.h }
+	mova	za0h.h[w12, 0:3, vgx4], { z0.h - z3.h }
+	mova	za0.h[w12, 0:3], { z0.h - z3.h }
+
+	mova	za0h.s[w12, 0:3], { z1.s - z2.s }
+	mova	za0h.s[w12, 0:3], { z2.s - z5.s }
+	mova	za0h.s[w12, 0:3], { z3.s - z6.s }
+	mova	za4h.s[w12, 0:3], { z0.s - z3.s }
+	mova	za4v.s[w12, 0:3], { z0.s - z3.s }
+	mova	za0h.s[w11, 0:3], { z0.s - z3.s }
+	mova	za0h.s[w16, 0:3], { z0.s - z3.s }
+	mova	za0h.s[w12, -4:-1], { z0.s - z3.s }
+	mova	za0h.s[w12, 1:4], { z0.s - z3.s }
+	mova	za0h.s[w12, 2:5], { z0.s - z3.s }
+	mova	za0h.s[w12, 3:6], { z0.s - z3.s }
+	mova	za0h.s[w12, 4:7], { z0.s - z3.s }
+	mova	za0h.s[w12, 0], { z0.s - z3.s }
+	mova	za0h.s[w12, 0:1], { z0.s - z3.s }
+	mova	za0h.s[w12, 0:2], { z0.s - z3.s }
+	mova	za0h.s[w12, 0:3, vgx2], { z0.s - z3.s }
+	mova	za0h.s[w12, 0:3, vgx4], { z0.s - z3.s }
+	mova	za0.s[w12, 0:3], { z0.s - z3.s }
+
+	mova	za0h.d[w12, 0:3], { z1.d - z2.d }
+	mova	za0h.d[w12, 0:3], { z2.d - z5.d }
+	mova	za0h.d[w12, 0:3], { z3.d - z6.d }
+	mova	za8h.d[w12, 0:3], { z0.d - z3.d }
+	mova	za8v.d[w12, 0:3], { z0.d - z3.d }
+	mova	za0h.d[w11, 0:3], { z0.d - z3.d }
+	mova	za0h.d[w16, 0:3], { z0.d - z3.d }
+	mova	za0h.d[w12, -4:-1], { z0.d - z3.d }
+	mova	za0h.d[w12, 1:4], { z0.d - z3.d }
+	mova	za0h.d[w12, 2:5], { z0.d - z3.d }
+	mova	za0h.d[w12, 3:6], { z0.d - z3.d }
+	mova	za0h.d[w12, 4:7], { z0.d - z3.d }
+	mova	za0h.d[w12, 0], { z0.d - z3.d }
+	mova	za0h.d[w12, 0:1], { z0.d - z3.d }
+	mova	za0h.d[w12, 0:2], { z0.d - z3.d }
+	mova	za0h.d[w12, 0:3, vgx2], { z0.d - z3.d }
+	mova	za0h.d[w12, 0:3, vgx4], { z0.d - z3.d }
+	mova	za0.d[w12, 0:3], { z0.d - z3.d }
diff --git a/gas/testsuite/gas/aarch64/sme2-1-noarch.d b/gas/testsuite/gas/aarch64/sme2-1-noarch.d
new file mode 100644
index 00000000000..cb6665108da
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-1.s
+#error_output: sme2-1-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-1-noarch.l b/gas/testsuite/gas/aarch64/sme2-1-noarch.l
new file mode 100644
index 00000000000..9d9fd083d7c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1-noarch.l
@@ -0,0 +1,289 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z1\.b},za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za\.h\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za\.s\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z30\.d-z31\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za\.d\[w11,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za\.d\[w8,7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z3\.b},za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za\.h\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za\.s\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z28\.d-z31\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za\.d\[w11,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za\.d\[w8,7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z1\.b},za0h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z30\.b-z31\.b},za0h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z1\.b},za0v\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z1\.b},za0h\.b\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z1\.b},za0h\.b\[w12,14:15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z8\.b-z9\.b},za0h\.b\[w14,6:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z30\.h-z31\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za0v\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za1h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za1v\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za0h\.h\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z1\.h},za0h\.h\[w12,6:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z10\.h-z11\.h},za0h\.h\[w13,2:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z30\.s-z31\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za0v\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za3h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za3v\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za0h\.s\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z1\.s},za0h\.s\[w12,2:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z18\.s-z19\.s},za2h\.s\[w14,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z30\.d-z31\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za0v\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za7h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za7v\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z1\.d},za0h\.d\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z22\.d-z23\.d},za6h\.d\[w13,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z3\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z28\.b-z31\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z3\.b},za0v\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z3\.b},za0h\.b\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.b-z3\.b},za0h\.b\[w12,12:15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z12\.b-z15\.b},za0h\.b\[w14,8:11\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z28\.h-z31\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za0v\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za1h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za1v\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za0h\.h\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.h-z3\.h},za0h\.h\[w12,4:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z16\.h-z19\.h},za0h\.h\[w13,4:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z28\.s-z31\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za0v\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za3h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za3v\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.s-z3\.s},za0h\.s\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z20\.s-z23\.s},za2h\.s\[w13,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z28\.d-z31\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za0v\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za7h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za7v\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z0\.d-z3\.d},za0h\.d\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov {z24\.d-z27\.d},za5h\.d\[w13,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.b\[w8,0\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.h\[w8,0\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.s\[w8,0\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w11,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,7\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,0\],{z30\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w9,5\],{z2\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.b\[w8,0\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.h\[w8,0\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.s\[w8,0\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w11,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,7\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w8,0\],{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za\.d\[w10,1\],{z20\.d-z23\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w15,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,14:15\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,0:1\],{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w14,6:7\],{z8\.b-z9\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za1h\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za1v\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w15,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,6:7\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,0:1\],{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w13,2:3\],{z10\.h-z11\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za3h\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za3v\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w15,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w12,2:3\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w12,0:1\],{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za2h\.s\[w14,0:1\],{z18\.s-z19\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za7h\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za7v\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w15,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w12,0:1\],{z30\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za6h\.d\[w13,0:1\],{z22\.d-z23\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w15,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,12:15\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w12,0:3\],{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.b\[w14,8:11\],{z12\.b-z15\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za1h\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za1v\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w15,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,4:7\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w12,0:3\],{z28\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.h\[w13,4:7\],{z16\.h-z19\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za3h\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za3v\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w15,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.s\[w12,0:3\],{z28\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za2h\.s\[w13,0:3\],{z20\.s-z23\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0v\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za7h\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za7v\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w15,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za0h\.d\[w12,0:3\],{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mov za5h\.d\[w13,0:3\],{z24\.d-z27\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z1\.b},za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za\.h\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za\.s\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z30\.d-z31\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za\.d\[w11,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za\.d\[w8,7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z3\.b},za\.b\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za\.h\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za\.s\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z28\.d-z31\.d},za\.d\[w8,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za\.d\[w11,0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za\.d\[w8,7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z1\.b},za0h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z30\.b-z31\.b},za0h\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z1\.b},za0v\.b\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z1\.b},za0h\.b\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z1\.b},za0h\.b\[w12,14:15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z8\.b-z9\.b},za0h\.b\[w14,6:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z30\.h-z31\.h},za0h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za0v\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za1h\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za1v\.h\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za0h\.h\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z1\.h},za0h\.h\[w12,6:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z10\.h-z11\.h},za0h\.h\[w13,2:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z30\.s-z31\.s},za0h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za0v\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za3h\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za3v\.s\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za0h\.s\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z1\.s},za0h\.s\[w12,2:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z18\.s-z19\.s},za2h\.s\[w14,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z30\.d-z31\.d},za0h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za0v\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za7h\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za7v\.d\[w12,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z1\.d},za0h\.d\[w15,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z22\.d-z23\.d},za6h\.d\[w13,0:1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z3\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z28\.b-z31\.b},za0h\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z3\.b},za0v\.b\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z3\.b},za0h\.b\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.b-z3\.b},za0h\.b\[w12,12:15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z12\.b-z15\.b},za0h\.b\[w14,8:11\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z28\.h-z31\.h},za0h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za0v\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za1h\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za1v\.h\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za0h\.h\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.h-z3\.h},za0h\.h\[w12,4:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z16\.h-z19\.h},za0h\.h\[w13,4:7\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z28\.s-z31\.s},za0h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za0v\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za3h\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za3v\.s\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.s-z3\.s},za0h\.s\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z20\.s-z23\.s},za2h\.s\[w13,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z28\.d-z31\.d},za0h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za0v\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za7h\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za7v\.d\[w12,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z0\.d-z3\.d},za0h\.d\[w15,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova {z24\.d-z27\.d},za5h\.d\[w13,0:3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.b\[w8,0\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.h\[w8,0\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.s\[w8,0\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w11,0\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,7\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,0\],{z30\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w9,5\],{z2\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.b\[w8,0\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.h\[w8,0\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.s\[w8,0\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w11,0\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,7\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w8,0\],{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za\.d\[w10,1\],{z20\.d-z23\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.b\[w12,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w15,0:1\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,14:15\],{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,0:1\],{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w14,6:7\],{z8\.b-z9\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za1h\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za1v\.h\[w12,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w15,0:1\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,6:7\],{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,0:1\],{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w13,2:3\],{z10\.h-z11\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za3h\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za3v\.s\[w12,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w15,0:1\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w12,2:3\],{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w12,0:1\],{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za2h\.s\[w14,0:1\],{z18\.s-z19\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za7h\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za7v\.d\[w12,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w15,0:1\],{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w12,0:1\],{z30\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za6h\.d\[w13,0:1\],{z22\.d-z23\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.b\[w12,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w15,0:3\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,12:15\],{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w12,0:3\],{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.b\[w14,8:11\],{z12\.b-z15\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za1h\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za1v\.h\[w12,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w15,0:3\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,4:7\],{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w12,0:3\],{z28\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.h\[w13,4:7\],{z16\.h-z19\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za3h\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za3v\.s\[w12,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w15,0:3\],{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.s\[w12,0:3\],{z28\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za2h\.s\[w13,0:3\],{z20\.s-z23\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0v\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za7h\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za7v\.d\[w12,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w15,0:3\],{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za0h\.d\[w12,0:3\],{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `mova za5h\.d\[w13,0:3\],{z24\.d-z27\.d}'
diff --git a/gas/testsuite/gas/aarch64/sme2-1.d b/gas/testsuite/gas/aarch64/sme2-1.d
new file mode 100644
index 00000000000..6fc248bb21f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1.d
@@ -0,0 +1,305 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c006081e 	mov	{z30\.d-z31\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0066800 	mov	{z0\.d-z1\.d}, za\.d\[w11, 0, vgx2\]
+[^:]+:	c00608e0 	mov	{z0\.d-z1\.d}, za\.d\[w8, 7, vgx2\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c1c 	mov	{z28\.d-z31\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0066c00 	mov	{z0\.d-z3\.d}, za\.d\[w11, 0, vgx4\]
+[^:]+:	c0060ce0 	mov	{z0\.d-z3\.d}, za\.d\[w8, 7, vgx4\]
+[^:]+:	c0060000 	mov	{z0\.b-z1\.b}, za0h\.b\[w12, 0:1\]
+[^:]+:	c006001e 	mov	{z30\.b-z31\.b}, za0h\.b\[w12, 0:1\]
+[^:]+:	c0068000 	mov	{z0\.b-z1\.b}, za0v\.b\[w12, 0:1\]
+[^:]+:	c0066000 	mov	{z0\.b-z1\.b}, za0h\.b\[w15, 0:1\]
+[^:]+:	c00600e0 	mov	{z0\.b-z1\.b}, za0h\.b\[w12, 14:15\]
+[^:]+:	c0064068 	mov	{z8\.b-z9\.b}, za0h\.b\[w14, 6:7\]
+[^:]+:	c0460000 	mov	{z0\.h-z1\.h}, za0h\.h\[w12, 0:1\]
+[^:]+:	c046001e 	mov	{z30\.h-z31\.h}, za0h\.h\[w12, 0:1\]
+[^:]+:	c0468000 	mov	{z0\.h-z1\.h}, za0v\.h\[w12, 0:1\]
+[^:]+:	c0460080 	mov	{z0\.h-z1\.h}, za1h\.h\[w12, 0:1\]
+[^:]+:	c0468080 	mov	{z0\.h-z1\.h}, za1v\.h\[w12, 0:1\]
+[^:]+:	c0466000 	mov	{z0\.h-z1\.h}, za0h\.h\[w15, 0:1\]
+[^:]+:	c0460060 	mov	{z0\.h-z1\.h}, za0h\.h\[w12, 6:7\]
+[^:]+:	c046202a 	mov	{z10\.h-z11\.h}, za0h\.h\[w13, 2:3\]
+[^:]+:	c0860000 	mov	{z0\.s-z1\.s}, za0h\.s\[w12, 0:1\]
+[^:]+:	c086001e 	mov	{z30\.s-z31\.s}, za0h\.s\[w12, 0:1\]
+[^:]+:	c0868000 	mov	{z0\.s-z1\.s}, za0v\.s\[w12, 0:1\]
+[^:]+:	c08600c0 	mov	{z0\.s-z1\.s}, za3h\.s\[w12, 0:1\]
+[^:]+:	c08680c0 	mov	{z0\.s-z1\.s}, za3v\.s\[w12, 0:1\]
+[^:]+:	c0866000 	mov	{z0\.s-z1\.s}, za0h\.s\[w15, 0:1\]
+[^:]+:	c0860020 	mov	{z0\.s-z1\.s}, za0h\.s\[w12, 2:3\]
+[^:]+:	c0864092 	mov	{z18\.s-z19\.s}, za2h\.s\[w14, 0:1\]
+[^:]+:	c0c60000 	mov	{z0\.d-z1\.d}, za0h\.d\[w12, 0:1\]
+[^:]+:	c0c6001e 	mov	{z30\.d-z31\.d}, za0h\.d\[w12, 0:1\]
+[^:]+:	c0c68000 	mov	{z0\.d-z1\.d}, za0v\.d\[w12, 0:1\]
+[^:]+:	c0c600e0 	mov	{z0\.d-z1\.d}, za7h\.d\[w12, 0:1\]
+[^:]+:	c0c680e0 	mov	{z0\.d-z1\.d}, za7v\.d\[w12, 0:1\]
+[^:]+:	c0c66000 	mov	{z0\.d-z1\.d}, za0h\.d\[w15, 0:1\]
+[^:]+:	c0c620d6 	mov	{z22\.d-z23\.d}, za6h\.d\[w13, 0:1\]
+[^:]+:	c0060400 	mov	{z0\.b-z3\.b}, za0h\.b\[w12, 0:3\]
+[^:]+:	c006041c 	mov	{z28\.b-z31\.b}, za0h\.b\[w12, 0:3\]
+[^:]+:	c0068400 	mov	{z0\.b-z3\.b}, za0v\.b\[w12, 0:3\]
+[^:]+:	c0066400 	mov	{z0\.b-z3\.b}, za0h\.b\[w15, 0:3\]
+[^:]+:	c0060460 	mov	{z0\.b-z3\.b}, za0h\.b\[w12, 12:15\]
+[^:]+:	c006444c 	mov	{z12\.b-z15\.b}, za0h\.b\[w14, 8:11\]
+[^:]+:	c0460400 	mov	{z0\.h-z3\.h}, za0h\.h\[w12, 0:3\]
+[^:]+:	c046041c 	mov	{z28\.h-z31\.h}, za0h\.h\[w12, 0:3\]
+[^:]+:	c0468400 	mov	{z0\.h-z3\.h}, za0v\.h\[w12, 0:3\]
+[^:]+:	c0460440 	mov	{z0\.h-z3\.h}, za1h\.h\[w12, 0:3\]
+[^:]+:	c0468440 	mov	{z0\.h-z3\.h}, za1v\.h\[w12, 0:3\]
+[^:]+:	c0466400 	mov	{z0\.h-z3\.h}, za0h\.h\[w15, 0:3\]
+[^:]+:	c0460420 	mov	{z0\.h-z3\.h}, za0h\.h\[w12, 4:7\]
+[^:]+:	c0462430 	mov	{z16\.h-z19\.h}, za0h\.h\[w13, 4:7\]
+[^:]+:	c0860400 	mov	{z0\.s-z3\.s}, za0h\.s\[w12, 0:3\]
+[^:]+:	c086041c 	mov	{z28\.s-z31\.s}, za0h\.s\[w12, 0:3\]
+[^:]+:	c0868400 	mov	{z0\.s-z3\.s}, za0v\.s\[w12, 0:3\]
+[^:]+:	c0860460 	mov	{z0\.s-z3\.s}, za3h\.s\[w12, 0:3\]
+[^:]+:	c0868460 	mov	{z0\.s-z3\.s}, za3v\.s\[w12, 0:3\]
+[^:]+:	c0866400 	mov	{z0\.s-z3\.s}, za0h\.s\[w15, 0:3\]
+[^:]+:	c0862454 	mov	{z20\.s-z23\.s}, za2h\.s\[w13, 0:3\]
+[^:]+:	c0c60400 	mov	{z0\.d-z3\.d}, za0h\.d\[w12, 0:3\]
+[^:]+:	c0c6041c 	mov	{z28\.d-z31\.d}, za0h\.d\[w12, 0:3\]
+[^:]+:	c0c68400 	mov	{z0\.d-z3\.d}, za0v\.d\[w12, 0:3\]
+[^:]+:	c0c604e0 	mov	{z0\.d-z3\.d}, za7h\.d\[w12, 0:3\]
+[^:]+:	c0c684e0 	mov	{z0\.d-z3\.d}, za7v\.d\[w12, 0:3\]
+[^:]+:	c0c66400 	mov	{z0\.d-z3\.d}, za0h\.d\[w15, 0:3\]
+[^:]+:	c0c624b8 	mov	{z24\.d-z27\.d}, za5h\.d\[w13, 0:3\]
+[^:]+:	c0060480 	\.inst	0xc0060480 ; undefined
+[^:]+:	c00604e0 	\.inst	0xc00604e0 ; undefined
+[^:]+:	c0460480 	\.inst	0xc0460480 ; undefined
+[^:]+:	c04604e0 	\.inst	0xc04604e0 ; undefined
+[^:]+:	c0860480 	\.inst	0xc0860480 ; undefined
+[^:]+:	c08604e0 	\.inst	0xc08604e0 ; undefined
+[^:]+:	c0c60480 	mov	{z0\.d-z3\.d}, za4h\.d\[w12, 0:3\]
+[^:]+:	c0c604e0 	mov	{z0\.d-z3\.d}, za7h\.d\[w12, 0:3\]
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0046800 	mov	za\.d\[w11, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040807 	mov	za\.d\[w8, 7, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040bc0 	mov	za\.d\[w8, 0, vgx2\], {z30\.d-z31\.d}
+[^:]+:	c0042845 	mov	za\.d\[w9, 5, vgx2\], {z2\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0046c00 	mov	za\.d\[w11, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c07 	mov	za\.d\[w8, 7, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040f80 	mov	za\.d\[w8, 0, vgx4\], {z28\.d-z31\.d}
+[^:]+:	c0044e81 	mov	za\.d\[w10, 1, vgx4\], {z20\.d-z23\.d}
+[^:]+:	c0040000 	mov	za0h\.b\[w12, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0048000 	mov	za0v\.b\[w12, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0046000 	mov	za0h\.b\[w15, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0040007 	mov	za0h\.b\[w12, 14:15\], {z0\.b-z1\.b}
+[^:]+:	c00403c0 	mov	za0h\.b\[w12, 0:1\], {z30\.b-z31\.b}
+[^:]+:	c0044103 	mov	za0h\.b\[w14, 6:7\], {z8\.b-z9\.b}
+[^:]+:	c0440000 	mov	za0h\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0448000 	mov	za0v\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0440004 	mov	za1h\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0448004 	mov	za1v\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0446000 	mov	za0h\.h\[w15, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0440003 	mov	za0h\.h\[w12, 6:7\], {z0\.h-z1\.h}
+[^:]+:	c04403c0 	mov	za0h\.h\[w12, 0:1\], {z30\.h-z31\.h}
+[^:]+:	c0442141 	mov	za0h\.h\[w13, 2:3\], {z10\.h-z11\.h}
+[^:]+:	c0840000 	mov	za0h\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0848000 	mov	za0v\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0840006 	mov	za3h\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0848006 	mov	za3v\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0846000 	mov	za0h\.s\[w15, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0840001 	mov	za0h\.s\[w12, 2:3\], {z0\.s-z1\.s}
+[^:]+:	c08403c0 	mov	za0h\.s\[w12, 0:1\], {z30\.s-z31\.s}
+[^:]+:	c0844244 	mov	za2h\.s\[w14, 0:1\], {z18\.s-z19\.s}
+[^:]+:	c0c40000 	mov	za0h\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c48000 	mov	za0v\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c40007 	mov	za7h\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c48007 	mov	za7v\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c46000 	mov	za0h\.d\[w15, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c403c0 	mov	za0h\.d\[w12, 0:1\], {z30\.d-z31\.d}
+[^:]+:	c0c422c6 	mov	za6h\.d\[w13, 0:1\], {z22\.d-z23\.d}
+[^:]+:	c0040400 	mov	za0h\.b\[w12, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0048400 	mov	za0v\.b\[w12, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0046400 	mov	za0h\.b\[w15, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0040403 	mov	za0h\.b\[w12, 12:15\], {z0\.b-z3\.b}
+[^:]+:	c0040780 	mov	za0h\.b\[w12, 0:3\], {z28\.b-z31\.b}
+[^:]+:	c0044582 	mov	za0h\.b\[w14, 8:11\], {z12\.b-z15\.b}
+[^:]+:	c0440400 	mov	za0h\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0448400 	mov	za0v\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0440402 	mov	za1h\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0448402 	mov	za1v\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0446400 	mov	za0h\.h\[w15, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0440401 	mov	za0h\.h\[w12, 4:7\], {z0\.h-z3\.h}
+[^:]+:	c0440780 	mov	za0h\.h\[w12, 0:3\], {z28\.h-z31\.h}
+[^:]+:	c0442601 	mov	za0h\.h\[w13, 4:7\], {z16\.h-z19\.h}
+[^:]+:	c0840400 	mov	za0h\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0848400 	mov	za0v\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0840403 	mov	za3h\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0848403 	mov	za3v\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0846400 	mov	za0h\.s\[w15, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0840780 	mov	za0h\.s\[w12, 0:3\], {z28\.s-z31\.s}
+[^:]+:	c0842682 	mov	za2h\.s\[w13, 0:3\], {z20\.s-z23\.s}
+[^:]+:	c0c40400 	mov	za0h\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c48400 	mov	za0v\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c40407 	mov	za7h\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c48407 	mov	za7v\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c46400 	mov	za0h\.d\[w15, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c40780 	mov	za0h\.d\[w12, 0:3\], {z28\.d-z31\.d}
+[^:]+:	c0c42705 	mov	za5h\.d\[w13, 0:3\], {z24\.d-z27\.d}
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0060800 	mov	{z0\.d-z1\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c006081e 	mov	{z30\.d-z31\.d}, za\.d\[w8, 0, vgx2\]
+[^:]+:	c0066800 	mov	{z0\.d-z1\.d}, za\.d\[w11, 0, vgx2\]
+[^:]+:	c00608e0 	mov	{z0\.d-z1\.d}, za\.d\[w8, 7, vgx2\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c00 	mov	{z0\.d-z3\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0060c1c 	mov	{z28\.d-z31\.d}, za\.d\[w8, 0, vgx4\]
+[^:]+:	c0066c00 	mov	{z0\.d-z3\.d}, za\.d\[w11, 0, vgx4\]
+[^:]+:	c0060ce0 	mov	{z0\.d-z3\.d}, za\.d\[w8, 7, vgx4\]
+[^:]+:	c0060000 	mov	{z0\.b-z1\.b}, za0h\.b\[w12, 0:1\]
+[^:]+:	c006001e 	mov	{z30\.b-z31\.b}, za0h\.b\[w12, 0:1\]
+[^:]+:	c0068000 	mov	{z0\.b-z1\.b}, za0v\.b\[w12, 0:1\]
+[^:]+:	c0066000 	mov	{z0\.b-z1\.b}, za0h\.b\[w15, 0:1\]
+[^:]+:	c00600e0 	mov	{z0\.b-z1\.b}, za0h\.b\[w12, 14:15\]
+[^:]+:	c0064068 	mov	{z8\.b-z9\.b}, za0h\.b\[w14, 6:7\]
+[^:]+:	c0460000 	mov	{z0\.h-z1\.h}, za0h\.h\[w12, 0:1\]
+[^:]+:	c046001e 	mov	{z30\.h-z31\.h}, za0h\.h\[w12, 0:1\]
+[^:]+:	c0468000 	mov	{z0\.h-z1\.h}, za0v\.h\[w12, 0:1\]
+[^:]+:	c0460080 	mov	{z0\.h-z1\.h}, za1h\.h\[w12, 0:1\]
+[^:]+:	c0468080 	mov	{z0\.h-z1\.h}, za1v\.h\[w12, 0:1\]
+[^:]+:	c0466000 	mov	{z0\.h-z1\.h}, za0h\.h\[w15, 0:1\]
+[^:]+:	c0460060 	mov	{z0\.h-z1\.h}, za0h\.h\[w12, 6:7\]
+[^:]+:	c046202a 	mov	{z10\.h-z11\.h}, za0h\.h\[w13, 2:3\]
+[^:]+:	c0860000 	mov	{z0\.s-z1\.s}, za0h\.s\[w12, 0:1\]
+[^:]+:	c086001e 	mov	{z30\.s-z31\.s}, za0h\.s\[w12, 0:1\]
+[^:]+:	c0868000 	mov	{z0\.s-z1\.s}, za0v\.s\[w12, 0:1\]
+[^:]+:	c08600c0 	mov	{z0\.s-z1\.s}, za3h\.s\[w12, 0:1\]
+[^:]+:	c08680c0 	mov	{z0\.s-z1\.s}, za3v\.s\[w12, 0:1\]
+[^:]+:	c0866000 	mov	{z0\.s-z1\.s}, za0h\.s\[w15, 0:1\]
+[^:]+:	c0860020 	mov	{z0\.s-z1\.s}, za0h\.s\[w12, 2:3\]
+[^:]+:	c0864092 	mov	{z18\.s-z19\.s}, za2h\.s\[w14, 0:1\]
+[^:]+:	c0c60000 	mov	{z0\.d-z1\.d}, za0h\.d\[w12, 0:1\]
+[^:]+:	c0c6001e 	mov	{z30\.d-z31\.d}, za0h\.d\[w12, 0:1\]
+[^:]+:	c0c68000 	mov	{z0\.d-z1\.d}, za0v\.d\[w12, 0:1\]
+[^:]+:	c0c600e0 	mov	{z0\.d-z1\.d}, za7h\.d\[w12, 0:1\]
+[^:]+:	c0c680e0 	mov	{z0\.d-z1\.d}, za7v\.d\[w12, 0:1\]
+[^:]+:	c0c66000 	mov	{z0\.d-z1\.d}, za0h\.d\[w15, 0:1\]
+[^:]+:	c0c620d6 	mov	{z22\.d-z23\.d}, za6h\.d\[w13, 0:1\]
+[^:]+:	c0060400 	mov	{z0\.b-z3\.b}, za0h\.b\[w12, 0:3\]
+[^:]+:	c006041c 	mov	{z28\.b-z31\.b}, za0h\.b\[w12, 0:3\]
+[^:]+:	c0068400 	mov	{z0\.b-z3\.b}, za0v\.b\[w12, 0:3\]
+[^:]+:	c0066400 	mov	{z0\.b-z3\.b}, za0h\.b\[w15, 0:3\]
+[^:]+:	c0060460 	mov	{z0\.b-z3\.b}, za0h\.b\[w12, 12:15\]
+[^:]+:	c006444c 	mov	{z12\.b-z15\.b}, za0h\.b\[w14, 8:11\]
+[^:]+:	c0460400 	mov	{z0\.h-z3\.h}, za0h\.h\[w12, 0:3\]
+[^:]+:	c046041c 	mov	{z28\.h-z31\.h}, za0h\.h\[w12, 0:3\]
+[^:]+:	c0468400 	mov	{z0\.h-z3\.h}, za0v\.h\[w12, 0:3\]
+[^:]+:	c0460440 	mov	{z0\.h-z3\.h}, za1h\.h\[w12, 0:3\]
+[^:]+:	c0468440 	mov	{z0\.h-z3\.h}, za1v\.h\[w12, 0:3\]
+[^:]+:	c0466400 	mov	{z0\.h-z3\.h}, za0h\.h\[w15, 0:3\]
+[^:]+:	c0460420 	mov	{z0\.h-z3\.h}, za0h\.h\[w12, 4:7\]
+[^:]+:	c0462430 	mov	{z16\.h-z19\.h}, za0h\.h\[w13, 4:7\]
+[^:]+:	c0860400 	mov	{z0\.s-z3\.s}, za0h\.s\[w12, 0:3\]
+[^:]+:	c086041c 	mov	{z28\.s-z31\.s}, za0h\.s\[w12, 0:3\]
+[^:]+:	c0868400 	mov	{z0\.s-z3\.s}, za0v\.s\[w12, 0:3\]
+[^:]+:	c0860460 	mov	{z0\.s-z3\.s}, za3h\.s\[w12, 0:3\]
+[^:]+:	c0868460 	mov	{z0\.s-z3\.s}, za3v\.s\[w12, 0:3\]
+[^:]+:	c0866400 	mov	{z0\.s-z3\.s}, za0h\.s\[w15, 0:3\]
+[^:]+:	c0862454 	mov	{z20\.s-z23\.s}, za2h\.s\[w13, 0:3\]
+[^:]+:	c0c60400 	mov	{z0\.d-z3\.d}, za0h\.d\[w12, 0:3\]
+[^:]+:	c0c6041c 	mov	{z28\.d-z31\.d}, za0h\.d\[w12, 0:3\]
+[^:]+:	c0c68400 	mov	{z0\.d-z3\.d}, za0v\.d\[w12, 0:3\]
+[^:]+:	c0c604e0 	mov	{z0\.d-z3\.d}, za7h\.d\[w12, 0:3\]
+[^:]+:	c0c684e0 	mov	{z0\.d-z3\.d}, za7v\.d\[w12, 0:3\]
+[^:]+:	c0c66400 	mov	{z0\.d-z3\.d}, za0h\.d\[w15, 0:3\]
+[^:]+:	c0c624b8 	mov	{z24\.d-z27\.d}, za5h\.d\[w13, 0:3\]
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040800 	mov	za\.d\[w8, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0046800 	mov	za\.d\[w11, 0, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040807 	mov	za\.d\[w8, 7, vgx2\], {z0\.d-z1\.d}
+[^:]+:	c0040bc0 	mov	za\.d\[w8, 0, vgx2\], {z30\.d-z31\.d}
+[^:]+:	c0042845 	mov	za\.d\[w9, 5, vgx2\], {z2\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c00 	mov	za\.d\[w8, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0046c00 	mov	za\.d\[w11, 0, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040c07 	mov	za\.d\[w8, 7, vgx4\], {z0\.d-z3\.d}
+[^:]+:	c0040f80 	mov	za\.d\[w8, 0, vgx4\], {z28\.d-z31\.d}
+[^:]+:	c0044e81 	mov	za\.d\[w10, 1, vgx4\], {z20\.d-z23\.d}
+[^:]+:	c0040000 	mov	za0h\.b\[w12, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0048000 	mov	za0v\.b\[w12, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0046000 	mov	za0h\.b\[w15, 0:1\], {z0\.b-z1\.b}
+[^:]+:	c0040007 	mov	za0h\.b\[w12, 14:15\], {z0\.b-z1\.b}
+[^:]+:	c00403c0 	mov	za0h\.b\[w12, 0:1\], {z30\.b-z31\.b}
+[^:]+:	c0044103 	mov	za0h\.b\[w14, 6:7\], {z8\.b-z9\.b}
+[^:]+:	c0440000 	mov	za0h\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0448000 	mov	za0v\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0440004 	mov	za1h\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0448004 	mov	za1v\.h\[w12, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0446000 	mov	za0h\.h\[w15, 0:1\], {z0\.h-z1\.h}
+[^:]+:	c0440003 	mov	za0h\.h\[w12, 6:7\], {z0\.h-z1\.h}
+[^:]+:	c04403c0 	mov	za0h\.h\[w12, 0:1\], {z30\.h-z31\.h}
+[^:]+:	c0442141 	mov	za0h\.h\[w13, 2:3\], {z10\.h-z11\.h}
+[^:]+:	c0840000 	mov	za0h\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0848000 	mov	za0v\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0840006 	mov	za3h\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0848006 	mov	za3v\.s\[w12, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0846000 	mov	za0h\.s\[w15, 0:1\], {z0\.s-z1\.s}
+[^:]+:	c0840001 	mov	za0h\.s\[w12, 2:3\], {z0\.s-z1\.s}
+[^:]+:	c08403c0 	mov	za0h\.s\[w12, 0:1\], {z30\.s-z31\.s}
+[^:]+:	c0844244 	mov	za2h\.s\[w14, 0:1\], {z18\.s-z19\.s}
+[^:]+:	c0c40000 	mov	za0h\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c48000 	mov	za0v\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c40007 	mov	za7h\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c48007 	mov	za7v\.d\[w12, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c46000 	mov	za0h\.d\[w15, 0:1\], {z0\.d-z1\.d}
+[^:]+:	c0c403c0 	mov	za0h\.d\[w12, 0:1\], {z30\.d-z31\.d}
+[^:]+:	c0c422c6 	mov	za6h\.d\[w13, 0:1\], {z22\.d-z23\.d}
+[^:]+:	c0040400 	mov	za0h\.b\[w12, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0048400 	mov	za0v\.b\[w12, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0046400 	mov	za0h\.b\[w15, 0:3\], {z0\.b-z3\.b}
+[^:]+:	c0040403 	mov	za0h\.b\[w12, 12:15\], {z0\.b-z3\.b}
+[^:]+:	c0040780 	mov	za0h\.b\[w12, 0:3\], {z28\.b-z31\.b}
+[^:]+:	c0044582 	mov	za0h\.b\[w14, 8:11\], {z12\.b-z15\.b}
+[^:]+:	c0440400 	mov	za0h\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0448400 	mov	za0v\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0440402 	mov	za1h\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0448402 	mov	za1v\.h\[w12, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0446400 	mov	za0h\.h\[w15, 0:3\], {z0\.h-z3\.h}
+[^:]+:	c0440401 	mov	za0h\.h\[w12, 4:7\], {z0\.h-z3\.h}
+[^:]+:	c0440780 	mov	za0h\.h\[w12, 0:3\], {z28\.h-z31\.h}
+[^:]+:	c0442601 	mov	za0h\.h\[w13, 4:7\], {z16\.h-z19\.h}
+[^:]+:	c0840400 	mov	za0h\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0848400 	mov	za0v\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0840403 	mov	za3h\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0848403 	mov	za3v\.s\[w12, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0846400 	mov	za0h\.s\[w15, 0:3\], {z0\.s-z3\.s}
+[^:]+:	c0840780 	mov	za0h\.s\[w12, 0:3\], {z28\.s-z31\.s}
+[^:]+:	c0842682 	mov	za2h\.s\[w13, 0:3\], {z20\.s-z23\.s}
+[^:]+:	c0c40400 	mov	za0h\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c48400 	mov	za0v\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c40407 	mov	za7h\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c48407 	mov	za7v\.d\[w12, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c46400 	mov	za0h\.d\[w15, 0:3\], {z0\.d-z3\.d}
+[^:]+:	c0c40780 	mov	za0h\.d\[w12, 0:3\], {z28\.d-z31\.d}
+[^:]+:	c0c42705 	mov	za5h\.d\[w13, 0:3\], {z24\.d-z27\.d}
diff --git a/gas/testsuite/gas/aarch64/sme2-1.s b/gas/testsuite/gas/aarch64/sme2-1.s
new file mode 100644
index 00000000000..222f8e06b96
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-1.s
@@ -0,0 +1,338 @@
+	mov	{ z0.b - z1.b }, za.b[w8, 0]
+	mov	{ z0.h - z1.h }, za.h[w8, 0]
+	mov	{ z0.s - z1.s }, za.s[w8, 0]
+	mov	{ z0.d - z1.d }, za.d[w8, 0]
+	mov	{ z30.d - z31.d }, za.d[w8, 0]
+	mov	{ z0.d - z1.d }, za.d[w11, 0]
+	mov	{ z0.d - z1.d }, za.d[w8, 7]
+
+	mov	{ z0.b - z3.b }, za.b[w8, 0]
+	mov	{ z0.h - z3.h }, za.h[w8, 0]
+	mov	{ z0.s - z3.s }, za.s[w8, 0]
+	mov	{ z0.d - z3.d }, za.d[w8, 0]
+	mov	{ z28.d - z31.d }, za.d[w8, 0]
+	mov	{ z0.d - z3.d }, za.d[w11, 0]
+	mov	{ z0.d - z3.d }, za.d[w8, 7]
+
+	mov	{ z0.b - z1.b }, za0h.b[w12, 0:1]
+	mov	{ z30.b - z31.b }, za0h.b[w12, 0:1]
+	mov	{ z0.b - z1.b }, za0v.b[w12, 0:1]
+	mov	{ z0.b - z1.b }, za0h.b[w15, 0:1]
+	mov	{ z0.b - z1.b }, za0h.b[w12, 14:15]
+	mov	{ z8.b - z9.b }, za0h.b[w14, 6:7]
+
+	mov	{ z0.h - z1.h }, za0h.h[w12, 0:1]
+	mov	{ z30.h - z31.h }, za0h.h[w12, 0:1]
+	mov	{ z0.h - z1.h }, za0v.h[w12, 0:1]
+	mov	{ z0.h -[...]

[diff truncated at 100000 bytes]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-03-30 10:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-30 10:14 [binutils-gdb] aarch64: Add the SME2 MOVA instructions Richard Sandiford

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).