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

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

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

    aarch64: Add the SME2 MLALL and MLSLL instructions
    
    SMLALL, SMLSLL, UMLALL and UMLSLL have the same format.
    USMLALL and SUMLALL allow the same operand types as those
    instructions, except that SUMLALL does not have the multi-vector
    x multi-vector forms (which would be redundant with USMLALL).

Diff:
---
 gas/config/tc-aarch64.c                           |    5 +
 gas/testsuite/gas/aarch64/sme2-13-invalid.d       |    3 +
 gas/testsuite/gas/aarch64/sme2-13-invalid.l       |   80 +
 gas/testsuite/gas/aarch64/sme2-13-invalid.s       |   83 +
 gas/testsuite/gas/aarch64/sme2-13-noarch.d        |    3 +
 gas/testsuite/gas/aarch64/sme2-13-noarch.l        |  253 +++
 gas/testsuite/gas/aarch64/sme2-13.d               |  261 +++
 gas/testsuite/gas/aarch64/sme2-13.s               |  283 +++
 gas/testsuite/gas/aarch64/sme2-14-invalid.d       |    3 +
 gas/testsuite/gas/aarch64/sme2-14-invalid.l       |    7 +
 gas/testsuite/gas/aarch64/sme2-14-invalid.s       |    7 +
 gas/testsuite/gas/aarch64/sme2-14-noarch.d        |    3 +
 gas/testsuite/gas/aarch64/sme2-14-noarch.l        |  107 +
 gas/testsuite/gas/aarch64/sme2-14.d               |  115 +
 gas/testsuite/gas/aarch64/sme2-14.s               |  118 +
 gas/testsuite/gas/aarch64/sme2-i16i64-2-invalid.d |    3 +
 gas/testsuite/gas/aarch64/sme2-i16i64-2-invalid.l |   95 +
 gas/testsuite/gas/aarch64/sme2-i16i64-2-invalid.s |   88 +
 gas/testsuite/gas/aarch64/sme2-i16i64-2-noarch.d  |    3 +
 gas/testsuite/gas/aarch64/sme2-i16i64-2-noarch.l  |  253 +++
 gas/testsuite/gas/aarch64/sme2-i16i64-2.d         |  261 +++
 gas/testsuite/gas/aarch64/sme2-i16i64-2.s         |  283 +++
 include/opcode/aarch64.h                          |    5 +
 opcodes/aarch64-asm-2.c                           |   35 +-
 opcodes/aarch64-dis-2.c                           | 2410 +++++++++++++--------
 opcodes/aarch64-opc-2.c                           |    5 +
 opcodes/aarch64-opc.c                             |   22 +
 opcodes/aarch64-opc.h                             |    2 +
 opcodes/aarch64-tbl.h                             |   82 +
 29 files changed, 3974 insertions(+), 904 deletions(-)

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 2aa38381f47..2c8d5916182 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -6729,8 +6729,11 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	case AARCH64_OPND_SVE_Zn_INDEX:
 	case AARCH64_OPND_SME_Zm_INDEX1:
 	case AARCH64_OPND_SME_Zm_INDEX2:
+	case AARCH64_OPND_SME_Zm_INDEX3_1:
 	case AARCH64_OPND_SME_Zm_INDEX3_2:
 	case AARCH64_OPND_SME_Zm_INDEX3_10:
+	case AARCH64_OPND_SME_Zm_INDEX4_1:
+	case AARCH64_OPND_SME_Zm_INDEX4_10:
 	case AARCH64_OPND_SME_Zn_INDEX1_16:
 	case AARCH64_OPND_SME_Zn_INDEX2_15:
 	case AARCH64_OPND_SME_Zn_INDEX2_16:
@@ -7852,7 +7855,9 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	  info->imm.value = val;
 	  break;
 
+	case AARCH64_OPND_SME_ZA_array_off1x4:
 	case AARCH64_OPND_SME_ZA_array_off2x2:
+	case AARCH64_OPND_SME_ZA_array_off2x4:
 	case AARCH64_OPND_SME_ZA_array_off3_0:
 	case AARCH64_OPND_SME_ZA_array_off3_5:
 	case AARCH64_OPND_SME_ZA_array_off3x2:
diff --git a/gas/testsuite/gas/aarch64/sme2-13-invalid.d b/gas/testsuite/gas/aarch64/sme2-13-invalid.d
new file mode 100644
index 00000000000..8980695902d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-13-invalid.s
+#error_output: sme2-13-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-13-invalid.l b/gas/testsuite/gas/aarch64/sme2-13-invalid.l
new file mode 100644
index 00000000000..88a74ac3d5f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13-invalid.l
@@ -0,0 +1,80 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected a ZA array vector at operand 1 -- `smlall 0,z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `smlall za\.s\[w8,0:3\],0,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `smlall za\.s\[w8,0:3\],z0\.b,0'
+[^ :]+:[0-9]+: Error: expected 'za' rather than a ZA tile at operand 1 -- `smlall za0\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected 'za' rather than a ZA tile at operand 1 -- `smlall za0h\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w7,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w12,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:1\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:2\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0,vgx4\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: unexpected vector group size at operand 1 -- `smlall za\.s\[w8,0:3,vgx2\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: unexpected vector group size at operand 1 -- `smlall za\.s\[w8,0:3,vgx4\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,1:4\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,2:5\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,3:6\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 1 -- `smlall za\.s\[w8,16:19\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],z0\.b,z16\.b\[0\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],z0\.b,z0\.b\[-1\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],z0\.b,z0\.b\[16\]'
+[^ :]+:[0-9]+: Error: operand mismatch -- `smlall za\.s\[w8,0:3\],z0\.h,z0\.h\[0\]'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	smlall za\.d\[w8, 0:3\], z0\.h, z0\.h\[0\]
+[^ :]+:[0-9]+: Error: operand mismatch -- `smlall za\.s\[w8,0:3\],z0\.s,z0\.s\[0\]'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	smlall za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w7,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w12,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:1\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,1:4\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,2:5\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,3:6\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z1\.b-z2\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z16\.b\[0\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[-1\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[16\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w7,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a selection register in the range w8-w11 at operand 1 -- `smlall za\.s\[w12,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:1\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a range of four offsets at operand 1 -- `smlall za\.s\[w8,0:2\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,1:4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,2:5\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: starting offset is not a multiple of 4 at operand 1 -- `smlall za\.s\[w8,3:6\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z1\.b-z4\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z2\.b-z5\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z3\.b-z6\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z16\.b\[0\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[-1\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 15 at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[16\]'
+[^ :]+:[0-9]+: Error: unexpected vector group size at operand 1 -- `smlall za\.s\[w8,0:3,vgx2\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: unexpected vector group size at operand 1 -- `smlall za\.s\[w8,0:3,vgx4\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 12 at operand 1 -- `smlall za\.s\[w8,16:19\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],z0\.b,z16\.b'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 2 -- `smlall za\.s\[w8,0:3\],{z0\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z16\.b'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z16\.b'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z1\.b-z2\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z1\.b-z2\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 2 -- `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: immediate offset out of range 0 to 4 at operand 1 -- `smlall za\.s\[w8,8:11\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z1\.b-z4\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z2\.b-z5\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `smlall za\.s\[w8,0:3\],{z3\.b-z6\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z1\.b-z4\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z2\.b-z5\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z3\.b-z6\.b}'
diff --git a/gas/testsuite/gas/aarch64/sme2-13-invalid.s b/gas/testsuite/gas/aarch64/sme2-13-invalid.s
new file mode 100644
index 00000000000..5e17714583e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13-invalid.s
@@ -0,0 +1,83 @@
+	smlall	0, z0.b, z0.b[0]
+	smlall	za.s[w8, 0:3], 0, z0.b[0]
+	smlall	za.s[w8, 0:3], z0.b, 0
+
+	smlall	za0.s[w8, 0:3], z0.b, z0.b[0]
+	smlall	za0h.s[w8, 0:3], z0.b, z0.b[0]
+	smlall	za.s[w7, 0:3], z0.b, z0.b[0]
+	smlall	za.s[w12, 0:3], z0.b, z0.b[0]
+	smlall	za.s[w8, 0], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:1], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:2], z0.b, z0.b[0]
+	smlall	za.s[w8, 0, vgx4], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx2], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx4], z0.b, z0.b[0]
+	smlall	za.s[w8, 1:4], z0.b, z0.b[0]
+	smlall	za.s[w8, 2:5], z0.b, z0.b[0]
+	smlall	za.s[w8, 3:6], z0.b, z0.b[0]
+	smlall	za.s[w8, 16:19], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:3], z0.b, z16.b[0]
+	smlall	za.s[w8, 0:3], z0.b, z0.b[-1]
+	smlall	za.s[w8, 0:3], z0.b, z0.b[16]
+	smlall	za.s[w8, 0:3], z0.h, z0.h[0]
+	smlall	za.s[w8, 0:3], z0.s, z0.s[0]
+
+	smlall	za.s[w7, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w12, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:1], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:2], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 1:4], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 2:5], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 3:6], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 8:11], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z1.b - z2.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z16.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[-1]
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[16]
+
+	smlall	za.s[w7, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w12, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:1], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:2], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 1:4], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 2:5], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 3:6], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 8:11], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z1.b - z4.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z2.b - z5.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z3.b - z6.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z16.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[-1]
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[16]
+
+	smlall	za.s[w8, 0:3, vgx2], z0.b, z0.b
+	smlall	za.s[w8, 0:3, vgx4], z0.b, z0.b
+	smlall	za.s[w8, 16:19], z0.b, z0.b
+	smlall	za.s[w8, 0:3], z0.b, z16.b
+
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z1.b }, z0.b
+	smlall	za.s[w8, 8:11], { z0.b - z1.b }, z0.b
+	smlall	za.s[w8, 0:3], { z0.b - z2.b }, z0.b
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z16.b
+
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z3.b }, z0.b
+	smlall	za.s[w8, 8:11], { z0.b - z3.b }, z0.b
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z16.b
+
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 8:11], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 0:3], { z1.b - z2.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, { z1.b - z2.b }
+
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 8:11], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z1.b - z4.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z2.b - z5.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z3.b - z6.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, { z1.b - z4.b }
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, { z2.b - z5.b }
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, { z3.b - z6.b }
diff --git a/gas/testsuite/gas/aarch64/sme2-13-noarch.d b/gas/testsuite/gas/aarch64/sme2-13-noarch.d
new file mode 100644
index 00000000000..6df837fb6bb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-13.s
+#error_output: sme2-13-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-13-noarch.l b/gas/testsuite/gas/aarch64/sme2-13-noarch.l
new file mode 100644
index 00000000000..3d55aaa986a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13-noarch.l
@@ -0,0 +1,253 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,12:15\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],z0\.b,z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w10,4:7\],z25\.b,z7\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w10,4:7\],{z22\.b-z23\.b},{z18\.b-z19\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,4:7\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlall za\.s\[w11,0:3\],{z16\.b-z19\.b},{z24\.b-z27\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,12:15\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],z0\.b,z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w10,4:7\],z25\.b,z7\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w10,4:7\],{z22\.b-z23\.b},{z18\.b-z19\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `smlsll za\.s\[w11,0:3\],{z16\.b-z19\.b},{z24\.b-z27\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,12:15\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],z0\.b,z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w10,4:7\],z25\.b,z7\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w10,4:7\],{z22\.b-z23\.b},{z18\.b-z19\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,4:7\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlall za\.s\[w11,0:3\],{z16\.b-z19\.b},{z24\.b-z27\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,12:15\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],z0\.b,z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w10,4:7\],z25\.b,z7\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w10,4:7\],{z22\.b-z23\.b},{z18\.b-z19\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,4:7\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w8,0:3\],{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `umlsll za\.s\[w11,0:3\],{z16\.b-z19\.b},{z24\.b-z27\.b}'
diff --git a/gas/testsuite/gas/aarch64/sme2-13.d b/gas/testsuite/gas/aarch64/sme2-13.d
new file mode 100644
index 00000000000..b8f00d1f008
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13.d
@@ -0,0 +1,261 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+:	c1000000 	smlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006000 	smlall	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1000003 	smlall	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003e0 	smlall	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0000 	smlall	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c00 	smlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6a2 	smlall	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106000 	smlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100001 	smlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003c0 	smlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c06 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e41 	smlall	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e000 	smlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108001 	smlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108380 	smlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c06 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec704 	smlall	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200400 	smlall	za\.s\[w8, 0:3\], z0\.b, z0\.b
+[^:]+:	c1206400 	smlall	za\.s\[w11, 0:3\], z0\.b, z0\.b
+[^:]+:	c1200403 	smlall	za\.s\[w8, 12:15\], z0\.b, z0\.b
+[^:]+:	c12007e0 	smlall	za\.s\[w8, 0:3\], z31\.b, z0\.b
+[^:]+:	c12f0400 	smlall	za\.s\[w8, 0:3\], z0\.b, z15\.b
+[^:]+:	c1274721 	smlall	za\.s\[w10, 4:7\], z25\.b, z7\.b
+[^:]+:	c1200000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206000 	smlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200001 	smlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003c0 	smlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003e0 	smlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003e0 	smlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2261 	smlall	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306000 	smlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300001 	smlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300380 	smlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003a0 	smlall	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003c0 	smlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003c0 	smlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003e0 	smlall	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2320 	smlall	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1a00000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a06000 	smlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00001 	smlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a003c0 	smlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+:	c1be0000 	smlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+:	c1b242c1 	smlall	za\.s\[w10, 4:7, vgx2\], {z22\.b-z23\.b}, {z18\.b-z19\.b}
+[^:]+:	c1a10000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a16000 	smlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10001 	smlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10380 	smlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c1bd0000 	smlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c1b96200 	smlall	za\.s\[w11, 0:3, vgx4\], {z16\.b-z19\.b}, {z24\.b-z27\.b}
+[^:]+:	c1000008 	smlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006008 	smlsll	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c100000b 	smlsll	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003e8 	smlsll	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0008 	smlsll	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c08 	smlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6aa 	smlsll	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106008 	smlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100009 	smlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003c8 	smlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c0e 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e49 	smlsll	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e008 	smlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108009 	smlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108388 	smlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c0e 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec70c 	smlsll	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200408 	smlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b
+[^:]+:	c1206408 	smlsll	za\.s\[w11, 0:3\], z0\.b, z0\.b
+[^:]+:	c120040b 	smlsll	za\.s\[w8, 12:15\], z0\.b, z0\.b
+[^:]+:	c12007e8 	smlsll	za\.s\[w8, 0:3\], z31\.b, z0\.b
+[^:]+:	c12f0408 	smlsll	za\.s\[w8, 0:3\], z0\.b, z15\.b
+[^:]+:	c1274729 	smlsll	za\.s\[w10, 4:7\], z25\.b, z7\.b
+[^:]+:	c1200008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206008 	smlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200009 	smlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003c8 	smlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003e8 	smlsll	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003e8 	smlsll	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2269 	smlsll	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306008 	smlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300009 	smlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300388 	smlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003a8 	smlsll	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003c8 	smlsll	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003c8 	smlsll	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003e8 	smlsll	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2328 	smlsll	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1a00008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a06008 	smlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00009 	smlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a003c8 	smlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+:	c1be0008 	smlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+:	c1b242c9 	smlsll	za\.s\[w10, 4:7, vgx2\], {z22\.b-z23\.b}, {z18\.b-z19\.b}
+[^:]+:	c1a10008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a16008 	smlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10009 	smlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10388 	smlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c1bd0008 	smlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c1b96208 	smlsll	za\.s\[w11, 0:3, vgx4\], {z16\.b-z19\.b}, {z24\.b-z27\.b}
+[^:]+:	c1000010 	umlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006010 	umlall	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1000013 	umlall	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003f0 	umlall	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0010 	umlall	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c10 	umlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6b2 	umlall	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106010 	umlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100011 	umlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003d0 	umlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c16 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e51 	umlall	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e010 	umlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108011 	umlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108390 	umlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c16 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec714 	umlall	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200410 	umlall	za\.s\[w8, 0:3\], z0\.b, z0\.b
+[^:]+:	c1206410 	umlall	za\.s\[w11, 0:3\], z0\.b, z0\.b
+[^:]+:	c1200413 	umlall	za\.s\[w8, 12:15\], z0\.b, z0\.b
+[^:]+:	c12007f0 	umlall	za\.s\[w8, 0:3\], z31\.b, z0\.b
+[^:]+:	c12f0410 	umlall	za\.s\[w8, 0:3\], z0\.b, z15\.b
+[^:]+:	c1274731 	umlall	za\.s\[w10, 4:7\], z25\.b, z7\.b
+[^:]+:	c1200010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206010 	umlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200011 	umlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003d0 	umlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003f0 	umlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003f0 	umlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2271 	umlall	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306010 	umlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300011 	umlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300390 	umlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003b0 	umlall	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003d0 	umlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003d0 	umlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003f0 	umlall	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2330 	umlall	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1a00010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a06010 	umlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00011 	umlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a003d0 	umlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+:	c1be0010 	umlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+:	c1b242d1 	umlall	za\.s\[w10, 4:7, vgx2\], {z22\.b-z23\.b}, {z18\.b-z19\.b}
+[^:]+:	c1a10010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a16010 	umlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10011 	umlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10390 	umlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c1bd0010 	umlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c1b96210 	umlall	za\.s\[w11, 0:3, vgx4\], {z16\.b-z19\.b}, {z24\.b-z27\.b}
+[^:]+:	c1000018 	umlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006018 	umlsll	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c100001b 	umlsll	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003f8 	umlsll	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0018 	umlsll	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c18 	umlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6ba 	umlsll	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106018 	umlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100019 	umlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003d8 	umlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c1e 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e59 	umlsll	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e018 	umlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108019 	umlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108398 	umlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c1e 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec71c 	umlsll	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200418 	umlsll	za\.s\[w8, 0:3\], z0\.b, z0\.b
+[^:]+:	c1206418 	umlsll	za\.s\[w11, 0:3\], z0\.b, z0\.b
+[^:]+:	c120041b 	umlsll	za\.s\[w8, 12:15\], z0\.b, z0\.b
+[^:]+:	c12007f8 	umlsll	za\.s\[w8, 0:3\], z31\.b, z0\.b
+[^:]+:	c12f0418 	umlsll	za\.s\[w8, 0:3\], z0\.b, z15\.b
+[^:]+:	c1274739 	umlsll	za\.s\[w10, 4:7\], z25\.b, z7\.b
+[^:]+:	c1200018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206018 	umlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200019 	umlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003d8 	umlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003f8 	umlsll	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003f8 	umlsll	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2279 	umlsll	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306018 	umlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300019 	umlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300398 	umlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003b8 	umlsll	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003d8 	umlsll	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003d8 	umlsll	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003f8 	umlsll	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2338 	umlsll	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1a00018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a06018 	umlsll	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00019 	umlsll	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a003d8 	umlsll	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+:	c1be0018 	umlsll	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+:	c1b242d9 	umlsll	za\.s\[w10, 4:7, vgx2\], {z22\.b-z23\.b}, {z18\.b-z19\.b}
+[^:]+:	c1a10018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a16018 	umlsll	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10019 	umlsll	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10398 	umlsll	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c1bd0018 	umlsll	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c1b96218 	umlsll	za\.s\[w11, 0:3, vgx4\], {z16\.b-z19\.b}, {z24\.b-z27\.b}
diff --git a/gas/testsuite/gas/aarch64/sme2-13.s b/gas/testsuite/gas/aarch64/sme2-13.s
new file mode 100644
index 00000000000..3881461ac3e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-13.s
@@ -0,0 +1,283 @@
+	smlall	za.s[w8, 0:3], z0.b, z0.b[0]
+	smlall	za.s[w11, 0:3], z0.b, z0.b[0]
+	smlall	za.s[w8, 12:15], z0.b, z0.b[0]
+	smlall	za.s[w8, 0:3], z31.b, z0.b[0]
+	smlall	za.s[w8, 0:3], z0.b, z15.b[0]
+	smlall	za.s[w8, 0:3], z0.b, z0.b[15]
+	smlall	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[15]
+	smlall	za.s[w9, 4:7], { z18.b - z19.b }, z9.b[12]
+
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b[0]
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[15]
+	smlall	za.s[w10, 0:3], { z24.b - z27.b }, z14.b[6]
+
+	smlall	za.s[w8, 0:3], z0.b, z0.b
+	smlall	za.s[w11, 0:3], z0.b, z0.b
+	smlall	za.s[w8, 12:15], z0.b, z0.b
+	smlall	za.s[w8, 0:3], z31.b, z0.b
+	smlall	za.s[w8, 0:3], z0.b, z15.b
+	smlall	za.s[w10, 4:7], z25.b, z7.b
+
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b
+	smlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b
+	smlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b
+	smlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b
+	smlall	za.s[w8, 0:3], { z31.b, z0.b }, z0.b
+	smlall	za.s[w8, 0:3], { z31.b - z0.b }, z0.b
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b
+	smlall	za.s[w9, 4:7], { z19.b - z20.b }, z13.b
+
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
+	smlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b
+	smlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b
+	smlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b
+	smlall	za.s[w8, 0:3], { z29.b - z0.b }, z0.b
+	smlall	za.s[w8, 0:3], { z30.b, z31.b, z0.b, z1.b }, z0.b
+	smlall	za.s[w8, 0:3], { z30.b - z1.b }, z0.b
+	smlall	za.s[w8, 0:3], { z31.b - z2.b }, z0.b
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b
+	smlall	za.s[w9, 0:3], { z25.b - z28.b }, z14.b
+
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w11, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 4:7], { z0.b - z1.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 0:3], { z30.b - z31.b }, { z0.b - z1.b }
+	smlall	za.s[w8, 0:3], { z0.b - z1.b }, { z30.b - z31.b }
+	smlall	za.s[w10, 4:7], { z22.b - z23.b }, { z18.b - z19.b }
+
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w11, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 4:7], { z0.b - z3.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z28.b - z31.b }, { z0.b - z3.b }
+	smlall	za.s[w8, 0:3], { z0.b - z3.b }, { z28.b - z31.b }
+	smlall	za.s[w11, 0:3], { z16.b - z19.b }, { z24.b - z27.b }
+
+	smlsll	za.s[w8, 0:3], z0.b, z0.b[0]
+	smlsll	za.s[w11, 0:3], z0.b, z0.b[0]
+	smlsll	za.s[w8, 12:15], z0.b, z0.b[0]
+	smlsll	za.s[w8, 0:3], z31.b, z0.b[0]
+	smlsll	za.s[w8, 0:3], z0.b, z15.b[0]
+	smlsll	za.s[w8, 0:3], z0.b, z0.b[15]
+	smlsll	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	smlsll	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	smlsll	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[15]
+	smlsll	za.s[w9, 4:7], { z18.b - z19.b }, z9.b[12]
+
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
+	smlsll	za.s[w11, 0:3], { z0.b - z3.b }, z0.b[0]
+	smlsll	za.s[w8, 4:7], { z0.b - z3.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3], { z28.b - z31.b }, z0.b[0]
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, z15.b[0]
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[15]
+	smlsll	za.s[w10, 0:3], { z24.b - z27.b }, z14.b[6]
+
+	smlsll	za.s[w8, 0:3], z0.b, z0.b
+	smlsll	za.s[w11, 0:3], z0.b, z0.b
+	smlsll	za.s[w8, 12:15], z0.b, z0.b
+	smlsll	za.s[w8, 0:3], z31.b, z0.b
+	smlsll	za.s[w8, 0:3], z0.b, z15.b
+	smlsll	za.s[w10, 4:7], z25.b, z7.b
+
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b
+	smlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b
+	smlsll	za.s[w11, 0:3], { z0.b - z1.b }, z0.b
+	smlsll	za.s[w8, 4:7], { z0.b - z1.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z30.b - z31.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z31.b, z0.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z31.b - z0.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, z15.b
+	smlsll	za.s[w9, 4:7], { z19.b - z20.b }, z13.b
+
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b
+	smlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
+	smlsll	za.s[w11, 0:3], { z0.b - z3.b }, z0.b
+	smlsll	za.s[w8, 4:7], { z0.b - z3.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z28.b - z31.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z29.b - z0.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z30.b, z31.b, z0.b, z1.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z30.b - z1.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z31.b - z2.b }, z0.b
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, z15.b
+	smlsll	za.s[w9, 0:3], { z25.b - z28.b }, z14.b
+
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	smlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, { z0.b - z1.b }
+	smlsll	za.s[w11, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	smlsll	za.s[w8, 4:7], { z0.b - z1.b }, { z0.b - z1.b }
+	smlsll	za.s[w8, 0:3], { z30.b - z31.b }, { z0.b - z1.b }
+	smlsll	za.s[w8, 0:3], { z0.b - z1.b }, { z30.b - z31.b }
+	smlsll	za.s[w10, 4:7], { z22.b - z23.b }, { z18.b - z19.b }
+
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	smlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
+	smlsll	za.s[w11, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	smlsll	za.s[w8, 4:7], { z0.b - z3.b }, { z0.b - z3.b }
+	smlsll	za.s[w8, 0:3], { z28.b - z31.b }, { z0.b - z3.b }
+	smlsll	za.s[w8, 0:3], { z0.b - z3.b }, { z28.b - z31.b }
+	smlsll	za.s[w11, 0:3], { z16.b - z19.b }, { z24.b - z27.b }
+
+	umlall	za.s[w8, 0:3], z0.b, z0.b[0]
+	umlall	za.s[w11, 0:3], z0.b, z0.b[0]
+	umlall	za.s[w8, 12:15], z0.b, z0.b[0]
+	umlall	za.s[w8, 0:3], z31.b, z0.b[0]
+	umlall	za.s[w8, 0:3], z0.b, z15.b[0]
+	umlall	za.s[w8, 0:3], z0.b, z0.b[15]
+	umlall	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	umlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	umlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	umlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	umlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[15]
+	umlall	za.s[w9, 4:7], { z18.b - z19.b }, z9.b[12]
+
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[0]
+	umlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
+	umlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b[0]
+	umlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b[0]
+	umlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b[0]
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b[0]
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[15]
+	umlall	za.s[w10, 0:3], { z24.b - z27.b }, z14.b[6]
+
+	umlall	za.s[w8, 0:3], z0.b, z0.b
+	umlall	za.s[w11, 0:3], z0.b, z0.b
+	umlall	za.s[w8, 12:15], z0.b, z0.b
+	umlall	za.s[w8, 0:3], z31.b, z0.b
+	umlall	za.s[w8, 0:3], z0.b, z15.b
+	umlall	za.s[w10, 4:7], z25.b, z7.b
+
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b
+	umlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b
+	umlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b
+	umlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b
+	umlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b
+	umlall	za.s[w8, 0:3], { z31.b, z0.b }, z0.b
+	umlall	za.s[w8, 0:3], { z31.b - z0.b }, z0.b
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b
+	umlall	za.s[w9, 4:7], { z19.b - z20.b }, z13.b
+
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b
+	umlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
+	umlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b
+	umlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b
+	umlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b
+	umlall	za.s[w8, 0:3], { z29.b - z0.b }, z0.b
+	umlall	za.s[w8, 0:3], { z30.b, z31.b, z0.b, z1.b }, z0.b
+	umlall	za.s[w8, 0:3], { z30.b - z1.b }, z0.b
+	umlall	za.s[w8, 0:3], { z31.b - z2.b }, z0.b
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b
+	umlall	za.s[w9, 0:3], { z25.b - z28.b }, z14.b
+
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	umlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, { z0.b - z1.b }
+	umlall	za.s[w11, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	umlall	za.s[w8, 4:7], { z0.b - z1.b }, { z0.b - z1.b }
+	umlall	za.s[w8, 0:3], { z30.b - z31.b }, { z0.b - z1.b }
+	umlall	za.s[w8, 0:3], { z0.b - z1.b }, { z30.b - z31.b }
+	umlall	za.s[w10, 4:7], { z22.b - z23.b }, { z18.b - z19.b }
+
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	umlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
+	umlall	za.s[w11, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	umlall	za.s[w8, 4:7], { z0.b - z3.b }, { z0.b - z3.b }
+	umlall	za.s[w8, 0:3], { z28.b - z31.b }, { z0.b - z3.b }
+	umlall	za.s[w8, 0:3], { z0.b - z3.b }, { z28.b - z31.b }
+	umlall	za.s[w11, 0:3], { z16.b - z19.b }, { z24.b - z27.b }
+
+	umlsll	za.s[w8, 0:3], z0.b, z0.b[0]
+	umlsll	za.s[w11, 0:3], z0.b, z0.b[0]
+	umlsll	za.s[w8, 12:15], z0.b, z0.b[0]
+	umlsll	za.s[w8, 0:3], z31.b, z0.b[0]
+	umlsll	za.s[w8, 0:3], z0.b, z15.b[0]
+	umlsll	za.s[w8, 0:3], z0.b, z0.b[15]
+	umlsll	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	umlsll	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	umlsll	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[15]
+	umlsll	za.s[w9, 4:7], { z18.b - z19.b }, z9.b[12]
+
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
+	umlsll	za.s[w11, 0:3], { z0.b - z3.b }, z0.b[0]
+	umlsll	za.s[w8, 4:7], { z0.b - z3.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3], { z28.b - z31.b }, z0.b[0]
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, z15.b[0]
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[15]
+	umlsll	za.s[w10, 0:3], { z24.b - z27.b }, z14.b[6]
+
+	umlsll	za.s[w8, 0:3], z0.b, z0.b
+	umlsll	za.s[w11, 0:3], z0.b, z0.b
+	umlsll	za.s[w8, 12:15], z0.b, z0.b
+	umlsll	za.s[w8, 0:3], z31.b, z0.b
+	umlsll	za.s[w8, 0:3], z0.b, z15.b
+	umlsll	za.s[w10, 4:7], z25.b, z7.b
+
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, z0.b
+	umlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b
+	umlsll	za.s[w11, 0:3], { z0.b - z1.b }, z0.b
+	umlsll	za.s[w8, 4:7], { z0.b - z1.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z30.b - z31.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z31.b, z0.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z31.b - z0.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, z15.b
+	umlsll	za.s[w9, 4:7], { z19.b - z20.b }, z13.b
+
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, z0.b
+	umlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
+	umlsll	za.s[w11, 0:3], { z0.b - z3.b }, z0.b
+	umlsll	za.s[w8, 4:7], { z0.b - z3.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z28.b - z31.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z29.b - z0.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z30.b, z31.b, z0.b, z1.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z30.b - z1.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z31.b - z2.b }, z0.b
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, z15.b
+	umlsll	za.s[w9, 0:3], { z25.b - z28.b }, z14.b
+
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	umlsll	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, { z0.b - z1.b }
+	umlsll	za.s[w11, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	umlsll	za.s[w8, 4:7], { z0.b - z1.b }, { z0.b - z1.b }
+	umlsll	za.s[w8, 0:3], { z30.b - z31.b }, { z0.b - z1.b }
+	umlsll	za.s[w8, 0:3], { z0.b - z1.b }, { z30.b - z31.b }
+	umlsll	za.s[w10, 4:7], { z22.b - z23.b }, { z18.b - z19.b }
+
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	umlsll	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
+	umlsll	za.s[w11, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
+	umlsll	za.s[w8, 4:7], { z0.b - z3.b }, { z0.b - z3.b }
+	umlsll	za.s[w8, 0:3], { z28.b - z31.b }, { z0.b - z3.b }
+	umlsll	za.s[w8, 0:3], { z0.b - z3.b }, { z28.b - z31.b }
+	umlsll	za.s[w11, 0:3], { z16.b - z19.b }, { z24.b - z27.b }
diff --git a/gas/testsuite/gas/aarch64/sme2-14-invalid.d b/gas/testsuite/gas/aarch64/sme2-14-invalid.d
new file mode 100644
index 00000000000..980bd4e2d28
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-14-invalid.s
+#error_output: sme2-14-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-14-invalid.l b/gas/testsuite/gas/aarch64/sme2-14-invalid.l
new file mode 100644
index 00000000000..c398f6bfed5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14-invalid.l
@@ -0,0 +1,7 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected a ZA array vector at operand 1 -- `sumlall 0,z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `sumlall za\.s\[w8,0:3\],0,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `sumlall za\.s\[w8,0:3\],z0\.b,0'
+[^ :]+:[0-9]+: Error: operand 3 must be an indexed SVE vector register -- `sumlall za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
diff --git a/gas/testsuite/gas/aarch64/sme2-14-invalid.s b/gas/testsuite/gas/aarch64/sme2-14-invalid.s
new file mode 100644
index 00000000000..8004abbe0f5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14-invalid.s
@@ -0,0 +1,7 @@
+	sumlall	0, z0.b, z0.b[0]
+	sumlall	za.s[w8, 0:3], 0, z0.b[0]
+	sumlall	za.s[w8, 0:3], z0.b, 0
+
+	sumlall	za.s[w8, 0:3], z0.b, z0.b
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, { z0.b - z1.b }
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, { z0.b - z3.b }
diff --git a/gas/testsuite/gas/aarch64/sme2-14-noarch.d b/gas/testsuite/gas/aarch64/sme2-14-noarch.d
new file mode 100644
index 00000000000..514960702b0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-14.s
+#error_output: sme2-14-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-14-noarch.l b/gas/testsuite/gas/aarch64/sme2-14-noarch.l
new file mode 100644
index 00000000000..76f5e43c298
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14-noarch.l
@@ -0,0 +1,107 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sumlall za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,12:15\],z0\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z31\.b,z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z0\.b,z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z0\.b,z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w9,8:11\],z21\.b,z9\.b\[9\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w9,4:7\],{z18\.b-z19\.b},z9\.b\[12\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b\[15\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w10,0:3\],{z24\.b-z27\.b},z14\.b\[6\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,12:15\],z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],z0\.b,z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w10,4:7\],z25\.b,z7\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z30\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z31\.b,z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z31\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w9,4:7\],{z19\.b-z20\.b},z13\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z3\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z28\.b-z31\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z29\.b-z0\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z30\.b,z31\.b,z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z30\.b-z1\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z31\.b-z2\.b},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},z15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w9,0:3\],{z25\.b-z28\.b},z14\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx2\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w10,4:7\],{z22\.b-z23\.b},{z18\.b-z19\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3,vgx4\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,4:7\],{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w8,0:3\],{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `usmlall za\.s\[w11,0:3\],{z16\.b-z19\.b},{z24\.b-z27\.b}'
diff --git a/gas/testsuite/gas/aarch64/sme2-14.d b/gas/testsuite/gas/aarch64/sme2-14.d
new file mode 100644
index 00000000000..e603f095cc4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14.d
@@ -0,0 +1,115 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+:	c1000014 	sumlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006014 	sumlall	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1000017 	sumlall	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003f4 	sumlall	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0014 	sumlall	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c14 	sumlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6b6 	sumlall	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100030 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100030 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106030 	sumlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100031 	sumlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003f0 	sumlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0030 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c36 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e71 	sumlall	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108030 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108030 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e030 	sumlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108031 	sumlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c11083b0 	sumlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8030 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c36 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec734 	sumlall	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200014 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200014 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206014 	sumlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200015 	sumlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003d4 	sumlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003f4 	sumlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003f4 	sumlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0014 	sumlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2275 	sumlall	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300014 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300014 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306014 	sumlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300015 	sumlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300394 	sumlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003b4 	sumlall	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003d4 	sumlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003d4 	sumlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003f4 	sumlall	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0014 	sumlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2334 	sumlall	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1000004 	usmlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1006004 	usmlall	za\.s\[w11, 0:3\], z0\.b, z0\.b\[0\]
+[^:]+:	c1000007 	usmlall	za\.s\[w8, 12:15\], z0\.b, z0\.b\[0\]
+[^:]+:	c10003e4 	usmlall	za\.s\[w8, 0:3\], z31\.b, z0\.b\[0\]
+[^:]+:	c10f0004 	usmlall	za\.s\[w8, 0:3\], z0\.b, z15\.b\[0\]
+[^:]+:	c1009c04 	usmlall	za\.s\[w8, 0:3\], z0\.b, z0\.b\[15\]
+[^:]+:	c109a6a6 	usmlall	za\.s\[w9, 8:11\], z21\.b, z9\.b\[9\]
+[^:]+:	c1100020 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100020 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1106020 	usmlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c1100021 	usmlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b\[0\]
+[^:]+:	c11003e0 	usmlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f0020 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b\[0\]
+[^:]+:	c1100c26 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b\[15\]
+[^:]+:	c1192e61 	usmlall	za\.s\[w9, 4:7, vgx2\], {z18\.b-z19\.b}, z9\.b\[12\]
+[^:]+:	c1108020 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108020 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c110e020 	usmlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c1108021 	usmlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b\[0\]
+[^:]+:	c11083a0 	usmlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b\[0\]
+[^:]+:	c11f8020 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b\[0\]
+[^:]+:	c1108c26 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b\[15\]
+[^:]+:	c11ec724 	usmlall	za\.s\[w10, 0:3, vgx4\], {z24\.b-z27\.b}, z14\.b\[6\]
+[^:]+:	c1200404 	usmlall	za\.s\[w8, 0:3\], z0\.b, z0\.b
+[^:]+:	c1206404 	usmlall	za\.s\[w11, 0:3\], z0\.b, z0\.b
+[^:]+:	c1200407 	usmlall	za\.s\[w8, 12:15\], z0\.b, z0\.b
+[^:]+:	c12007e4 	usmlall	za\.s\[w8, 0:3\], z31\.b, z0\.b
+[^:]+:	c12f0404 	usmlall	za\.s\[w8, 0:3\], z0\.b, z15\.b
+[^:]+:	c1274725 	usmlall	za\.s\[w10, 4:7\], z25\.b, z7\.b
+[^:]+:	c1200004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1206004 	usmlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c1200005 	usmlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, z0\.b
+[^:]+:	c12003c4 	usmlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, z0\.b
+[^:]+:	c12003e4 	usmlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12003e4 	usmlall	za\.s\[w8, 0:3, vgx2\], {z31\.b-z0\.b}, z0\.b
+[^:]+:	c12f0004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, z15\.b
+[^:]+:	c12d2265 	usmlall	za\.s\[w9, 4:7, vgx2\], {z19\.b-z20\.b}, z13\.b
+[^:]+:	c1300004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1306004 	usmlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300005 	usmlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, z0\.b
+[^:]+:	c1300384 	usmlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, z0\.b
+[^:]+:	c13003a4 	usmlall	za\.s\[w8, 0:3, vgx4\], {z29\.b-z0\.b}, z0\.b
+[^:]+:	c13003c4 	usmlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003c4 	usmlall	za\.s\[w8, 0:3, vgx4\], {z30\.b-z1\.b}, z0\.b
+[^:]+:	c13003e4 	usmlall	za\.s\[w8, 0:3, vgx4\], {z31\.b-z2\.b}, z0\.b
+[^:]+:	c13f0004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, z15\.b
+[^:]+:	c13e2324 	usmlall	za\.s\[w9, 0:3, vgx4\], {z25\.b-z28\.b}, z14\.b
+[^:]+:	c1a00004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a06004 	usmlall	za\.s\[w11, 0:3, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a00005 	usmlall	za\.s\[w8, 4:7, vgx2\], {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+:	c1a003c4 	usmlall	za\.s\[w8, 0:3, vgx2\], {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+:	c1be0004 	usmlall	za\.s\[w8, 0:3, vgx2\], {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+:	c1b242c5 	usmlall	za\.s\[w10, 4:7, vgx2\], {z22\.b-z23\.b}, {z18\.b-z19\.b}
+[^:]+:	c1a10004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a16004 	usmlall	za\.s\[w11, 0:3, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10005 	usmlall	za\.s\[w8, 4:7, vgx4\], {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c1a10384 	usmlall	za\.s\[w8, 0:3, vgx4\], {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c1bd0004 	usmlall	za\.s\[w8, 0:3, vgx4\], {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c1b96204 	usmlall	za\.s\[w11, 0:3, vgx4\], {z16\.b-z19\.b}, {z24\.b-z27\.b}
diff --git a/gas/testsuite/gas/aarch64/sme2-14.s b/gas/testsuite/gas/aarch64/sme2-14.s
new file mode 100644
index 00000000000..d1fa794f35b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-14.s
@@ -0,0 +1,118 @@
+	sumlall	za.s[w8, 0:3], z0.b, z0.b[0]
+	sumlall	za.s[w11, 0:3], z0.b, z0.b[0]
+	sumlall	za.s[w8, 12:15], z0.b, z0.b[0]
+	sumlall	za.s[w8, 0:3], z31.b, z0.b[0]
+	sumlall	za.s[w8, 0:3], z0.b, z15.b[0]
+	sumlall	za.s[w8, 0:3], z0.b, z0.b[15]
+	sumlall	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	sumlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	sumlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[15]
+	sumlall	za.s[w9, 4:7], { z18.b - z19.b }, z9.b[12]
+
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
+	sumlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b[0]
+	sumlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b[0]
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b[0]
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b[15]
+	sumlall	za.s[w10, 0:3], { z24.b - z27.b }, z14.b[6]
+
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b
+	sumlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b
+	sumlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b
+	sumlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z31.b, z0.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z31.b - z0.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b
+	sumlall	za.s[w9, 4:7], { z19.b - z20.b }, z13.b
+
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, z0.b
+	sumlall	za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
+	sumlall	za.s[w11, 0:3], { z0.b - z3.b }, z0.b
+	sumlall	za.s[w8, 4:7], { z0.b - z3.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z28.b - z31.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z29.b - z0.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z30.b, z31.b, z0.b, z1.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z30.b - z1.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z31.b - z2.b }, z0.b
+	sumlall	za.s[w8, 0:3], { z0.b - z3.b }, z15.b
+	sumlall	za.s[w9, 0:3], { z25.b - z28.b }, z14.b
+
+	usmlall	za.s[w8, 0:3], z0.b, z0.b[0]
+	usmlall	za.s[w11, 0:3], z0.b, z0.b[0]
+	usmlall	za.s[w8, 12:15], z0.b, z0.b[0]
+	usmlall	za.s[w8, 0:3], z31.b, z0.b[0]
+	usmlall	za.s[w8, 0:3], z0.b, z15.b[0]
+	usmlall	za.s[w8, 0:3], z0.b, z0.b[15]
+	usmlall	za.s[w9, 8:11], z21.b, z9.b[9]
+
+	usmlall	za.s[w8, 0:3], { z0.b - z1.b }, z0.b[0]
+	usmlall	za.s[w8, 0:3, vgx2], { z0.b - z1.b }, z0.b[0]
+	usmlall	za.s[w11, 0:3], { z0.b - z1.b }, z0.b[0]
+	usmlall	za.s[w8, 4:7], { z0.b - z1.b }, z0.b[0]
+	usmlall	za.s[w8, 0:3], { z30.b - z31.b }, z0.b[0]
+	usmlall	za.s[w8, 0:3], { z0.b - z1.b }, z15.b[0]
+	usmlall	za.s[w8, 0:3], { z0.b - z1.b [...]

[diff truncated at 100000 bytes]

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

only message in thread, other threads:[~2023-03-30 10:15 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:15 [binutils-gdb] aarch64: Add the SME2 MLALL and MLSLL 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).