summaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/aarch64/illegal-sve2.l16
-rw-r--r--gas/testsuite/gas/aarch64/sme-9.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6-invalid.l139
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6-invalid.s92
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6-noarch.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6-noarch.l145
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6.d153
-rw-r--r--gas/testsuite/gas/aarch64/sme2-6.s164
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7-invalid.l20
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7-invalid.s14
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7-noarch.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7-noarch.l321
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7.d329
-rw-r--r--gas/testsuite/gas/aarch64/sme2-7.s351
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.l3
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.s4
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.l25
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.s12
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.d3
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.l257
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2.d265
-rw-r--r--gas/testsuite/gas/aarch64/sve2-sme2-2.s287
25 files changed, 2609 insertions, 10 deletions
diff --git a/gas/testsuite/gas/aarch64/illegal-sve2.l b/gas/testsuite/gas/aarch64/illegal-sve2.l
index f07ef384f94..5f43b56df14 100644
--- a/gas/testsuite/gas/aarch64/illegal-sve2.l
+++ b/gas/testsuite/gas/aarch64/illegal-sve2.l
@@ -3139,7 +3139,7 @@
[^ :]+:[0-9]+: Info: other valid variant\(s\):
[^ :]+:[0-9]+: Info: usubwt z0\.s, z0\.s, z0\.h
[^ :]+:[0-9]+: Info: usubwt z0\.d, z0\.d, z0\.s
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilege p16\.b,x0,x0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilege p16\.b,x0,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege p0\.b,x32,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege p0\.b,x0,x32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilege p0/m,x0,x0'
@@ -3165,7 +3165,7 @@
[^ :]+:[0-9]+: Info: whilege p0\.h, x0, x0
[^ :]+:[0-9]+: Info: whilege p0\.s, x0, x0
[^ :]+:[0-9]+: Info: whilege p0\.d, x0, x0
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilege p16\.b,w0,w0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilege p16\.b,w0,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege p0\.b,w32,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege p0\.b,w0,w32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilege p0/m,w0,w0'
@@ -3177,7 +3177,7 @@
[^ :]+:[0-9]+: Info: whilege p0\.d, w0, w0
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege p0\.b,w31,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege p0\.b,w0,w31'
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilegt p16\.b,x0,x0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilegt p16\.b,x0,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilegt p0\.b,x32,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilegt p0\.b,x0,x32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilegt p0/m,x0,x0'
@@ -3203,7 +3203,7 @@
[^ :]+:[0-9]+: Info: whilegt p0\.h, x0, x0
[^ :]+:[0-9]+: Info: whilegt p0\.s, x0, x0
[^ :]+:[0-9]+: Info: whilegt p0\.d, x0, x0
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilegt p16\.b,w0,w0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilegt p16\.b,w0,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilegt p0\.b,w32,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilegt p0\.b,w0,w32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilegt p0/m,w0,w0'
@@ -3215,7 +3215,7 @@
[^ :]+:[0-9]+: Info: whilegt p0\.d, w0, w0
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilegt p0\.b,w31,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilegt p0\.b,w0,w31'
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilehi p16\.b,x0,x0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilehi p16\.b,x0,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilehi p0\.b,x32,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilehi p0\.b,x0,x32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilehi p0/m,x0,x0'
@@ -3241,7 +3241,7 @@
[^ :]+:[0-9]+: Info: whilehi p0\.h, x0, x0
[^ :]+:[0-9]+: Info: whilehi p0\.s, x0, x0
[^ :]+:[0-9]+: Info: whilehi p0\.d, x0, x0
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilehi p16\.b,w0,w0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilehi p16\.b,w0,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilehi p0\.b,w32,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilehi p0\.b,w0,w32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilehi p0/m,w0,w0'
@@ -3253,7 +3253,7 @@
[^ :]+:[0-9]+: Info: whilehi p0\.d, w0, w0
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilehi p0\.b,w31,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilehi p0\.b,w0,w31'
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilehs p16\.b,x0,x0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilehs p16\.b,x0,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilehs p0\.b,x32,x0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilehs p0\.b,x0,x32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilehs p0/m,x0,x0'
@@ -3279,7 +3279,7 @@
[^ :]+:[0-9]+: Info: whilehs p0\.h, x0, x0
[^ :]+:[0-9]+: Info: whilehs p0\.s, x0, x0
[^ :]+:[0-9]+: Info: whilehs p0\.d, x0, x0
-[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilehs p16\.b,w0,w0'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilehs p16\.b,w0,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilehs p0\.b,w32,w0'
[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilehs p0\.b,w0,w32'
[^ :]+:[0-9]+: Error: operand mismatch -- `whilehs p0/m,w0,w0'
diff --git a/gas/testsuite/gas/aarch64/sme-9.d b/gas/testsuite/gas/aarch64/sme-9.d
index 9a6175c3906..69b27020d01 100644
--- a/gas/testsuite/gas/aarch64/sme-9.d
+++ b/gas/testsuite/gas/aarch64/sme-9.d
@@ -72,5 +72,5 @@ Disassembly of section \.text:
f8: 25277c61 psel p1, p15, p3.b\[w15, 0\]
fc: 252778a2 psel p2, p14, p5.b\[w15, 0\]
100: 25244200 \.inst 0x25244200 ; undefined
- 104: 25244010 \.inst 0x25244010 ; undefined
- 108: 25244210 \.inst 0x25244210 ; undefined
+ 104: 25244010 whilege pn8.b, x0, x4, vlx2
+ 108: 25244210 whilege pn8.b, x16, x4, vlx2
diff --git a/gas/testsuite/gas/aarch64/sme2-6-invalid.d b/gas/testsuite/gas/aarch64/sme2-6-invalid.d
new file mode 100644
index 00000000000..d3e9450a524
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-6-invalid.s
+#error_output: sme2-6-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-6-invalid.l b/gas/testsuite/gas/aarch64/sme2-6-invalid.l
new file mode 100644
index 00000000000..cac3ec4cfb7
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6-invalid.l
@@ -0,0 +1,139 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 1 -- `cntp 0,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 2 -- `cntp x0,0,vlx2'
+[^ :]+:[0-9]+: Error: operand 3 must be VLx2 or VLx4 -- `cntp x0,pn0\.b,0'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 1 -- `cntp xsp,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 1 -- `cntp sp,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: operand mismatch -- `cntp w0,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.b, vlx2
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.h, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.s, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.d, vlx2
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 3 -- `cntp x0,p0\.b,vlx2'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 2 -- `cntp x0,pn16\.b,vlx2'
+[^ :]+:[0-9]+: Error: operand 3 must be VLx2 or VLx4 -- `cntp x0,pn0\.b,#0'
+[^ :]+:[0-9]+: Error: operand 3 must be VLx2 or VLx4 -- `cntp x0,pn0\.b,vl'
+[^ :]+:[0-9]+: Error: operand 3 must be VLx2 or VLx4 -- `cntp x0,pn0\.b,vlx3'
+[^ :]+:[0-9]+: Error: operand mismatch -- `cntp x0,pn0,vlx2'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.b, vlx2
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.h, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.s, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.d, vlx2
+[^ :]+:[0-9]+: Error: operand mismatch -- `cntp x0,pn0\.q,vlx2'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.b, vlx2
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.h, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.s, vlx2
+[^ :]+:[0-9]+: Info: cntp x0, pn0\.d, vlx2
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `pext 0,pn8\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate-as-counter register at operand 2 -- `pext p0\.b,0'
+[^ :]+:[0-9]+: Error: expected a predicate-as-mask rather than predicate-as-counter register at operand 1 -- `pext pn8\.b,pn0\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `pext z0\.b,pn8\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate-as-counter register at operand 2 -- `pext p8\.b,z8\[0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate-as-counter register at operand 2 -- `pext p8\.b,x8'
+[^ :]+:[0-9]+: Error: expected a predicate-as-counter rather than predicate-as-mask register at operand 2 -- `pext p8\.b,p8\[0\]'
+[^ :]+:[0-9]+: Error: missing register index at operand 2 -- `pext p8\.b,pn8'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 2 -- `pext p8\.b,pn8\[-1\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 2 -- `pext p8\.b,pn8\[4\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 2 -- `pext p8\.b,pn8\[1<<32\]'
+[^ :]+:[0-9]+: Error: operand mismatch -- `pext p8\.b,pn8\.b\[0\]'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: pext p8\.b, pn8\[0\]
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: pext p8\.h, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext p8\.s, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext p8\.d, pn8\[0\]
+[^ :]+:[0-9]+: Error: operand mismatch -- `pext p8\.q,pn8\[0\]'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: pext p8\.b, pn8\[0\]
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: pext p8\.h, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext p8\.s, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext p8\.d, pn8\[0\]
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `pext {p0\.b-p2\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: missing type suffix at operand 1 -- `pext {p0-p1},pn8\[0\]'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 2 -- `pext {p0\.b-p1\.b},pn7\[0\]'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 2 -- `pext {p0\.b-p1\.b},pn0\[0\]'
+[^ :]+:[0-9]+: Error: missing register index at operand 2 -- `pext {p0\.b-p1\.b},pn8'
+[^ :]+:[0-9]+: Error: expected a predicate-as-counter rather than predicate-as-mask register at operand 2 -- `pext {p0\.b-p1\.b},p0\[0\]'
+[^ :]+:[0-9]+: Error: operand mismatch -- `pext {p0\.b-p1\.b},pn8\.b\[0\]'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: pext {p0\.b-p1\.b}, pn8\[0\]
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: pext {p0\.h-p1\.h}, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext {p0\.s-p1\.s}, pn8\[0\]
+[^ :]+:[0-9]+: Info: pext {p0\.d-p1\.d}, pn8\[0\]
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 1 at operand 2 -- `pext {p0\.b-p1\.b},pn8\[-1\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 1 at operand 2 -- `pext {p0\.b-p1\.b},pn8\[2\]'
+[^ :]+:[0-9]+: Error: register element index out of range 0 to 1 at operand 2 -- `pext {p0\.b-p1\.b},pn8\[1<<32\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `ptrue 0'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn0\.b'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn7\.b'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn0\.h'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn7\.h'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn0\.s'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn7\.s'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn0\.d'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `ptrue pn7\.d'
+[^ :]+:[0-9]+: Error: unexpected characters following instruction at operand 1 -- `ptrue pn8\.b,all'
+[^ :]+:[0-9]+: Error: operand mismatch -- `ptrue pn8\.q'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: ptrue pn8\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: ptrue pn8\.h
+[^ :]+:[0-9]+: Info: ptrue pn8\.s
+[^ :]+:[0-9]+: Info: ptrue pn8\.d
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `sel 0,pn8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected an SVE predicate-as-counter register at operand 2 -- `sel {z0\.b-z1\.b},0,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected '{' at operand 3 -- `sel {z0\.b-z1\.b},pn8,0,{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected '{' at operand 4 -- `sel {z0\.b-z1\.b},pn8,{z0\.b-z1\.b},0'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sel {z1\.b-z2\.b},pn8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a predicate-as-counter rather than predicate-as-mask register at operand 2 -- `sel {z0\.b-z1\.b},p8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 2 -- `sel {z0\.b-z1\.b},pn7,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sel {z0\.b-z1\.b},pn8/z,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sel {z0\.b-z1\.b}, pn8, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sel {z0\.h-z1\.h}, pn8, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^ :]+:[0-9]+: Info: sel {z0\.s-z1\.s}, pn8, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^ :]+:[0-9]+: Info: sel {z0\.d-z1\.d}, pn8, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+[^ :]+:[0-9]+: Error: operand mismatch -- `sel {z0\.b-z1\.b},pn8/m,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sel {z0\.b-z1\.b}, pn8, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sel {z0\.h-z1\.h}, pn8, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^ :]+:[0-9]+: Info: sel {z0\.s-z1\.s}, pn8, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^ :]+:[0-9]+: Info: sel {z0\.d-z1\.d}, pn8, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 2 -- `sel {z0\.b-z1\.b},pn0,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `sel {z0\.b-z1\.b},pn8,{z11\.b-z12\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 4 -- `sel {z0\.b-z1\.b},pn8,{z0\.b-z1\.b},{z17\.b-z18\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sel {z1\.b-z4\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sel {z10\.b-z13\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sel {z15\.b-z18\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `sel {z0\.b-z3\.b},pn8,{z1\.b-z4\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `sel {z0\.b-z3\.b},pn8,{z22\.b-z25\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 3 -- `sel {z0\.b-z3\.b},pn8,{z27\.b-z30\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 4 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z5\.b-z8\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 4 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z14\.b-z17\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 4 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z19\.b-z22\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 3 -- `sel {z0\.b-z1\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 3 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z1\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 4 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `sel {z0\.b-z2\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 3 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z2\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 4 -- `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z0\.b-z2\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `sel {z0\.b-z2\.b},pn8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 3 -- `sel {z0\.b-z1\.b},pn8,{z0\.b-z2\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 4 -- `sel {z0\.b-z1\.b},pn8,{z0\.b-z1\.b},{z0\.b-z2\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sel {z0\.q-z1\.q},pn8,{z0\.q-z1\.q},{z0\.q-z1\.q}'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sel {z0\.b-z1\.b}, pn8, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sel {z0\.h-z1\.h}, pn8, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^ :]+:[0-9]+: Info: sel {z0\.s-z1\.s}, pn8, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^ :]+:[0-9]+: Info: sel {z0\.d-z1\.d}, pn8, {z0\.d-z1\.d}, {z0\.d-z1\.d}
diff --git a/gas/testsuite/gas/aarch64/sme2-6-invalid.s b/gas/testsuite/gas/aarch64/sme2-6-invalid.s
new file mode 100644
index 00000000000..b94dcbab65f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6-invalid.s
@@ -0,0 +1,92 @@
+ cntp 0, pn0.b, vlx2
+ cntp x0, 0, vlx2
+ cntp x0, pn0.b, 0
+
+ cntp xsp, pn0.b, vlx2
+ cntp sp, pn0.b, vlx2
+ cntp w0, pn0.b, vlx2
+ cntp x0, p0.b, vlx2
+ cntp x0, pn16.b, vlx2
+ cntp x0, pn0.b, #0
+ cntp x0, pn0.b, vl
+ cntp x0, pn0.b, vlx3
+
+ cntp x0, pn0, vlx2
+ cntp x0, pn0.q, vlx2
+
+ pext 0, pn8[0]
+ pext p0.b, 0
+
+ pext pn8.b, pn0[0]
+ pext z0.b, pn8[0]
+ pext p8.b, z8[0]
+ pext p8.b, x8
+ pext p8.b, p8[0]
+ pext p8.b, pn8
+ pext p8.b, pn8[-1]
+ pext p8.b, pn8[4]
+ pext p8.b, pn8[1 << 32]
+ pext p8.b, pn8.b[0]
+ pext p8.q, pn8[0]
+
+ pext { p0.b - p2.b }, pn8[0]
+ pext { p0 - p1 }, pn8[0]
+ pext { p0.b - p1.b }, pn7[0]
+ pext { p0.b - p1.b }, pn0[0]
+ pext { p0.b - p1.b }, pn8
+ pext { p0.b - p1.b }, p0[0]
+ pext { p0.b - p1.b }, pn8.b[0]
+ pext { p0.b - p1.b }, pn8[-1]
+ pext { p0.b - p1.b }, pn8[2]
+ pext { p0.b - p1.b }, pn8[1 << 32]
+
+ ptrue 0
+
+ ptrue pn0.b
+ ptrue pn7.b
+ ptrue pn0.h
+ ptrue pn7.h
+ ptrue pn0.s
+ ptrue pn7.s
+ ptrue pn0.d
+ ptrue pn7.d
+ ptrue pn8.b, all
+ ptrue pn8.q
+
+ sel 0, pn8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, 0, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, 0, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z0.b - z1.b }, 0
+
+ sel { z1.b - z2.b }, pn8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, p8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn7, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8/z, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8/m, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn0, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z11.b - z12.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z0.b - z1.b }, { z17.b - z18.b }
+
+ sel { z1.b - z4.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z10.b - z13.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z15.b - z18.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z1.b - z4.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z22.b - z25.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z27.b - z30.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z5.b - z8.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z14.b - z17.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z19.b - z22.b }
+
+ sel { z0.b - z1.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z1.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z0.b - z1.b }
+
+ sel { z0.b - z2.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z2.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z0.b - z2.b }
+
+ sel { z0.b - z2.b }, pn8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z0.b - z2.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z0.b - z1.b }, { z0.b - z2.b }
+
+ sel { z0.q - z1.q }, pn8, { z0.q - z1.q }, { z0.q - z1.q }
diff --git a/gas/testsuite/gas/aarch64/sme2-6-noarch.d b/gas/testsuite/gas/aarch64/sme2-6-noarch.d
new file mode 100644
index 00000000000..5a2f1a5a889
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-6.s
+#error_output: sme2-6-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-6-noarch.l b/gas/testsuite/gas/aarch64/sme2-6-noarch.l
new file mode 100644
index 00000000000..173e99a2b3e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6-noarch.l
@@ -0,0 +1,145 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X0,PN0\.B,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x30,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp xzr,pn0\.b,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn15\.b,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.b,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X11,PN13\.b,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.h,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X0,PN0\.H,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x30,pn0\.h,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp xzr,pn0\.h,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn15\.h,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.h,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X20,PN9\.h,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.s,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X0,PN0\.s,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x30,pn0\.s,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp xzr,pn0\.s,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn15\.s,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.s,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X15,PN8\.s,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.d,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X0,PN0\.d,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x30,pn0\.d,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp xzr,pn0\.d,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn15\.d,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp x0,pn0\.d,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `cntp X4,PN5\.d,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.b,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext P0\.B,PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p15\.b,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.b,pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.b,pn8\[3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p4\.b,pn11\[2\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.h,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext P0\.H,PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p15\.h,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.h,pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.h,pn8\[3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p5\.h,pn14\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.s,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext P0\.S,PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p15\.s,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.s,pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.s,pn8\[3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p6\.s,pn10\[2\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.d,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext P0\.D,PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p15\.d,pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.d,pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p0\.d,pn8\[3\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext p7\.d,pn9\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.b,p1\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.b-p1\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {P0\.B-P1\.B},PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p14\.b-p15\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.b,p0\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.b-p0\.b},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.b-p1\.b},pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.b-p1\.b},pn8\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p7\.b-p8\.b},pn12\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.h,p1\.h},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.h-p1\.h},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {P0\.H-P1\.H},PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p14\.h-p15\.h},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.h,p0\.h},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.h-p0\.h},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.h-p1\.h},pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.h-p1\.h},pn8\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p2\.h-p3\.h},pn14\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.s,p1\.s},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.s-p1\.s},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {P0\.S-P1\.S},PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p14\.s-p15\.s},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.s,p0\.s},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.s-p0\.s},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.s-p1\.s},pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.s-p1\.s},pn8\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p5\.s-p6\.s},pn13\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.d,p1\.d},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.d-p1\.d},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {P0\.D-P1\.D},PN8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p14\.d-p15\.d},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.d,p0\.d},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p15\.d-p0\.d},pn8\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.d-p1\.d},pn15\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p0\.d-p1\.d},pn8\[1\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `pext {p12\.d-p13\.d},pn9\[0\]'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn8\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn11\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn15\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn8\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn9\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn8\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn14\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn15\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn8\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn12\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `ptrue pn15\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z1\.b},pn8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z30\.b-z31\.b},pn8,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z1\.b},pn15,{z0\.b-z1\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z1\.b},pn8,{z30\.b-z31\.b},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z1\.b},pn8,{z0\.b-z1\.b},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z2\.b-z3\.b},pn12,{z6\.b-z7\.b},{z10\.b-z11\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z1\.h},pn8,{z0\.h-z1\.h},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z30\.h-z31\.h},pn8,{z0\.h-z1\.h},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z1\.h},pn15,{z0\.h-z1\.h},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z1\.h},pn8,{z30\.h-z31\.h},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z1\.h},pn8,{z0\.h-z1\.h},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z12\.h-z13\.h},pn9,{z14\.h-z15\.h},{z16\.h-z17\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z1\.s},pn8,{z0\.s-z1\.s},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z30\.s-z31\.s},pn8,{z0\.s-z1\.s},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z1\.s},pn15,{z0\.s-z1\.s},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z1\.s},pn8,{z30\.s-z31\.s},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z1\.s},pn8,{z0\.s-z1\.s},{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z18\.s-z19\.s},pn11,{z22\.s-z23\.s},{z24\.s-z25\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z1\.d},pn8,{z0\.d-z1\.d},{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z30\.d-z31\.d},pn8,{z0\.d-z1\.d},{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z1\.d},pn15,{z0\.d-z1\.d},{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z1\.d},pn8,{z30\.d-z31\.d},{z0\.d-z1\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z1\.d},pn8,{z0\.d-z1\.d},{z30\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z8\.d-z9\.d},pn14,{z26\.d-z27\.d},{z28\.d-z29\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z28\.b-z31\.b},pn8,{z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z3\.b},pn8,{z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.b-z3\.b},pn8,{z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z4\.b-z7\.b},pn10,{z8\.b-z11\.b},{z12\.b-z15\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z3\.h},pn8,{z0\.h-z3\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z28\.h-z31\.h},pn8,{z0\.h-z3\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z3\.h},pn8,{z28\.h-z31\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.h-z3\.h},pn8,{z0\.h-z3\.h},{z28\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z8\.h-z11\.h},pn10,{z16\.h-z19\.h},{z20\.h-z23\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z3\.s},pn8,{z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z28\.s-z31\.s},pn8,{z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z3\.s},pn8,{z28\.s-z31\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.s-z3\.s},pn8,{z0\.s-z3\.s},{z28\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z16\.s-z19\.s},pn10,{z20\.s-z23\.s},{z24\.s-z27\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z3\.d},pn8,{z0\.d-z3\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z28\.d-z31\.d},pn8,{z0\.d-z3\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z3\.d},pn8,{z28\.d-z31\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z0\.d-z3\.d},pn8,{z0\.d-z3\.d},{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sel {z20\.d-z23\.d},pn10,{z4\.d-z7\.d},{z8\.d-z11\.d}'
diff --git a/gas/testsuite/gas/aarch64/sme2-6.d b/gas/testsuite/gas/aarch64/sme2-6.d
new file mode 100644
index 00000000000..488cb099f32
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6.d
@@ -0,0 +1,153 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: 25208200 cntp x0, pn0\.b, vlx2
+[^:]+: 25208200 cntp x0, pn0\.b, vlx2
+[^:]+: 2520821e cntp x30, pn0\.b, vlx2
+[^:]+: 2520821f cntp xzr, pn0\.b, vlx2
+[^:]+: 252083e0 cntp x0, pn15\.b, vlx2
+[^:]+: 25208600 cntp x0, pn0\.b, vlx4
+[^:]+: 252087ab cntp x11, pn13\.b, vlx4
+[^:]+: 25608200 cntp x0, pn0\.h, vlx2
+[^:]+: 25608200 cntp x0, pn0\.h, vlx2
+[^:]+: 2560821e cntp x30, pn0\.h, vlx2
+[^:]+: 2560821f cntp xzr, pn0\.h, vlx2
+[^:]+: 256083e0 cntp x0, pn15\.h, vlx2
+[^:]+: 25608600 cntp x0, pn0\.h, vlx4
+[^:]+: 25608334 cntp x20, pn9\.h, vlx2
+[^:]+: 25a08200 cntp x0, pn0\.s, vlx2
+[^:]+: 25a08200 cntp x0, pn0\.s, vlx2
+[^:]+: 25a0821e cntp x30, pn0\.s, vlx2
+[^:]+: 25a0821f cntp xzr, pn0\.s, vlx2
+[^:]+: 25a083e0 cntp x0, pn15\.s, vlx2
+[^:]+: 25a08600 cntp x0, pn0\.s, vlx4
+[^:]+: 25a0870f cntp x15, pn8\.s, vlx4
+[^:]+: 25e08200 cntp x0, pn0\.d, vlx2
+[^:]+: 25e08200 cntp x0, pn0\.d, vlx2
+[^:]+: 25e0821e cntp x30, pn0\.d, vlx2
+[^:]+: 25e0821f cntp xzr, pn0\.d, vlx2
+[^:]+: 25e083e0 cntp x0, pn15\.d, vlx2
+[^:]+: 25e08600 cntp x0, pn0\.d, vlx4
+[^:]+: 25e082a4 cntp x4, pn5\.d, vlx2
+[^:]+: 25207010 pext p0\.b, pn8\[0\]
+[^:]+: 25207010 pext p0\.b, pn8\[0\]
+[^:]+: 2520701f pext p15\.b, pn8\[0\]
+[^:]+: 252070f0 pext p0\.b, pn15\[0\]
+[^:]+: 25207310 pext p0\.b, pn8\[3\]
+[^:]+: 25207274 pext p4\.b, pn11\[2\]
+[^:]+: 25607010 pext p0\.h, pn8\[0\]
+[^:]+: 25607010 pext p0\.h, pn8\[0\]
+[^:]+: 2560701f pext p15\.h, pn8\[0\]
+[^:]+: 256070f0 pext p0\.h, pn15\[0\]
+[^:]+: 25607310 pext p0\.h, pn8\[3\]
+[^:]+: 256071d5 pext p5\.h, pn14\[1\]
+[^:]+: 25a07010 pext p0\.s, pn8\[0\]
+[^:]+: 25a07010 pext p0\.s, pn8\[0\]
+[^:]+: 25a0701f pext p15\.s, pn8\[0\]
+[^:]+: 25a070f0 pext p0\.s, pn15\[0\]
+[^:]+: 25a07310 pext p0\.s, pn8\[3\]
+[^:]+: 25a07256 pext p6\.s, pn10\[2\]
+[^:]+: 25e07010 pext p0\.d, pn8\[0\]
+[^:]+: 25e07010 pext p0\.d, pn8\[0\]
+[^:]+: 25e0701f pext p15\.d, pn8\[0\]
+[^:]+: 25e070f0 pext p0\.d, pn15\[0\]
+[^:]+: 25e07310 pext p0\.d, pn8\[3\]
+[^:]+: 25e07137 pext p7\.d, pn9\[1\]
+[^:]+: 25207410 pext {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 25207410 pext {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 25207410 pext {p0\.b-p1\.b}, pn8\[0\]
+[^:]+: 2520741e pext {p14\.b-p15\.b}, pn8\[0\]
+[^:]+: 2520741f pext {p15\.b-p0\.b}, pn8\[0\]
+[^:]+: 2520741f pext {p15\.b-p0\.b}, pn8\[0\]
+[^:]+: 252074f0 pext {p0\.b-p1\.b}, pn15\[0\]
+[^:]+: 25207510 pext {p0\.b-p1\.b}, pn8\[1\]
+[^:]+: 25207497 pext {p7\.b-p8\.b}, pn12\[0\]
+[^:]+: 25607410 pext {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 25607410 pext {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 25607410 pext {p0\.h-p1\.h}, pn8\[0\]
+[^:]+: 2560741e pext {p14\.h-p15\.h}, pn8\[0\]
+[^:]+: 2560741f pext {p15\.h-p0\.h}, pn8\[0\]
+[^:]+: 2560741f pext {p15\.h-p0\.h}, pn8\[0\]
+[^:]+: 256074f0 pext {p0\.h-p1\.h}, pn15\[0\]
+[^:]+: 25607510 pext {p0\.h-p1\.h}, pn8\[1\]
+[^:]+: 256074d2 pext {p2\.h-p3\.h}, pn14\[0\]
+[^:]+: 25a07410 pext {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a07410 pext {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a07410 pext {p0\.s-p1\.s}, pn8\[0\]
+[^:]+: 25a0741e pext {p14\.s-p15\.s}, pn8\[0\]
+[^:]+: 25a0741f pext {p15\.s-p0\.s}, pn8\[0\]
+[^:]+: 25a0741f pext {p15\.s-p0\.s}, pn8\[0\]
+[^:]+: 25a074f0 pext {p0\.s-p1\.s}, pn15\[0\]
+[^:]+: 25a07510 pext {p0\.s-p1\.s}, pn8\[1\]
+[^:]+: 25a074b5 pext {p5\.s-p6\.s}, pn13\[0\]
+[^:]+: 25e07410 pext {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e07410 pext {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e07410 pext {p0\.d-p1\.d}, pn8\[0\]
+[^:]+: 25e0741e pext {p14\.d-p15\.d}, pn8\[0\]
+[^:]+: 25e0741f pext {p15\.d-p0\.d}, pn8\[0\]
+[^:]+: 25e0741f pext {p15\.d-p0\.d}, pn8\[0\]
+[^:]+: 25e074f0 pext {p0\.d-p1\.d}, pn15\[0\]
+[^:]+: 25e07510 pext {p0\.d-p1\.d}, pn8\[1\]
+[^:]+: 25e0743c pext {p12\.d-p13\.d}, pn9\[0\]
+[^:]+: 25207810 ptrue pn8\.b
+[^:]+: 25207813 ptrue pn11\.b
+[^:]+: 25207817 ptrue pn15\.b
+[^:]+: 25607810 ptrue pn8\.h
+[^:]+: 25607811 ptrue pn9\.h
+[^:]+: 25607817 ptrue pn15\.h
+[^:]+: 25a07810 ptrue pn8\.s
+[^:]+: 25a07816 ptrue pn14\.s
+[^:]+: 25a07817 ptrue pn15\.s
+[^:]+: 25e07810 ptrue pn8\.d
+[^:]+: 25e07814 ptrue pn12\.d
+[^:]+: 25e07817 ptrue pn15\.d
+[^:]+: c1208000 sel {z0\.b-z1\.b}, pn8, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+: c120801e sel {z30\.b-z31\.b}, pn8, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+: c1209c00 sel {z0\.b-z1\.b}, pn15, {z0\.b-z1\.b}, {z0\.b-z1\.b}
+[^:]+: c12083c0 sel {z0\.b-z1\.b}, pn8, {z30\.b-z31\.b}, {z0\.b-z1\.b}
+[^:]+: c13e8000 sel {z0\.b-z1\.b}, pn8, {z0\.b-z1\.b}, {z30\.b-z31\.b}
+[^:]+: c12a90c2 sel {z2\.b-z3\.b}, pn12, {z6\.b-z7\.b}, {z10\.b-z11\.b}
+[^:]+: c1608000 sel {z0\.h-z1\.h}, pn8, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^:]+: c160801e sel {z30\.h-z31\.h}, pn8, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^:]+: c1609c00 sel {z0\.h-z1\.h}, pn15, {z0\.h-z1\.h}, {z0\.h-z1\.h}
+[^:]+: c16083c0 sel {z0\.h-z1\.h}, pn8, {z30\.h-z31\.h}, {z0\.h-z1\.h}
+[^:]+: c17e8000 sel {z0\.h-z1\.h}, pn8, {z0\.h-z1\.h}, {z30\.h-z31\.h}
+[^:]+: c17085cc sel {z12\.h-z13\.h}, pn9, {z14\.h-z15\.h}, {z16\.h-z17\.h}
+[^:]+: c1a08000 sel {z0\.s-z1\.s}, pn8, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^:]+: c1a0801e sel {z30\.s-z31\.s}, pn8, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^:]+: c1a09c00 sel {z0\.s-z1\.s}, pn15, {z0\.s-z1\.s}, {z0\.s-z1\.s}
+[^:]+: c1a083c0 sel {z0\.s-z1\.s}, pn8, {z30\.s-z31\.s}, {z0\.s-z1\.s}
+[^:]+: c1be8000 sel {z0\.s-z1\.s}, pn8, {z0\.s-z1\.s}, {z30\.s-z31\.s}
+[^:]+: c1b88ed2 sel {z18\.s-z19\.s}, pn11, {z22\.s-z23\.s}, {z24\.s-z25\.s}
+[^:]+: c1e08000 sel {z0\.d-z1\.d}, pn8, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+[^:]+: c1e0801e sel {z30\.d-z31\.d}, pn8, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+[^:]+: c1e09c00 sel {z0\.d-z1\.d}, pn15, {z0\.d-z1\.d}, {z0\.d-z1\.d}
+[^:]+: c1e083c0 sel {z0\.d-z1\.d}, pn8, {z30\.d-z31\.d}, {z0\.d-z1\.d}
+[^:]+: c1fe8000 sel {z0\.d-z1\.d}, pn8, {z0\.d-z1\.d}, {z30\.d-z31\.d}
+[^:]+: c1fc9b48 sel {z8\.d-z9\.d}, pn14, {z26\.d-z27\.d}, {z28\.d-z29\.d}
+[^:]+: c1218000 sel {z0\.b-z3\.b}, pn8, {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+: c121801c sel {z28\.b-z31\.b}, pn8, {z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+: c1218380 sel {z0\.b-z3\.b}, pn8, {z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+: c13d8000 sel {z0\.b-z3\.b}, pn8, {z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+: c12d8904 sel {z4\.b-z7\.b}, pn10, {z8\.b-z11\.b}, {z12\.b-z15\.b}
+[^:]+: c1618000 sel {z0\.h-z3\.h}, pn8, {z0\.h-z3\.h}, {z0\.h-z3\.h}
+[^:]+: c161801c sel {z28\.h-z31\.h}, pn8, {z0\.h-z3\.h}, {z0\.h-z3\.h}
+[^:]+: c1618380 sel {z0\.h-z3\.h}, pn8, {z28\.h-z31\.h}, {z0\.h-z3\.h}
+[^:]+: c17d8000 sel {z0\.h-z3\.h}, pn8, {z0\.h-z3\.h}, {z28\.h-z31\.h}
+[^:]+: c1758a08 sel {z8\.h-z11\.h}, pn10, {z16\.h-z19\.h}, {z20\.h-z23\.h}
+[^:]+: c1a18000 sel {z0\.s-z3\.s}, pn8, {z0\.s-z3\.s}, {z0\.s-z3\.s}
+[^:]+: c1a1801c sel {z28\.s-z31\.s}, pn8, {z0\.s-z3\.s}, {z0\.s-z3\.s}
+[^:]+: c1a18380 sel {z0\.s-z3\.s}, pn8, {z28\.s-z31\.s}, {z0\.s-z3\.s}
+[^:]+: c1bd8000 sel {z0\.s-z3\.s}, pn8, {z0\.s-z3\.s}, {z28\.s-z31\.s}
+[^:]+: c1b98a90 sel {z16\.s-z19\.s}, pn10, {z20\.s-z23\.s}, {z24\.s-z27\.s}
+[^:]+: c1e18000 sel {z0\.d-z3\.d}, pn8, {z0\.d-z3\.d}, {z0\.d-z3\.d}
+[^:]+: c1e1801c sel {z28\.d-z31\.d}, pn8, {z0\.d-z3\.d}, {z0\.d-z3\.d}
+[^:]+: c1e18380 sel {z0\.d-z3\.d}, pn8, {z28\.d-z31\.d}, {z0\.d-z3\.d}
+[^:]+: c1fd8000 sel {z0\.d-z3\.d}, pn8, {z0\.d-z3\.d}, {z28\.d-z31\.d}
+[^:]+: c1e98894 sel {z20\.d-z23\.d}, pn10, {z4\.d-z7\.d}, {z8\.d-z11\.d}
diff --git a/gas/testsuite/gas/aarch64/sme2-6.s b/gas/testsuite/gas/aarch64/sme2-6.s
new file mode 100644
index 00000000000..0cc00f1387b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-6.s
@@ -0,0 +1,164 @@
+ cntp x0, pn0.b, vlx2
+ CNTP X0, PN0.B, VLx2
+ cntp x30, pn0.b, vlx2
+ cntp xzr, pn0.b, vlx2
+ cntp x0, pn15.b, vlx2
+ cntp x0, pn0.b, vlx4
+ CNTP X11, PN13.b, VLx4
+
+ cntp x0, pn0.h, vlx2
+ CNTP X0, PN0.H, VLx2
+ cntp x30, pn0.h, vlx2
+ cntp xzr, pn0.h, vlx2
+ cntp x0, pn15.h, vlx2
+ cntp x0, pn0.h, vlx4
+ CNTP X20, PN9.h, VLx2
+
+ cntp x0, pn0.s, vlx2
+ CNTP X0, PN0.s, VLx2
+ cntp x30, pn0.s, vlx2
+ cntp xzr, pn0.s, vlx2
+ cntp x0, pn15.s, vlx2
+ cntp x0, pn0.s, vlx4
+ CNTP X15, PN8.s, VLx4
+
+ cntp x0, pn0.d, vlx2
+ CNTP X0, PN0.d, VLx2
+ cntp x30, pn0.d, vlx2
+ cntp xzr, pn0.d, vlx2
+ cntp x0, pn15.d, vlx2
+ cntp x0, pn0.d, vlx4
+ CNTP X4, PN5.d, VLx2
+
+ pext p0.b, pn8[0]
+ PEXT P0.B, PN8[0]
+ pext p15.b, pn8[0]
+ pext p0.b, pn15[0]
+ pext p0.b, pn8[3]
+ pext p4.b, pn11[2]
+
+ pext p0.h, pn8[0]
+ PEXT P0.H, PN8[0]
+ pext p15.h, pn8[0]
+ pext p0.h, pn15[0]
+ pext p0.h, pn8[3]
+ pext p5.h, pn14[1]
+
+ pext p0.s, pn8[0]
+ PEXT P0.S, PN8[0]
+ pext p15.s, pn8[0]
+ pext p0.s, pn15[0]
+ pext p0.s, pn8[3]
+ pext p6.s, pn10[2]
+
+ pext p0.d, pn8[0]
+ PEXT P0.D, PN8[0]
+ pext p15.d, pn8[0]
+ pext p0.d, pn15[0]
+ pext p0.d, pn8[3]
+ pext p7.d, pn9[1]
+
+ pext { p0.b, p1.b }, pn8[0]
+ pext { p0.b - p1.b }, pn8[0]
+ PEXT { P0.B - P1.B }, PN8[0]
+ pext { p14.b - p15.b }, pn8[0]
+ pext { p15.b, p0.b }, pn8[0]
+ pext { p15.b - p0.b }, pn8[0]
+ pext { p0.b - p1.b }, pn15[0]
+ pext { p0.b - p1.b }, pn8[1]
+ pext { p7.b - p8.b }, pn12[0]
+
+ pext { p0.h, p1.h }, pn8[0]
+ pext { p0.h - p1.h }, pn8[0]
+ PEXT { P0.H - P1.H }, PN8[0]
+ pext { p14.h - p15.h }, pn8[0]
+ pext { p15.h, p0.h }, pn8[0]
+ pext { p15.h - p0.h }, pn8[0]
+ pext { p0.h - p1.h }, pn15[0]
+ pext { p0.h - p1.h }, pn8[1]
+ pext { p2.h - p3.h }, pn14[0]
+
+ pext { p0.s, p1.s }, pn8[0]
+ pext { p0.s - p1.s }, pn8[0]
+ PEXT { P0.S - P1.S }, PN8[0]
+ pext { p14.s - p15.s }, pn8[0]
+ pext { p15.s, p0.s }, pn8[0]
+ pext { p15.s - p0.s }, pn8[0]
+ pext { p0.s - p1.s }, pn15[0]
+ pext { p0.s - p1.s }, pn8[1]
+ pext { p5.s - p6.s }, pn13[0]
+
+ pext { p0.d, p1.d }, pn8[0]
+ pext { p0.d - p1.d }, pn8[0]
+ PEXT { P0.D - P1.D }, PN8[0]
+ pext { p14.d - p15.d }, pn8[0]
+ pext { p15.d, p0.d }, pn8[0]
+ pext { p15.d - p0.d }, pn8[0]
+ pext { p0.d - p1.d }, pn15[0]
+ pext { p0.d - p1.d }, pn8[1]
+ pext { p12.d - p13.d }, pn9[0]
+
+ ptrue pn8.b
+ ptrue pn11.b
+ ptrue pn15.b
+ ptrue pn8.h
+ ptrue pn9.h
+ ptrue pn15.h
+ ptrue pn8.s
+ ptrue pn14.s
+ ptrue pn15.s
+ ptrue pn8.d
+ ptrue pn12.d
+ ptrue pn15.d
+
+ sel { z0.b - z1.b }, pn8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z30.b - z31.b }, pn8, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn15, { z0.b - z1.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z30.b - z31.b }, { z0.b - z1.b }
+ sel { z0.b - z1.b }, pn8, { z0.b - z1.b }, { z30.b - z31.b }
+ sel { z2.b - z3.b }, pn12, { z6.b - z7.b }, { z10.b - z11.b }
+
+ sel { z0.h - z1.h }, pn8, { z0.h - z1.h }, { z0.h - z1.h }
+ sel { z30.h - z31.h }, pn8, { z0.h - z1.h }, { z0.h - z1.h }
+ sel { z0.h - z1.h }, pn15, { z0.h - z1.h }, { z0.h - z1.h }
+ sel { z0.h - z1.h }, pn8, { z30.h - z31.h }, { z0.h - z1.h }
+ sel { z0.h - z1.h }, pn8, { z0.h - z1.h }, { z30.h - z31.h }
+ sel { z12.h - z13.h }, pn9, { z14.h - z15.h }, { z16.h - z17.h }
+
+ sel { z0.s - z1.s }, pn8, { z0.s - z1.s }, { z0.s - z1.s }
+ sel { z30.s - z31.s }, pn8, { z0.s - z1.s }, { z0.s - z1.s }
+ sel { z0.s - z1.s }, pn15, { z0.s - z1.s }, { z0.s - z1.s }
+ sel { z0.s - z1.s }, pn8, { z30.s - z31.s }, { z0.s - z1.s }
+ sel { z0.s - z1.s }, pn8, { z0.s - z1.s }, { z30.s - z31.s }
+ sel { z18.s - z19.s }, pn11, { z22.s - z23.s }, { z24.s - z25.s }
+
+ sel { z0.d - z1.d }, pn8, { z0.d - z1.d }, { z0.d - z1.d }
+ sel { z30.d - z31.d }, pn8, { z0.d - z1.d }, { z0.d - z1.d }
+ sel { z0.d - z1.d }, pn15, { z0.d - z1.d }, { z0.d - z1.d }
+ sel { z0.d - z1.d }, pn8, { z30.d - z31.d }, { z0.d - z1.d }
+ sel { z0.d - z1.d }, pn8, { z0.d - z1.d }, { z30.d - z31.d }
+ sel { z8.d - z9.d }, pn14, { z26.d - z27.d }, { z28.d - z29.d }
+
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z28.b - z31.b }, pn8, { z0.b - z3.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z28.b - z31.b }, { z0.b - z3.b }
+ sel { z0.b - z3.b }, pn8, { z0.b - z3.b }, { z28.b - z31.b }
+ sel { z4.b - z7.b }, pn10, { z8.b - z11.b }, { z12.b - z15.b }
+
+ sel { z0.h - z3.h }, pn8, { z0.h - z3.h }, { z0.h - z3.h }
+ sel { z28.h - z31.h }, pn8, { z0.h - z3.h }, { z0.h - z3.h }
+ sel { z0.h - z3.h }, pn8, { z28.h - z31.h }, { z0.h - z3.h }
+ sel { z0.h - z3.h }, pn8, { z0.h - z3.h }, { z28.h - z31.h }
+ sel { z8.h - z11.h }, pn10, { z16.h - z19.h }, { z20.h - z23.h }
+
+ sel { z0.s - z3.s }, pn8, { z0.s - z3.s }, { z0.s - z3.s }
+ sel { z28.s - z31.s }, pn8, { z0.s - z3.s }, { z0.s - z3.s }
+ sel { z0.s - z3.s }, pn8, { z28.s - z31.s }, { z0.s - z3.s }
+ sel { z0.s - z3.s }, pn8, { z0.s - z3.s }, { z28.s - z31.s }
+ sel { z16.s - z19.s }, pn10, { z20.s - z23.s }, { z24.s - z27.s }
+
+ sel { z0.d - z3.d }, pn8, { z0.d - z3.d }, { z0.d - z3.d }
+ sel { z28.d - z31.d }, pn8, { z0.d - z3.d }, { z0.d - z3.d }
+ sel { z0.d - z3.d }, pn8, { z28.d - z31.d }, { z0.d - z3.d }
+ sel { z0.d - z3.d }, pn8, { z0.d - z3.d }, { z28.d - z31.d }
+ sel { z20.d - z23.d }, pn10, { z4.d - z7.d }, { z8.d - z11.d }
diff --git a/gas/testsuite/gas/aarch64/sme2-7-invalid.d b/gas/testsuite/gas/aarch64/sme2-7-invalid.d
new file mode 100644
index 00000000000..889fd417d8e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-7-invalid.s
+#error_output: sme2-7-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-7-invalid.l b/gas/testsuite/gas/aarch64/sme2-7-invalid.l
new file mode 100644
index 00000000000..65b4cce932a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7-invalid.l
@@ -0,0 +1,20 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `whilege 0,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege pn8\.b,0,x0,vlx2'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege pn8\.b,x0,0,vlx2'
+[^ :]+:[0-9]+: Error: operand 4 must be VLx2 or VLx4 -- `whilege pn8\.b,x0,x0,0'
+[^ :]+:[0-9]+: Error: pn8-pn15 expected at operand 1 -- `whilege pn0\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: unexpected characters following instruction at operand 3 -- `whilege p8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `whilege z8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: comma expected between operands at operand 4 -- `whilege pn8\.b,x0,x0'
+[^ :]+:[0-9]+: Error: operand mismatch -- `whilege pn8\.b,w0,w0,vlx2'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: whilege pn8\.b, x0, x0, vlx2
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: whilege pn8\.h, x0, x0, vlx2
+[^ :]+:[0-9]+: Info: whilege pn8\.s, x0, x0, vlx2
+[^ :]+:[0-9]+: Info: whilege pn8\.d, x0, x0, vlx2
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege pn8\.b,sp,x0,vlx2'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege pn8\.b,x0,sp,vlx2'
+[^ :]+:[0-9]+: Error: operand 4 must be VLx2 or VLx4 -- `whilege pn8\.b,x0,x0,#0'
+[^ :]+:[0-9]+: Error: operand 4 must be VLx2 or VLx4 -- `whilege pn8\.b,x0,x0,1'
diff --git a/gas/testsuite/gas/aarch64/sme2-7-invalid.s b/gas/testsuite/gas/aarch64/sme2-7-invalid.s
new file mode 100644
index 00000000000..0840e7f9169
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7-invalid.s
@@ -0,0 +1,14 @@
+ whilege 0, x0, x0, vlx2
+ whilege pn8.b, 0, x0, vlx2
+ whilege pn8.b, x0, 0, vlx2
+ whilege pn8.b, x0, x0, 0
+
+ whilege pn0.b, x0, x0, vlx2
+ whilege p8.b, x0, x0, vlx2
+ whilege z8.b, x0, x0, vlx2
+ whilege pn8.b, x0, x0
+ whilege pn8.b, w0, w0, vlx2
+ whilege pn8.b, sp, x0, vlx2
+ whilege pn8.b, x0, sp, vlx2
+ whilege pn8.b, x0, x0, #0
+ whilege pn8.b, x0, x0, 1
diff --git a/gas/testsuite/gas/aarch64/sme2-7-noarch.d b/gas/testsuite/gas/aarch64/sme2-7-noarch.d
new file mode 100644
index 00000000000..50ea07c98a7
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-7.s
+#error_output: sme2-7-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-7-noarch.l b/gas/testsuite/gas/aarch64/sme2-7-noarch.l
new file mode 100644
index 00000000000..b6b3c75fda6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7-noarch.l
@@ -0,0 +1,321 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo pn13\.d,x26,x9,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.B,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.B,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn15\.b,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.b,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn11\.b,x20,x1,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.h,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.h,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn15\.h,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.h,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn14\.h,x14,x25,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.s,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.s,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn15\.s,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.s,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn9\.s,x4,x27,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,x0,x0,vlx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.d,X0,X0,VLx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels PN8\.d,X0,X0,VLx4'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn15\.d,x0,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,x30,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,xzr,x0,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,x0,x30,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn8\.d,x0,xzr,vlx2'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels pn13\.d,x26,x9,vlx4'
diff --git a/gas/testsuite/gas/aarch64/sme2-7.d b/gas/testsuite/gas/aarch64/sme2-7.d
new file mode 100644
index 00000000000..8c6fdc5d508
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7.d
@@ -0,0 +1,329 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: 25204010 whilege pn8\.b, x0, x0, vlx2
+[^:]+: 25206010 whilege pn8\.b, x0, x0, vlx4
+[^:]+: 25204010 whilege pn8\.b, x0, x0, vlx2
+[^:]+: 25206010 whilege pn8\.b, x0, x0, vlx4
+[^:]+: 25204017 whilege pn15\.b, x0, x0, vlx2
+[^:]+: 252043d0 whilege pn8\.b, x30, x0, vlx2
+[^:]+: 252043f0 whilege pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4010 whilege pn8\.b, x0, x30, vlx2
+[^:]+: 253f4010 whilege pn8\.b, x0, xzr, vlx2
+[^:]+: 25216293 whilege pn11\.b, x20, x1, vlx4
+[^:]+: 25604010 whilege pn8\.h, x0, x0, vlx2
+[^:]+: 25606010 whilege pn8\.h, x0, x0, vlx4
+[^:]+: 25604010 whilege pn8\.h, x0, x0, vlx2
+[^:]+: 25606010 whilege pn8\.h, x0, x0, vlx4
+[^:]+: 25604017 whilege pn15\.h, x0, x0, vlx2
+[^:]+: 256043d0 whilege pn8\.h, x30, x0, vlx2
+[^:]+: 256043f0 whilege pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4010 whilege pn8\.h, x0, x30, vlx2
+[^:]+: 257f4010 whilege pn8\.h, x0, xzr, vlx2
+[^:]+: 257961d6 whilege pn14\.h, x14, x25, vlx4
+[^:]+: 25a04010 whilege pn8\.s, x0, x0, vlx2
+[^:]+: 25a06010 whilege pn8\.s, x0, x0, vlx4
+[^:]+: 25a04010 whilege pn8\.s, x0, x0, vlx2
+[^:]+: 25a06010 whilege pn8\.s, x0, x0, vlx4
+[^:]+: 25a04017 whilege pn15\.s, x0, x0, vlx2
+[^:]+: 25a043d0 whilege pn8\.s, x30, x0, vlx2
+[^:]+: 25a043f0 whilege pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4010 whilege pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4010 whilege pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4091 whilege pn9\.s, x4, x27, vlx2
+[^:]+: 25e04010 whilege pn8\.d, x0, x0, vlx2
+[^:]+: 25e06010 whilege pn8\.d, x0, x0, vlx4
+[^:]+: 25e04010 whilege pn8\.d, x0, x0, vlx2
+[^:]+: 25e06010 whilege pn8\.d, x0, x0, vlx4
+[^:]+: 25e04017 whilege pn15\.d, x0, x0, vlx2
+[^:]+: 25e043d0 whilege pn8\.d, x30, x0, vlx2
+[^:]+: 25e043f0 whilege pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4010 whilege pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4010 whilege pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96355 whilege pn13\.d, x26, x9, vlx4
+[^:]+: 25204018 whilegt pn8\.b, x0, x0, vlx2
+[^:]+: 25206018 whilegt pn8\.b, x0, x0, vlx4
+[^:]+: 25204018 whilegt pn8\.b, x0, x0, vlx2
+[^:]+: 25206018 whilegt pn8\.b, x0, x0, vlx4
+[^:]+: 2520401f whilegt pn15\.b, x0, x0, vlx2
+[^:]+: 252043d8 whilegt pn8\.b, x30, x0, vlx2
+[^:]+: 252043f8 whilegt pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4018 whilegt pn8\.b, x0, x30, vlx2
+[^:]+: 253f4018 whilegt pn8\.b, x0, xzr, vlx2
+[^:]+: 2521629b whilegt pn11\.b, x20, x1, vlx4
+[^:]+: 25604018 whilegt pn8\.h, x0, x0, vlx2
+[^:]+: 25606018 whilegt pn8\.h, x0, x0, vlx4
+[^:]+: 25604018 whilegt pn8\.h, x0, x0, vlx2
+[^:]+: 25606018 whilegt pn8\.h, x0, x0, vlx4
+[^:]+: 2560401f whilegt pn15\.h, x0, x0, vlx2
+[^:]+: 256043d8 whilegt pn8\.h, x30, x0, vlx2
+[^:]+: 256043f8 whilegt pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4018 whilegt pn8\.h, x0, x30, vlx2
+[^:]+: 257f4018 whilegt pn8\.h, x0, xzr, vlx2
+[^:]+: 257961de whilegt pn14\.h, x14, x25, vlx4
+[^:]+: 25a04018 whilegt pn8\.s, x0, x0, vlx2
+[^:]+: 25a06018 whilegt pn8\.s, x0, x0, vlx4
+[^:]+: 25a04018 whilegt pn8\.s, x0, x0, vlx2
+[^:]+: 25a06018 whilegt pn8\.s, x0, x0, vlx4
+[^:]+: 25a0401f whilegt pn15\.s, x0, x0, vlx2
+[^:]+: 25a043d8 whilegt pn8\.s, x30, x0, vlx2
+[^:]+: 25a043f8 whilegt pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4018 whilegt pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4018 whilegt pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4099 whilegt pn9\.s, x4, x27, vlx2
+[^:]+: 25e04018 whilegt pn8\.d, x0, x0, vlx2
+[^:]+: 25e06018 whilegt pn8\.d, x0, x0, vlx4
+[^:]+: 25e04018 whilegt pn8\.d, x0, x0, vlx2
+[^:]+: 25e06018 whilegt pn8\.d, x0, x0, vlx4
+[^:]+: 25e0401f whilegt pn15\.d, x0, x0, vlx2
+[^:]+: 25e043d8 whilegt pn8\.d, x30, x0, vlx2
+[^:]+: 25e043f8 whilegt pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4018 whilegt pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4018 whilegt pn8\.d, x0, xzr, vlx2
+[^:]+: 25e9635d whilegt pn13\.d, x26, x9, vlx4
+[^:]+: 25204818 whilehi pn8\.b, x0, x0, vlx2
+[^:]+: 25206818 whilehi pn8\.b, x0, x0, vlx4
+[^:]+: 25204818 whilehi pn8\.b, x0, x0, vlx2
+[^:]+: 25206818 whilehi pn8\.b, x0, x0, vlx4
+[^:]+: 2520481f whilehi pn15\.b, x0, x0, vlx2
+[^:]+: 25204bd8 whilehi pn8\.b, x30, x0, vlx2
+[^:]+: 25204bf8 whilehi pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4818 whilehi pn8\.b, x0, x30, vlx2
+[^:]+: 253f4818 whilehi pn8\.b, x0, xzr, vlx2
+[^:]+: 25216a9b whilehi pn11\.b, x20, x1, vlx4
+[^:]+: 25604818 whilehi pn8\.h, x0, x0, vlx2
+[^:]+: 25606818 whilehi pn8\.h, x0, x0, vlx4
+[^:]+: 25604818 whilehi pn8\.h, x0, x0, vlx2
+[^:]+: 25606818 whilehi pn8\.h, x0, x0, vlx4
+[^:]+: 2560481f whilehi pn15\.h, x0, x0, vlx2
+[^:]+: 25604bd8 whilehi pn8\.h, x30, x0, vlx2
+[^:]+: 25604bf8 whilehi pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4818 whilehi pn8\.h, x0, x30, vlx2
+[^:]+: 257f4818 whilehi pn8\.h, x0, xzr, vlx2
+[^:]+: 257969de whilehi pn14\.h, x14, x25, vlx4
+[^:]+: 25a04818 whilehi pn8\.s, x0, x0, vlx2
+[^:]+: 25a06818 whilehi pn8\.s, x0, x0, vlx4
+[^:]+: 25a04818 whilehi pn8\.s, x0, x0, vlx2
+[^:]+: 25a06818 whilehi pn8\.s, x0, x0, vlx4
+[^:]+: 25a0481f whilehi pn15\.s, x0, x0, vlx2
+[^:]+: 25a04bd8 whilehi pn8\.s, x30, x0, vlx2
+[^:]+: 25a04bf8 whilehi pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4818 whilehi pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4818 whilehi pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4899 whilehi pn9\.s, x4, x27, vlx2
+[^:]+: 25e04818 whilehi pn8\.d, x0, x0, vlx2
+[^:]+: 25e06818 whilehi pn8\.d, x0, x0, vlx4
+[^:]+: 25e04818 whilehi pn8\.d, x0, x0, vlx2
+[^:]+: 25e06818 whilehi pn8\.d, x0, x0, vlx4
+[^:]+: 25e0481f whilehi pn15\.d, x0, x0, vlx2
+[^:]+: 25e04bd8 whilehi pn8\.d, x30, x0, vlx2
+[^:]+: 25e04bf8 whilehi pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4818 whilehi pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4818 whilehi pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96b5d whilehi pn13\.d, x26, x9, vlx4
+[^:]+: 25204810 whilehs pn8\.b, x0, x0, vlx2
+[^:]+: 25206810 whilehs pn8\.b, x0, x0, vlx4
+[^:]+: 25204810 whilehs pn8\.b, x0, x0, vlx2
+[^:]+: 25206810 whilehs pn8\.b, x0, x0, vlx4
+[^:]+: 25204817 whilehs pn15\.b, x0, x0, vlx2
+[^:]+: 25204bd0 whilehs pn8\.b, x30, x0, vlx2
+[^:]+: 25204bf0 whilehs pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4810 whilehs pn8\.b, x0, x30, vlx2
+[^:]+: 253f4810 whilehs pn8\.b, x0, xzr, vlx2
+[^:]+: 25216a93 whilehs pn11\.b, x20, x1, vlx4
+[^:]+: 25604810 whilehs pn8\.h, x0, x0, vlx2
+[^:]+: 25606810 whilehs pn8\.h, x0, x0, vlx4
+[^:]+: 25604810 whilehs pn8\.h, x0, x0, vlx2
+[^:]+: 25606810 whilehs pn8\.h, x0, x0, vlx4
+[^:]+: 25604817 whilehs pn15\.h, x0, x0, vlx2
+[^:]+: 25604bd0 whilehs pn8\.h, x30, x0, vlx2
+[^:]+: 25604bf0 whilehs pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4810 whilehs pn8\.h, x0, x30, vlx2
+[^:]+: 257f4810 whilehs pn8\.h, x0, xzr, vlx2
+[^:]+: 257969d6 whilehs pn14\.h, x14, x25, vlx4
+[^:]+: 25a04810 whilehs pn8\.s, x0, x0, vlx2
+[^:]+: 25a06810 whilehs pn8\.s, x0, x0, vlx4
+[^:]+: 25a04810 whilehs pn8\.s, x0, x0, vlx2
+[^:]+: 25a06810 whilehs pn8\.s, x0, x0, vlx4
+[^:]+: 25a04817 whilehs pn15\.s, x0, x0, vlx2
+[^:]+: 25a04bd0 whilehs pn8\.s, x30, x0, vlx2
+[^:]+: 25a04bf0 whilehs pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4810 whilehs pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4810 whilehs pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4891 whilehs pn9\.s, x4, x27, vlx2
+[^:]+: 25e04810 whilehs pn8\.d, x0, x0, vlx2
+[^:]+: 25e06810 whilehs pn8\.d, x0, x0, vlx4
+[^:]+: 25e04810 whilehs pn8\.d, x0, x0, vlx2
+[^:]+: 25e06810 whilehs pn8\.d, x0, x0, vlx4
+[^:]+: 25e04817 whilehs pn15\.d, x0, x0, vlx2
+[^:]+: 25e04bd0 whilehs pn8\.d, x30, x0, vlx2
+[^:]+: 25e04bf0 whilehs pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4810 whilehs pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4810 whilehs pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96b55 whilehs pn13\.d, x26, x9, vlx4
+[^:]+: 25204418 whilele pn8\.b, x0, x0, vlx2
+[^:]+: 25206418 whilele pn8\.b, x0, x0, vlx4
+[^:]+: 25204418 whilele pn8\.b, x0, x0, vlx2
+[^:]+: 25206418 whilele pn8\.b, x0, x0, vlx4
+[^:]+: 2520441f whilele pn15\.b, x0, x0, vlx2
+[^:]+: 252047d8 whilele pn8\.b, x30, x0, vlx2
+[^:]+: 252047f8 whilele pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4418 whilele pn8\.b, x0, x30, vlx2
+[^:]+: 253f4418 whilele pn8\.b, x0, xzr, vlx2
+[^:]+: 2521669b whilele pn11\.b, x20, x1, vlx4
+[^:]+: 25604418 whilele pn8\.h, x0, x0, vlx2
+[^:]+: 25606418 whilele pn8\.h, x0, x0, vlx4
+[^:]+: 25604418 whilele pn8\.h, x0, x0, vlx2
+[^:]+: 25606418 whilele pn8\.h, x0, x0, vlx4
+[^:]+: 2560441f whilele pn15\.h, x0, x0, vlx2
+[^:]+: 256047d8 whilele pn8\.h, x30, x0, vlx2
+[^:]+: 256047f8 whilele pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4418 whilele pn8\.h, x0, x30, vlx2
+[^:]+: 257f4418 whilele pn8\.h, x0, xzr, vlx2
+[^:]+: 257965de whilele pn14\.h, x14, x25, vlx4
+[^:]+: 25a04418 whilele pn8\.s, x0, x0, vlx2
+[^:]+: 25a06418 whilele pn8\.s, x0, x0, vlx4
+[^:]+: 25a04418 whilele pn8\.s, x0, x0, vlx2
+[^:]+: 25a06418 whilele pn8\.s, x0, x0, vlx4
+[^:]+: 25a0441f whilele pn15\.s, x0, x0, vlx2
+[^:]+: 25a047d8 whilele pn8\.s, x30, x0, vlx2
+[^:]+: 25a047f8 whilele pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4418 whilele pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4418 whilele pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4499 whilele pn9\.s, x4, x27, vlx2
+[^:]+: 25e04418 whilele pn8\.d, x0, x0, vlx2
+[^:]+: 25e06418 whilele pn8\.d, x0, x0, vlx4
+[^:]+: 25e04418 whilele pn8\.d, x0, x0, vlx2
+[^:]+: 25e06418 whilele pn8\.d, x0, x0, vlx4
+[^:]+: 25e0441f whilele pn15\.d, x0, x0, vlx2
+[^:]+: 25e047d8 whilele pn8\.d, x30, x0, vlx2
+[^:]+: 25e047f8 whilele pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4418 whilele pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4418 whilele pn8\.d, x0, xzr, vlx2
+[^:]+: 25e9675d whilele pn13\.d, x26, x9, vlx4
+[^:]+: 25204410 whilelt pn8\.b, x0, x0, vlx2
+[^:]+: 25206410 whilelt pn8\.b, x0, x0, vlx4
+[^:]+: 25204410 whilelt pn8\.b, x0, x0, vlx2
+[^:]+: 25206410 whilelt pn8\.b, x0, x0, vlx4
+[^:]+: 25204417 whilelt pn15\.b, x0, x0, vlx2
+[^:]+: 252047d0 whilelt pn8\.b, x30, x0, vlx2
+[^:]+: 252047f0 whilelt pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4410 whilelt pn8\.b, x0, x30, vlx2
+[^:]+: 253f4410 whilelt pn8\.b, x0, xzr, vlx2
+[^:]+: 25216693 whilelt pn11\.b, x20, x1, vlx4
+[^:]+: 25604410 whilelt pn8\.h, x0, x0, vlx2
+[^:]+: 25606410 whilelt pn8\.h, x0, x0, vlx4
+[^:]+: 25604410 whilelt pn8\.h, x0, x0, vlx2
+[^:]+: 25606410 whilelt pn8\.h, x0, x0, vlx4
+[^:]+: 25604417 whilelt pn15\.h, x0, x0, vlx2
+[^:]+: 256047d0 whilelt pn8\.h, x30, x0, vlx2
+[^:]+: 256047f0 whilelt pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4410 whilelt pn8\.h, x0, x30, vlx2
+[^:]+: 257f4410 whilelt pn8\.h, x0, xzr, vlx2
+[^:]+: 257965d6 whilelt pn14\.h, x14, x25, vlx4
+[^:]+: 25a04410 whilelt pn8\.s, x0, x0, vlx2
+[^:]+: 25a06410 whilelt pn8\.s, x0, x0, vlx4
+[^:]+: 25a04410 whilelt pn8\.s, x0, x0, vlx2
+[^:]+: 25a06410 whilelt pn8\.s, x0, x0, vlx4
+[^:]+: 25a04417 whilelt pn15\.s, x0, x0, vlx2
+[^:]+: 25a047d0 whilelt pn8\.s, x30, x0, vlx2
+[^:]+: 25a047f0 whilelt pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4410 whilelt pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4410 whilelt pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4491 whilelt pn9\.s, x4, x27, vlx2
+[^:]+: 25e04410 whilelt pn8\.d, x0, x0, vlx2
+[^:]+: 25e06410 whilelt pn8\.d, x0, x0, vlx4
+[^:]+: 25e04410 whilelt pn8\.d, x0, x0, vlx2
+[^:]+: 25e06410 whilelt pn8\.d, x0, x0, vlx4
+[^:]+: 25e04417 whilelt pn15\.d, x0, x0, vlx2
+[^:]+: 25e047d0 whilelt pn8\.d, x30, x0, vlx2
+[^:]+: 25e047f0 whilelt pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4410 whilelt pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4410 whilelt pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96755 whilelt pn13\.d, x26, x9, vlx4
+[^:]+: 25204c10 whilelo pn8\.b, x0, x0, vlx2
+[^:]+: 25206c10 whilelo pn8\.b, x0, x0, vlx4
+[^:]+: 25204c10 whilelo pn8\.b, x0, x0, vlx2
+[^:]+: 25206c10 whilelo pn8\.b, x0, x0, vlx4
+[^:]+: 25204c17 whilelo pn15\.b, x0, x0, vlx2
+[^:]+: 25204fd0 whilelo pn8\.b, x30, x0, vlx2
+[^:]+: 25204ff0 whilelo pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4c10 whilelo pn8\.b, x0, x30, vlx2
+[^:]+: 253f4c10 whilelo pn8\.b, x0, xzr, vlx2
+[^:]+: 25216e93 whilelo pn11\.b, x20, x1, vlx4
+[^:]+: 25604c10 whilelo pn8\.h, x0, x0, vlx2
+[^:]+: 25606c10 whilelo pn8\.h, x0, x0, vlx4
+[^:]+: 25604c10 whilelo pn8\.h, x0, x0, vlx2
+[^:]+: 25606c10 whilelo pn8\.h, x0, x0, vlx4
+[^:]+: 25604c17 whilelo pn15\.h, x0, x0, vlx2
+[^:]+: 25604fd0 whilelo pn8\.h, x30, x0, vlx2
+[^:]+: 25604ff0 whilelo pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4c10 whilelo pn8\.h, x0, x30, vlx2
+[^:]+: 257f4c10 whilelo pn8\.h, x0, xzr, vlx2
+[^:]+: 25796dd6 whilelo pn14\.h, x14, x25, vlx4
+[^:]+: 25a04c10 whilelo pn8\.s, x0, x0, vlx2
+[^:]+: 25a06c10 whilelo pn8\.s, x0, x0, vlx4
+[^:]+: 25a04c10 whilelo pn8\.s, x0, x0, vlx2
+[^:]+: 25a06c10 whilelo pn8\.s, x0, x0, vlx4
+[^:]+: 25a04c17 whilelo pn15\.s, x0, x0, vlx2
+[^:]+: 25a04fd0 whilelo pn8\.s, x30, x0, vlx2
+[^:]+: 25a04ff0 whilelo pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4c10 whilelo pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4c10 whilelo pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4c91 whilelo pn9\.s, x4, x27, vlx2
+[^:]+: 25e04c10 whilelo pn8\.d, x0, x0, vlx2
+[^:]+: 25e06c10 whilelo pn8\.d, x0, x0, vlx4
+[^:]+: 25e04c10 whilelo pn8\.d, x0, x0, vlx2
+[^:]+: 25e06c10 whilelo pn8\.d, x0, x0, vlx4
+[^:]+: 25e04c17 whilelo pn15\.d, x0, x0, vlx2
+[^:]+: 25e04fd0 whilelo pn8\.d, x30, x0, vlx2
+[^:]+: 25e04ff0 whilelo pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4c10 whilelo pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4c10 whilelo pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96f55 whilelo pn13\.d, x26, x9, vlx4
+[^:]+: 25204c18 whilels pn8\.b, x0, x0, vlx2
+[^:]+: 25206c18 whilels pn8\.b, x0, x0, vlx4
+[^:]+: 25204c18 whilels pn8\.b, x0, x0, vlx2
+[^:]+: 25206c18 whilels pn8\.b, x0, x0, vlx4
+[^:]+: 25204c1f whilels pn15\.b, x0, x0, vlx2
+[^:]+: 25204fd8 whilels pn8\.b, x30, x0, vlx2
+[^:]+: 25204ff8 whilels pn8\.b, xzr, x0, vlx2
+[^:]+: 253e4c18 whilels pn8\.b, x0, x30, vlx2
+[^:]+: 253f4c18 whilels pn8\.b, x0, xzr, vlx2
+[^:]+: 25216e9b whilels pn11\.b, x20, x1, vlx4
+[^:]+: 25604c18 whilels pn8\.h, x0, x0, vlx2
+[^:]+: 25606c18 whilels pn8\.h, x0, x0, vlx4
+[^:]+: 25604c18 whilels pn8\.h, x0, x0, vlx2
+[^:]+: 25606c18 whilels pn8\.h, x0, x0, vlx4
+[^:]+: 25604c1f whilels pn15\.h, x0, x0, vlx2
+[^:]+: 25604fd8 whilels pn8\.h, x30, x0, vlx2
+[^:]+: 25604ff8 whilels pn8\.h, xzr, x0, vlx2
+[^:]+: 257e4c18 whilels pn8\.h, x0, x30, vlx2
+[^:]+: 257f4c18 whilels pn8\.h, x0, xzr, vlx2
+[^:]+: 25796dde whilels pn14\.h, x14, x25, vlx4
+[^:]+: 25a04c18 whilels pn8\.s, x0, x0, vlx2
+[^:]+: 25a06c18 whilels pn8\.s, x0, x0, vlx4
+[^:]+: 25a04c18 whilels pn8\.s, x0, x0, vlx2
+[^:]+: 25a06c18 whilels pn8\.s, x0, x0, vlx4
+[^:]+: 25a04c1f whilels pn15\.s, x0, x0, vlx2
+[^:]+: 25a04fd8 whilels pn8\.s, x30, x0, vlx2
+[^:]+: 25a04ff8 whilels pn8\.s, xzr, x0, vlx2
+[^:]+: 25be4c18 whilels pn8\.s, x0, x30, vlx2
+[^:]+: 25bf4c18 whilels pn8\.s, x0, xzr, vlx2
+[^:]+: 25bb4c99 whilels pn9\.s, x4, x27, vlx2
+[^:]+: 25e04c18 whilels pn8\.d, x0, x0, vlx2
+[^:]+: 25e06c18 whilels pn8\.d, x0, x0, vlx4
+[^:]+: 25e04c18 whilels pn8\.d, x0, x0, vlx2
+[^:]+: 25e06c18 whilels pn8\.d, x0, x0, vlx4
+[^:]+: 25e04c1f whilels pn15\.d, x0, x0, vlx2
+[^:]+: 25e04fd8 whilels pn8\.d, x30, x0, vlx2
+[^:]+: 25e04ff8 whilels pn8\.d, xzr, x0, vlx2
+[^:]+: 25fe4c18 whilels pn8\.d, x0, x30, vlx2
+[^:]+: 25ff4c18 whilels pn8\.d, x0, xzr, vlx2
+[^:]+: 25e96f5d whilels pn13\.d, x26, x9, vlx4
diff --git a/gas/testsuite/gas/aarch64/sme2-7.s b/gas/testsuite/gas/aarch64/sme2-7.s
new file mode 100644
index 00000000000..e064a6a6bfa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-7.s
@@ -0,0 +1,351 @@
+ whilege pn8.b, x0, x0, vlx2
+ whilege pn8.b, x0, x0, vlx4
+ WHILEGE PN8.B, X0, X0, VLx2
+ WHILEGE PN8.B, X0, X0, VLx4
+ whilege pn15.b, x0, x0, vlx2
+ whilege pn8.b, x30, x0, vlx2
+ whilege pn8.b, xzr, x0, vlx2
+ whilege pn8.b, x0, x30, vlx2
+ whilege pn8.b, x0, xzr, vlx2
+ whilege pn11.b, x20, x1, vlx4
+
+ whilege pn8.h, x0, x0, vlx2
+ whilege pn8.h, x0, x0, vlx4
+ WHILEGE PN8.h, X0, X0, VLx2
+ WHILEGE PN8.h, X0, X0, VLx4
+ whilege pn15.h, x0, x0, vlx2
+ whilege pn8.h, x30, x0, vlx2
+ whilege pn8.h, xzr, x0, vlx2
+ whilege pn8.h, x0, x30, vlx2
+ whilege pn8.h, x0, xzr, vlx2
+ whilege pn14.h, x14, x25, vlx4
+
+ whilege pn8.s, x0, x0, vlx2
+ whilege pn8.s, x0, x0, vlx4
+ WHILEGE PN8.s, X0, X0, VLx2
+ WHILEGE PN8.s, X0, X0, VLx4
+ whilege pn15.s, x0, x0, vlx2
+ whilege pn8.s, x30, x0, vlx2
+ whilege pn8.s, xzr, x0, vlx2
+ whilege pn8.s, x0, x30, vlx2
+ whilege pn8.s, x0, xzr, vlx2
+ whilege pn9.s, x4, x27, vlx2
+
+ whilege pn8.d, x0, x0, vlx2
+ whilege pn8.d, x0, x0, vlx4
+ WHILEGE PN8.d, X0, X0, VLx2
+ WHILEGE PN8.d, X0, X0, VLx4
+ whilege pn15.d, x0, x0, vlx2
+ whilege pn8.d, x30, x0, vlx2
+ whilege pn8.d, xzr, x0, vlx2
+ whilege pn8.d, x0, x30, vlx2
+ whilege pn8.d, x0, xzr, vlx2
+ whilege pn13.d, x26, x9, vlx4
+
+ whilegt pn8.b, x0, x0, vlx2
+ whilegt pn8.b, x0, x0, vlx4
+ WHILEGT PN8.B, X0, X0, VLx2
+ WHILEGT PN8.B, X0, X0, VLx4
+ whilegt pn15.b, x0, x0, vlx2
+ whilegt pn8.b, x30, x0, vlx2
+ whilegt pn8.b, xzr, x0, vlx2
+ whilegt pn8.b, x0, x30, vlx2
+ whilegt pn8.b, x0, xzr, vlx2
+ whilegt pn11.b, x20, x1, vlx4
+
+ whilegt pn8.h, x0, x0, vlx2
+ whilegt pn8.h, x0, x0, vlx4
+ WHILEGT PN8.h, X0, X0, VLx2
+ WHILEGT PN8.h, X0, X0, VLx4
+ whilegt pn15.h, x0, x0, vlx2
+ whilegt pn8.h, x30, x0, vlx2
+ whilegt pn8.h, xzr, x0, vlx2
+ whilegt pn8.h, x0, x30, vlx2
+ whilegt pn8.h, x0, xzr, vlx2
+ whilegt pn14.h, x14, x25, vlx4
+
+ whilegt pn8.s, x0, x0, vlx2
+ whilegt pn8.s, x0, x0, vlx4
+ WHILEGT PN8.s, X0, X0, VLx2
+ WHILEGT PN8.s, X0, X0, VLx4
+ whilegt pn15.s, x0, x0, vlx2
+ whilegt pn8.s, x30, x0, vlx2
+ whilegt pn8.s, xzr, x0, vlx2
+ whilegt pn8.s, x0, x30, vlx2
+ whilegt pn8.s, x0, xzr, vlx2
+ whilegt pn9.s, x4, x27, vlx2
+
+ whilegt pn8.d, x0, x0, vlx2
+ whilegt pn8.d, x0, x0, vlx4
+ WHILEGT PN8.d, X0, X0, VLx2
+ WHILEGT PN8.d, X0, X0, VLx4
+ whilegt pn15.d, x0, x0, vlx2
+ whilegt pn8.d, x30, x0, vlx2
+ whilegt pn8.d, xzr, x0, vlx2
+ whilegt pn8.d, x0, x30, vlx2
+ whilegt pn8.d, x0, xzr, vlx2
+ whilegt pn13.d, x26, x9, vlx4
+
+ whilehi pn8.b, x0, x0, vlx2
+ whilehi pn8.b, x0, x0, vlx4
+ WHILEHI PN8.B, X0, X0, VLx2
+ WHILEHI PN8.B, X0, X0, VLx4
+ whilehi pn15.b, x0, x0, vlx2
+ whilehi pn8.b, x30, x0, vlx2
+ whilehi pn8.b, xzr, x0, vlx2
+ whilehi pn8.b, x0, x30, vlx2
+ whilehi pn8.b, x0, xzr, vlx2
+ whilehi pn11.b, x20, x1, vlx4
+
+ whilehi pn8.h, x0, x0, vlx2
+ whilehi pn8.h, x0, x0, vlx4
+ WHILEHI PN8.h, X0, X0, VLx2
+ WHILEHI PN8.h, X0, X0, VLx4
+ whilehi pn15.h, x0, x0, vlx2
+ whilehi pn8.h, x30, x0, vlx2
+ whilehi pn8.h, xzr, x0, vlx2
+ whilehi pn8.h, x0, x30, vlx2
+ whilehi pn8.h, x0, xzr, vlx2
+ whilehi pn14.h, x14, x25, vlx4
+
+ whilehi pn8.s, x0, x0, vlx2
+ whilehi pn8.s, x0, x0, vlx4
+ WHILEHI PN8.s, X0, X0, VLx2
+ WHILEHI PN8.s, X0, X0, VLx4
+ whilehi pn15.s, x0, x0, vlx2
+ whilehi pn8.s, x30, x0, vlx2
+ whilehi pn8.s, xzr, x0, vlx2
+ whilehi pn8.s, x0, x30, vlx2
+ whilehi pn8.s, x0, xzr, vlx2
+ whilehi pn9.s, x4, x27, vlx2
+
+ whilehi pn8.d, x0, x0, vlx2
+ whilehi pn8.d, x0, x0, vlx4
+ WHILEHI PN8.d, X0, X0, VLx2
+ WHILEHI PN8.d, X0, X0, VLx4
+ whilehi pn15.d, x0, x0, vlx2
+ whilehi pn8.d, x30, x0, vlx2
+ whilehi pn8.d, xzr, x0, vlx2
+ whilehi pn8.d, x0, x30, vlx2
+ whilehi pn8.d, x0, xzr, vlx2
+ whilehi pn13.d, x26, x9, vlx4
+
+ whilehs pn8.b, x0, x0, vlx2
+ whilehs pn8.b, x0, x0, vlx4
+ WHILEHS PN8.B, X0, X0, VLx2
+ WHILEHS PN8.B, X0, X0, VLx4
+ whilehs pn15.b, x0, x0, vlx2
+ whilehs pn8.b, x30, x0, vlx2
+ whilehs pn8.b, xzr, x0, vlx2
+ whilehs pn8.b, x0, x30, vlx2
+ whilehs pn8.b, x0, xzr, vlx2
+ whilehs pn11.b, x20, x1, vlx4
+
+ whilehs pn8.h, x0, x0, vlx2
+ whilehs pn8.h, x0, x0, vlx4
+ WHILEHS PN8.h, X0, X0, VLx2
+ WHILEHS PN8.h, X0, X0, VLx4
+ whilehs pn15.h, x0, x0, vlx2
+ whilehs pn8.h, x30, x0, vlx2
+ whilehs pn8.h, xzr, x0, vlx2
+ whilehs pn8.h, x0, x30, vlx2
+ whilehs pn8.h, x0, xzr, vlx2
+ whilehs pn14.h, x14, x25, vlx4
+
+ whilehs pn8.s, x0, x0, vlx2
+ whilehs pn8.s, x0, x0, vlx4
+ WHILEHS PN8.s, X0, X0, VLx2
+ WHILEHS PN8.s, X0, X0, VLx4
+ whilehs pn15.s, x0, x0, vlx2
+ whilehs pn8.s, x30, x0, vlx2
+ whilehs pn8.s, xzr, x0, vlx2
+ whilehs pn8.s, x0, x30, vlx2
+ whilehs pn8.s, x0, xzr, vlx2
+ whilehs pn9.s, x4, x27, vlx2
+
+ whilehs pn8.d, x0, x0, vlx2
+ whilehs pn8.d, x0, x0, vlx4
+ WHILEHS PN8.d, X0, X0, VLx2
+ WHILEHS PN8.d, X0, X0, VLx4
+ whilehs pn15.d, x0, x0, vlx2
+ whilehs pn8.d, x30, x0, vlx2
+ whilehs pn8.d, xzr, x0, vlx2
+ whilehs pn8.d, x0, x30, vlx2
+ whilehs pn8.d, x0, xzr, vlx2
+ whilehs pn13.d, x26, x9, vlx4
+
+ whilele pn8.b, x0, x0, vlx2
+ whilele pn8.b, x0, x0, vlx4
+ WHILELE PN8.B, X0, X0, VLx2
+ WHILELE PN8.B, X0, X0, VLx4
+ whilele pn15.b, x0, x0, vlx2
+ whilele pn8.b, x30, x0, vlx2
+ whilele pn8.b, xzr, x0, vlx2
+ whilele pn8.b, x0, x30, vlx2
+ whilele pn8.b, x0, xzr, vlx2
+ whilele pn11.b, x20, x1, vlx4
+
+ whilele pn8.h, x0, x0, vlx2
+ whilele pn8.h, x0, x0, vlx4
+ WHILELE PN8.h, X0, X0, VLx2
+ WHILELE PN8.h, X0, X0, VLx4
+ whilele pn15.h, x0, x0, vlx2
+ whilele pn8.h, x30, x0, vlx2
+ whilele pn8.h, xzr, x0, vlx2
+ whilele pn8.h, x0, x30, vlx2
+ whilele pn8.h, x0, xzr, vlx2
+ whilele pn14.h, x14, x25, vlx4
+
+ whilele pn8.s, x0, x0, vlx2
+ whilele pn8.s, x0, x0, vlx4
+ WHILELE PN8.s, X0, X0, VLx2
+ WHILELE PN8.s, X0, X0, VLx4
+ whilele pn15.s, x0, x0, vlx2
+ whilele pn8.s, x30, x0, vlx2
+ whilele pn8.s, xzr, x0, vlx2
+ whilele pn8.s, x0, x30, vlx2
+ whilele pn8.s, x0, xzr, vlx2
+ whilele pn9.s, x4, x27, vlx2
+
+ whilele pn8.d, x0, x0, vlx2
+ whilele pn8.d, x0, x0, vlx4
+ WHILELE PN8.d, X0, X0, VLx2
+ WHILELE PN8.d, X0, X0, VLx4
+ whilele pn15.d, x0, x0, vlx2
+ whilele pn8.d, x30, x0, vlx2
+ whilele pn8.d, xzr, x0, vlx2
+ whilele pn8.d, x0, x30, vlx2
+ whilele pn8.d, x0, xzr, vlx2
+ whilele pn13.d, x26, x9, vlx4
+
+ whilelt pn8.b, x0, x0, vlx2
+ whilelt pn8.b, x0, x0, vlx4
+ WHILELT PN8.B, X0, X0, VLx2
+ WHILELT PN8.B, X0, X0, VLx4
+ whilelt pn15.b, x0, x0, vlx2
+ whilelt pn8.b, x30, x0, vlx2
+ whilelt pn8.b, xzr, x0, vlx2
+ whilelt pn8.b, x0, x30, vlx2
+ whilelt pn8.b, x0, xzr, vlx2
+ whilelt pn11.b, x20, x1, vlx4
+
+ whilelt pn8.h, x0, x0, vlx2
+ whilelt pn8.h, x0, x0, vlx4
+ WHILELT PN8.h, X0, X0, VLx2
+ WHILELT PN8.h, X0, X0, VLx4
+ whilelt pn15.h, x0, x0, vlx2
+ whilelt pn8.h, x30, x0, vlx2
+ whilelt pn8.h, xzr, x0, vlx2
+ whilelt pn8.h, x0, x30, vlx2
+ whilelt pn8.h, x0, xzr, vlx2
+ whilelt pn14.h, x14, x25, vlx4
+
+ whilelt pn8.s, x0, x0, vlx2
+ whilelt pn8.s, x0, x0, vlx4
+ WHILELT PN8.s, X0, X0, VLx2
+ WHILELT PN8.s, X0, X0, VLx4
+ whilelt pn15.s, x0, x0, vlx2
+ whilelt pn8.s, x30, x0, vlx2
+ whilelt pn8.s, xzr, x0, vlx2
+ whilelt pn8.s, x0, x30, vlx2
+ whilelt pn8.s, x0, xzr, vlx2
+ whilelt pn9.s, x4, x27, vlx2
+
+ whilelt pn8.d, x0, x0, vlx2
+ whilelt pn8.d, x0, x0, vlx4
+ WHILELT PN8.d, X0, X0, VLx2
+ WHILELT PN8.d, X0, X0, VLx4
+ whilelt pn15.d, x0, x0, vlx2
+ whilelt pn8.d, x30, x0, vlx2
+ whilelt pn8.d, xzr, x0, vlx2
+ whilelt pn8.d, x0, x30, vlx2
+ whilelt pn8.d, x0, xzr, vlx2
+ whilelt pn13.d, x26, x9, vlx4
+
+ whilelo pn8.b, x0, x0, vlx2
+ whilelo pn8.b, x0, x0, vlx4
+ WHILELO PN8.B, X0, X0, VLx2
+ WHILELO PN8.B, X0, X0, VLx4
+ whilelo pn15.b, x0, x0, vlx2
+ whilelo pn8.b, x30, x0, vlx2
+ whilelo pn8.b, xzr, x0, vlx2
+ whilelo pn8.b, x0, x30, vlx2
+ whilelo pn8.b, x0, xzr, vlx2
+ whilelo pn11.b, x20, x1, vlx4
+
+ whilelo pn8.h, x0, x0, vlx2
+ whilelo pn8.h, x0, x0, vlx4
+ WHILELO PN8.h, X0, X0, VLx2
+ WHILELO PN8.h, X0, X0, VLx4
+ whilelo pn15.h, x0, x0, vlx2
+ whilelo pn8.h, x30, x0, vlx2
+ whilelo pn8.h, xzr, x0, vlx2
+ whilelo pn8.h, x0, x30, vlx2
+ whilelo pn8.h, x0, xzr, vlx2
+ whilelo pn14.h, x14, x25, vlx4
+
+ whilelo pn8.s, x0, x0, vlx2
+ whilelo pn8.s, x0, x0, vlx4
+ WHILELO PN8.s, X0, X0, VLx2
+ WHILELO PN8.s, X0, X0, VLx4
+ whilelo pn15.s, x0, x0, vlx2
+ whilelo pn8.s, x30, x0, vlx2
+ whilelo pn8.s, xzr, x0, vlx2
+ whilelo pn8.s, x0, x30, vlx2
+ whilelo pn8.s, x0, xzr, vlx2
+ whilelo pn9.s, x4, x27, vlx2
+
+ whilelo pn8.d, x0, x0, vlx2
+ whilelo pn8.d, x0, x0, vlx4
+ WHILELO PN8.d, X0, X0, VLx2
+ WHILELO PN8.d, X0, X0, VLx4
+ whilelo pn15.d, x0, x0, vlx2
+ whilelo pn8.d, x30, x0, vlx2
+ whilelo pn8.d, xzr, x0, vlx2
+ whilelo pn8.d, x0, x30, vlx2
+ whilelo pn8.d, x0, xzr, vlx2
+ whilelo pn13.d, x26, x9, vlx4
+
+ whilels pn8.b, x0, x0, vlx2
+ whilels pn8.b, x0, x0, vlx4
+ WHILELS PN8.B, X0, X0, VLx2
+ WHILELS PN8.B, X0, X0, VLx4
+ whilels pn15.b, x0, x0, vlx2
+ whilels pn8.b, x30, x0, vlx2
+ whilels pn8.b, xzr, x0, vlx2
+ whilels pn8.b, x0, x30, vlx2
+ whilels pn8.b, x0, xzr, vlx2
+ whilels pn11.b, x20, x1, vlx4
+
+ whilels pn8.h, x0, x0, vlx2
+ whilels pn8.h, x0, x0, vlx4
+ WHILELS PN8.h, X0, X0, VLx2
+ WHILELS PN8.h, X0, X0, VLx4
+ whilels pn15.h, x0, x0, vlx2
+ whilels pn8.h, x30, x0, vlx2
+ whilels pn8.h, xzr, x0, vlx2
+ whilels pn8.h, x0, x30, vlx2
+ whilels pn8.h, x0, xzr, vlx2
+ whilels pn14.h, x14, x25, vlx4
+
+ whilels pn8.s, x0, x0, vlx2
+ whilels pn8.s, x0, x0, vlx4
+ WHILELS PN8.s, X0, X0, VLx2
+ WHILELS PN8.s, X0, X0, VLx4
+ whilels pn15.s, x0, x0, vlx2
+ whilels pn8.s, x30, x0, vlx2
+ whilels pn8.s, xzr, x0, vlx2
+ whilels pn8.s, x0, x30, vlx2
+ whilels pn8.s, x0, xzr, vlx2
+ whilels pn9.s, x4, x27, vlx2
+
+ whilels pn8.d, x0, x0, vlx2
+ whilels pn8.d, x0, x0, vlx4
+ WHILELS PN8.d, X0, X0, VLx2
+ WHILELS PN8.d, X0, X0, VLx4
+ whilels pn15.d, x0, x0, vlx2
+ whilels pn8.d, x30, x0, vlx2
+ whilels pn8.d, xzr, x0, vlx2
+ whilels pn8.d, x0, x30, vlx2
+ whilels pn8.d, x0, xzr, vlx2
+ whilels pn13.d, x26, x9, vlx4
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.l b/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.l
index 70cfd59b4c1..99aa2860b23 100644
--- a/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.l
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.l
@@ -1,4 +1,7 @@
[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `psel 0,pn0,p0\.b\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate-as-counter register at operand 2 -- `psel pn0,0,p0\.b\[w12,0\]'
+[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 3 -- `psel pn0,pn0,0'
[^ :]+:[0-9]+: Error: expected a predicate-as-counter rather than predicate-as-mask register at operand 2 -- `psel pn0,p0,p0\.b\[w12,0\]'
[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 1 -- `psel pn,pn0,p0\.b\[w12,0\]'
[^ :]+:[0-9]+: Error: expected a predicate-as-mask rather than predicate-as-counter register at operand 3 -- `psel p0,p0,pn0\.b\[w12,0\]'
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.s b/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.s
index c0da1d78587..c131457464a 100644
--- a/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.s
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-1-invalid.s
@@ -1,3 +1,7 @@
+ psel 0, pn0, p0.b[w12, 0]
+ psel pn0, 0, p0.b[w12, 0]
+ psel pn0, pn0, 0
+
psel pn0, p0, p0.b[w12, 0]
psel pn, pn0, p0.b[w12, 0]
psel p0, p0, pn0.b[w12, 0]
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.d b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.d
new file mode 100644
index 00000000000..79d4b38d6bb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sve2-sme2-2-invalid.s
+#error_output: sve2-sme2-2-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.l b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.l
new file mode 100644
index 00000000000..161ea7a0c5b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.l
@@ -0,0 +1,25 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `whilege {p0\.b},x0,x0'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `whilege {p1\.b-p2\.b},x0,x0'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `whilege {p0\.b-p2\.b},x0,x0'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `whilege {p0\.b-p3\.b},x0,x0'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `whilege {p15\.b-p0\.b},x0,x0'
+[^ :]+:[0-9]+: Error: the register list must have a stride of 1 at operand 1 -- `whilege {p0\.b,p8\.b},x0,x0'
+[^ :]+:[0-9]+: Error: expected a predicate-as-mask rather than predicate-as-counter register at operand 1 -- `whilege {pn0\.b-pn1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: missing type suffix at operand 1 -- `whilege {p0-p1},x0,x0'
+[^ :]+:[0-9]+: Error: operand mismatch -- `whilege {p0\.q-p1\.q},x0,x0'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: whilege {p0\.b-p1\.b}, x0, x0
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: whilege {p0\.h-p1\.h}, x0, x0
+[^ :]+:[0-9]+: Info: whilege {p0\.s-p1\.s}, x0, x0
+[^ :]+:[0-9]+: Info: whilege {p0\.d-p1\.d}, x0, x0
+[^ :]+:[0-9]+: Error: operand mismatch -- `whilege {p0\.b-p1\.b},w0,w0'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: whilege {p0\.b-p1\.b}, x0, x0
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: whilege {p0\.h-p1\.h}, x0, x0
+[^ :]+:[0-9]+: Info: whilege {p0\.s-p1\.s}, x0, x0
+[^ :]+:[0-9]+: Info: whilege {p0\.d-p1\.d}, x0, x0
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 2 -- `whilege {p0\.b-p1\.b},sp,x0'
+[^ :]+:[0-9]+: Error: expected an integer or zero register at operand 3 -- `whilege {p0\.b-p1\.b},x0,sp'
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.s b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.s
new file mode 100644
index 00000000000..7f23473c7cc
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2-invalid.s
@@ -0,0 +1,12 @@
+ whilege { p0.b }, x0, x0
+ whilege { p1.b - p2.b }, x0, x0
+ whilege { p0.b - p2.b }, x0, x0
+ whilege { p0.b - p3.b }, x0, x0
+ whilege { p15.b - p0.b }, x0, x0
+ whilege { p0.b, p8.b }, x0, x0
+ whilege { pn0.b - pn1.b }, x0, x0
+ whilege { p0 - p1 }, x0, x0
+ whilege { p0.q - p1.q }, x0, x0
+ whilege { p0.b - p1.b }, w0, w0
+ whilege { p0.b - p1.b }, sp, x0
+ whilege { p0.b - p1.b }, x0, sp
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.d b/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.d
new file mode 100644
index 00000000000..bbb1787bdaa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sve2-sme2-2.s
+#error_output: sve2-sme2-2-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.l b/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.l
new file mode 100644
index 00000000000..3152dd8a809
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2-noarch.l
@@ -0,0 +1,257 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilege {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilegt {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehi {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilehs {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilele {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelo {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilels {p4\.d-p5\.d},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.b-p1\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {P0\.B-P1\.B},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p14\.b-p15\.b},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.b-p1\.b},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.b-p1\.b},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.b-p1\.b},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.b-p1\.b},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p4\.b-p5\.b},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.h-p1\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {P0\.h-P1\.h},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p14\.h-p15\.h},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.h-p1\.h},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.h-p1\.h},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.h-p1\.h},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.h-p1\.h},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p4\.h-p5\.h},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.s-p1\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {P0\.s-P1\.s},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p14\.s-p15\.s},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.s-p1\.s},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.s-p1\.s},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.s-p1\.s},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.s-p1\.s},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p4\.s-p5\.s},x17,x19'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.d-p1\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {P0\.d-P1\.d},X0,X0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p14\.d-p15\.d},x0,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.d-p1\.d},x30,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.d-p1\.d},xzr,x0'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.d-p1\.d},x0,x30'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p0\.d-p1\.d},x0,xzr'
+[^ :]+:[0-9]+: Error: selected processor does not support `whilelt {p4\.d-p5\.d},x17,x19'
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2.d b/gas/testsuite/gas/aarch64/sve2-sme2-2.d
new file mode 100644
index 00000000000..9e60d1fd9b0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2.d
@@ -0,0 +1,265 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: 25205010 whilege {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205010 whilege {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520501e whilege {p14\.b-p15\.b}, x0, x0
+[^:]+: 252053d0 whilege {p0\.b-p1\.b}, x30, x0
+[^:]+: 252053f0 whilege {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5010 whilege {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5010 whilege {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335234 whilege {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605010 whilege {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605010 whilege {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560501e whilege {p14\.h-p15\.h}, x0, x0
+[^:]+: 256053d0 whilege {p0\.h-p1\.h}, x30, x0
+[^:]+: 256053f0 whilege {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5010 whilege {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5010 whilege {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735234 whilege {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05010 whilege {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05010 whilege {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0501e whilege {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a053d0 whilege {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a053f0 whilege {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5010 whilege {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5010 whilege {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35234 whilege {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05010 whilege {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05010 whilege {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0501e whilege {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e053d0 whilege {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e053f0 whilege {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5010 whilege {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5010 whilege {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35234 whilege {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205011 whilegt {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205011 whilegt {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520501f whilegt {p14\.b-p15\.b}, x0, x0
+[^:]+: 252053d1 whilegt {p0\.b-p1\.b}, x30, x0
+[^:]+: 252053f1 whilegt {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5011 whilegt {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5011 whilegt {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335235 whilegt {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605011 whilegt {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605011 whilegt {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560501f whilegt {p14\.h-p15\.h}, x0, x0
+[^:]+: 256053d1 whilegt {p0\.h-p1\.h}, x30, x0
+[^:]+: 256053f1 whilegt {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5011 whilegt {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5011 whilegt {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735235 whilegt {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05011 whilegt {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05011 whilegt {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0501f whilegt {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a053d1 whilegt {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a053f1 whilegt {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5011 whilegt {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5011 whilegt {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35235 whilegt {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05011 whilegt {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05011 whilegt {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0501f whilegt {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e053d1 whilegt {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e053f1 whilegt {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5011 whilegt {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5011 whilegt {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35235 whilegt {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205811 whilehi {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205811 whilehi {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520581f whilehi {p14\.b-p15\.b}, x0, x0
+[^:]+: 25205bd1 whilehi {p0\.b-p1\.b}, x30, x0
+[^:]+: 25205bf1 whilehi {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5811 whilehi {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5811 whilehi {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335a35 whilehi {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605811 whilehi {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605811 whilehi {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560581f whilehi {p14\.h-p15\.h}, x0, x0
+[^:]+: 25605bd1 whilehi {p0\.h-p1\.h}, x30, x0
+[^:]+: 25605bf1 whilehi {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5811 whilehi {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5811 whilehi {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735a35 whilehi {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05811 whilehi {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05811 whilehi {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0581f whilehi {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a05bd1 whilehi {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a05bf1 whilehi {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5811 whilehi {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5811 whilehi {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35a35 whilehi {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05811 whilehi {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05811 whilehi {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0581f whilehi {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e05bd1 whilehi {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e05bf1 whilehi {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5811 whilehi {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5811 whilehi {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35a35 whilehi {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205810 whilehs {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205810 whilehs {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520581e whilehs {p14\.b-p15\.b}, x0, x0
+[^:]+: 25205bd0 whilehs {p0\.b-p1\.b}, x30, x0
+[^:]+: 25205bf0 whilehs {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5810 whilehs {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5810 whilehs {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335a34 whilehs {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605810 whilehs {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605810 whilehs {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560581e whilehs {p14\.h-p15\.h}, x0, x0
+[^:]+: 25605bd0 whilehs {p0\.h-p1\.h}, x30, x0
+[^:]+: 25605bf0 whilehs {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5810 whilehs {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5810 whilehs {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735a34 whilehs {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05810 whilehs {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05810 whilehs {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0581e whilehs {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a05bd0 whilehs {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a05bf0 whilehs {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5810 whilehs {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5810 whilehs {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35a34 whilehs {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05810 whilehs {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05810 whilehs {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0581e whilehs {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e05bd0 whilehs {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e05bf0 whilehs {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5810 whilehs {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5810 whilehs {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35a34 whilehs {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205411 whilele {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205411 whilele {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520541f whilele {p14\.b-p15\.b}, x0, x0
+[^:]+: 252057d1 whilele {p0\.b-p1\.b}, x30, x0
+[^:]+: 252057f1 whilele {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5411 whilele {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5411 whilele {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335635 whilele {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605411 whilele {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605411 whilele {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560541f whilele {p14\.h-p15\.h}, x0, x0
+[^:]+: 256057d1 whilele {p0\.h-p1\.h}, x30, x0
+[^:]+: 256057f1 whilele {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5411 whilele {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5411 whilele {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735635 whilele {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05411 whilele {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05411 whilele {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0541f whilele {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a057d1 whilele {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a057f1 whilele {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5411 whilele {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5411 whilele {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35635 whilele {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05411 whilele {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05411 whilele {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0541f whilele {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e057d1 whilele {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e057f1 whilele {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5411 whilele {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5411 whilele {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35635 whilele {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205c10 whilelo {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205c10 whilelo {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205c1e whilelo {p14\.b-p15\.b}, x0, x0
+[^:]+: 25205fd0 whilelo {p0\.b-p1\.b}, x30, x0
+[^:]+: 25205ff0 whilelo {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5c10 whilelo {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5c10 whilelo {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335e34 whilelo {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605c10 whilelo {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605c10 whilelo {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605c1e whilelo {p14\.h-p15\.h}, x0, x0
+[^:]+: 25605fd0 whilelo {p0\.h-p1\.h}, x30, x0
+[^:]+: 25605ff0 whilelo {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5c10 whilelo {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5c10 whilelo {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735e34 whilelo {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05c10 whilelo {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05c10 whilelo {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05c1e whilelo {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a05fd0 whilelo {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a05ff0 whilelo {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5c10 whilelo {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5c10 whilelo {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35e34 whilelo {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05c10 whilelo {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05c10 whilelo {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05c1e whilelo {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e05fd0 whilelo {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e05ff0 whilelo {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5c10 whilelo {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5c10 whilelo {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35e34 whilelo {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205c11 whilels {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205c11 whilels {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205c1f whilels {p14\.b-p15\.b}, x0, x0
+[^:]+: 25205fd1 whilels {p0\.b-p1\.b}, x30, x0
+[^:]+: 25205ff1 whilels {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5c11 whilels {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5c11 whilels {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335e35 whilels {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605c11 whilels {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605c11 whilels {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605c1f whilels {p14\.h-p15\.h}, x0, x0
+[^:]+: 25605fd1 whilels {p0\.h-p1\.h}, x30, x0
+[^:]+: 25605ff1 whilels {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5c11 whilels {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5c11 whilels {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735e35 whilels {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05c11 whilels {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05c11 whilels {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05c1f whilels {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a05fd1 whilels {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a05ff1 whilels {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5c11 whilels {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5c11 whilels {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35e35 whilels {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05c11 whilels {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05c11 whilels {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05c1f whilels {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e05fd1 whilels {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e05ff1 whilels {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5c11 whilels {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5c11 whilels {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35e35 whilels {p4\.d-p5\.d}, x17, x19
+[^:]+: 25205410 whilelt {p0\.b-p1\.b}, x0, x0
+[^:]+: 25205410 whilelt {p0\.b-p1\.b}, x0, x0
+[^:]+: 2520541e whilelt {p14\.b-p15\.b}, x0, x0
+[^:]+: 252057d0 whilelt {p0\.b-p1\.b}, x30, x0
+[^:]+: 252057f0 whilelt {p0\.b-p1\.b}, xzr, x0
+[^:]+: 253e5410 whilelt {p0\.b-p1\.b}, x0, x30
+[^:]+: 253f5410 whilelt {p0\.b-p1\.b}, x0, xzr
+[^:]+: 25335634 whilelt {p4\.b-p5\.b}, x17, x19
+[^:]+: 25605410 whilelt {p0\.h-p1\.h}, x0, x0
+[^:]+: 25605410 whilelt {p0\.h-p1\.h}, x0, x0
+[^:]+: 2560541e whilelt {p14\.h-p15\.h}, x0, x0
+[^:]+: 256057d0 whilelt {p0\.h-p1\.h}, x30, x0
+[^:]+: 256057f0 whilelt {p0\.h-p1\.h}, xzr, x0
+[^:]+: 257e5410 whilelt {p0\.h-p1\.h}, x0, x30
+[^:]+: 257f5410 whilelt {p0\.h-p1\.h}, x0, xzr
+[^:]+: 25735634 whilelt {p4\.h-p5\.h}, x17, x19
+[^:]+: 25a05410 whilelt {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a05410 whilelt {p0\.s-p1\.s}, x0, x0
+[^:]+: 25a0541e whilelt {p14\.s-p15\.s}, x0, x0
+[^:]+: 25a057d0 whilelt {p0\.s-p1\.s}, x30, x0
+[^:]+: 25a057f0 whilelt {p0\.s-p1\.s}, xzr, x0
+[^:]+: 25be5410 whilelt {p0\.s-p1\.s}, x0, x30
+[^:]+: 25bf5410 whilelt {p0\.s-p1\.s}, x0, xzr
+[^:]+: 25b35634 whilelt {p4\.s-p5\.s}, x17, x19
+[^:]+: 25e05410 whilelt {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e05410 whilelt {p0\.d-p1\.d}, x0, x0
+[^:]+: 25e0541e whilelt {p14\.d-p15\.d}, x0, x0
+[^:]+: 25e057d0 whilelt {p0\.d-p1\.d}, x30, x0
+[^:]+: 25e057f0 whilelt {p0\.d-p1\.d}, xzr, x0
+[^:]+: 25fe5410 whilelt {p0\.d-p1\.d}, x0, x30
+[^:]+: 25ff5410 whilelt {p0\.d-p1\.d}, x0, xzr
+[^:]+: 25f35634 whilelt {p4\.d-p5\.d}, x17, x19
diff --git a/gas/testsuite/gas/aarch64/sve2-sme2-2.s b/gas/testsuite/gas/aarch64/sve2-sme2-2.s
new file mode 100644
index 00000000000..b9175e80d7d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2-sme2-2.s
@@ -0,0 +1,287 @@
+ whilege { p0.b - p1.b }, x0, x0
+ WHILEGE { P0.B - P1.B }, X0, X0
+ whilege { p14.b - p15.b }, x0, x0
+ whilege { p0.b - p1.b }, x30, x0
+ whilege { p0.b - p1.b }, xzr, x0
+ whilege { p0.b - p1.b }, x0, x30
+ whilege { p0.b - p1.b }, x0, xzr
+ whilege { p4.b - p5.b }, x17, x19
+
+ whilege { p0.h - p1.h }, x0, x0
+ WHILEGE { P0.h - P1.h }, X0, X0
+ whilege { p14.h - p15.h }, x0, x0
+ whilege { p0.h - p1.h }, x30, x0
+ whilege { p0.h - p1.h }, xzr, x0
+ whilege { p0.h - p1.h }, x0, x30
+ whilege { p0.h - p1.h }, x0, xzr
+ whilege { p4.h - p5.h }, x17, x19
+
+ whilege { p0.s - p1.s }, x0, x0
+ WHILEGE { P0.s - P1.s }, X0, X0
+ whilege { p14.s - p15.s }, x0, x0
+ whilege { p0.s - p1.s }, x30, x0
+ whilege { p0.s - p1.s }, xzr, x0
+ whilege { p0.s - p1.s }, x0, x30
+ whilege { p0.s - p1.s }, x0, xzr
+ whilege { p4.s - p5.s }, x17, x19
+
+ whilege { p0.d - p1.d }, x0, x0
+ WHILEGE { P0.d - P1.d }, X0, X0
+ whilege { p14.d - p15.d }, x0, x0
+ whilege { p0.d - p1.d }, x30, x0
+ whilege { p0.d - p1.d }, xzr, x0
+ whilege { p0.d - p1.d }, x0, x30
+ whilege { p0.d - p1.d }, x0, xzr
+ whilege { p4.d - p5.d }, x17, x19
+
+ whilegt { p0.b - p1.b }, x0, x0
+ WHILEGT { P0.B - P1.B }, X0, X0
+ whilegt { p14.b - p15.b }, x0, x0
+ whilegt { p0.b - p1.b }, x30, x0
+ whilegt { p0.b - p1.b }, xzr, x0
+ whilegt { p0.b - p1.b }, x0, x30
+ whilegt { p0.b - p1.b }, x0, xzr
+ whilegt { p4.b - p5.b }, x17, x19
+
+ whilegt { p0.h - p1.h }, x0, x0
+ WHILEGT { P0.h - P1.h }, X0, X0
+ whilegt { p14.h - p15.h }, x0, x0
+ whilegt { p0.h - p1.h }, x30, x0
+ whilegt { p0.h - p1.h }, xzr, x0
+ whilegt { p0.h - p1.h }, x0, x30
+ whilegt { p0.h - p1.h }, x0, xzr
+ whilegt { p4.h - p5.h }, x17, x19
+
+ whilegt { p0.s - p1.s }, x0, x0
+ WHILEGT { P0.s - P1.s }, X0, X0
+ whilegt { p14.s - p15.s }, x0, x0
+ whilegt { p0.s - p1.s }, x30, x0
+ whilegt { p0.s - p1.s }, xzr, x0
+ whilegt { p0.s - p1.s }, x0, x30
+ whilegt { p0.s - p1.s }, x0, xzr
+ whilegt { p4.s - p5.s }, x17, x19
+
+ whilegt { p0.d - p1.d }, x0, x0
+ WHILEGT { P0.d - P1.d }, X0, X0
+ whilegt { p14.d - p15.d }, x0, x0
+ whilegt { p0.d - p1.d }, x30, x0
+ whilegt { p0.d - p1.d }, xzr, x0
+ whilegt { p0.d - p1.d }, x0, x30
+ whilegt { p0.d - p1.d }, x0, xzr
+ whilegt { p4.d - p5.d }, x17, x19
+
+ whilehi { p0.b - p1.b }, x0, x0
+ WHILEHI { P0.B - P1.B }, X0, X0
+ whilehi { p14.b - p15.b }, x0, x0
+ whilehi { p0.b - p1.b }, x30, x0
+ whilehi { p0.b - p1.b }, xzr, x0
+ whilehi { p0.b - p1.b }, x0, x30
+ whilehi { p0.b - p1.b }, x0, xzr
+ whilehi { p4.b - p5.b }, x17, x19
+
+ whilehi { p0.h - p1.h }, x0, x0
+ WHILEHI { P0.h - P1.h }, X0, X0
+ whilehi { p14.h - p15.h }, x0, x0
+ whilehi { p0.h - p1.h }, x30, x0
+ whilehi { p0.h - p1.h }, xzr, x0
+ whilehi { p0.h - p1.h }, x0, x30
+ whilehi { p0.h - p1.h }, x0, xzr
+ whilehi { p4.h - p5.h }, x17, x19
+
+ whilehi { p0.s - p1.s }, x0, x0
+ WHILEHI { P0.s - P1.s }, X0, X0
+ whilehi { p14.s - p15.s }, x0, x0
+ whilehi { p0.s - p1.s }, x30, x0
+ whilehi { p0.s - p1.s }, xzr, x0
+ whilehi { p0.s - p1.s }, x0, x30
+ whilehi { p0.s - p1.s }, x0, xzr
+ whilehi { p4.s - p5.s }, x17, x19
+
+ whilehi { p0.d - p1.d }, x0, x0
+ WHILEHI { P0.d - P1.d }, X0, X0
+ whilehi { p14.d - p15.d }, x0, x0
+ whilehi { p0.d - p1.d }, x30, x0
+ whilehi { p0.d - p1.d }, xzr, x0
+ whilehi { p0.d - p1.d }, x0, x30
+ whilehi { p0.d - p1.d }, x0, xzr
+ whilehi { p4.d - p5.d }, x17, x19
+
+ whilehs { p0.b - p1.b }, x0, x0
+ WHILEHS { P0.B - P1.B }, X0, X0
+ whilehs { p14.b - p15.b }, x0, x0
+ whilehs { p0.b - p1.b }, x30, x0
+ whilehs { p0.b - p1.b }, xzr, x0
+ whilehs { p0.b - p1.b }, x0, x30
+ whilehs { p0.b - p1.b }, x0, xzr
+ whilehs { p4.b - p5.b }, x17, x19
+
+ whilehs { p0.h - p1.h }, x0, x0
+ WHILEHS { P0.h - P1.h }, X0, X0
+ whilehs { p14.h - p15.h }, x0, x0
+ whilehs { p0.h - p1.h }, x30, x0
+ whilehs { p0.h - p1.h }, xzr, x0
+ whilehs { p0.h - p1.h }, x0, x30
+ whilehs { p0.h - p1.h }, x0, xzr
+ whilehs { p4.h - p5.h }, x17, x19
+
+ whilehs { p0.s - p1.s }, x0, x0
+ WHILEHS { P0.s - P1.s }, X0, X0
+ whilehs { p14.s - p15.s }, x0, x0
+ whilehs { p0.s - p1.s }, x30, x0
+ whilehs { p0.s - p1.s }, xzr, x0
+ whilehs { p0.s - p1.s }, x0, x30
+ whilehs { p0.s - p1.s }, x0, xzr
+ whilehs { p4.s - p5.s }, x17, x19
+
+ whilehs { p0.d - p1.d }, x0, x0
+ WHILEHS { P0.d - P1.d }, X0, X0
+ whilehs { p14.d - p15.d }, x0, x0
+ whilehs { p0.d - p1.d }, x30, x0
+ whilehs { p0.d - p1.d }, xzr, x0
+ whilehs { p0.d - p1.d }, x0, x30
+ whilehs { p0.d - p1.d }, x0, xzr
+ whilehs { p4.d - p5.d }, x17, x19
+
+ whilele { p0.b - p1.b }, x0, x0
+ WHILELE { P0.B - P1.B }, X0, X0
+ whilele { p14.b - p15.b }, x0, x0
+ whilele { p0.b - p1.b }, x30, x0
+ whilele { p0.b - p1.b }, xzr, x0
+ whilele { p0.b - p1.b }, x0, x30
+ whilele { p0.b - p1.b }, x0, xzr
+ whilele { p4.b - p5.b }, x17, x19
+
+ whilele { p0.h - p1.h }, x0, x0
+ WHILELE { P0.h - P1.h }, X0, X0
+ whilele { p14.h - p15.h }, x0, x0
+ whilele { p0.h - p1.h }, x30, x0
+ whilele { p0.h - p1.h }, xzr, x0
+ whilele { p0.h - p1.h }, x0, x30
+ whilele { p0.h - p1.h }, x0, xzr
+ whilele { p4.h - p5.h }, x17, x19
+
+ whilele { p0.s - p1.s }, x0, x0
+ WHILELE { P0.s - P1.s }, X0, X0
+ whilele { p14.s - p15.s }, x0, x0
+ whilele { p0.s - p1.s }, x30, x0
+ whilele { p0.s - p1.s }, xzr, x0
+ whilele { p0.s - p1.s }, x0, x30
+ whilele { p0.s - p1.s }, x0, xzr
+ whilele { p4.s - p5.s }, x17, x19
+
+ whilele { p0.d - p1.d }, x0, x0
+ WHILELE { P0.d - P1.d }, X0, X0
+ whilele { p14.d - p15.d }, x0, x0
+ whilele { p0.d - p1.d }, x30, x0
+ whilele { p0.d - p1.d }, xzr, x0
+ whilele { p0.d - p1.d }, x0, x30
+ whilele { p0.d - p1.d }, x0, xzr
+ whilele { p4.d - p5.d }, x17, x19
+
+ whilelo { p0.b - p1.b }, x0, x0
+ WHILELO { P0.B - P1.B }, X0, X0
+ whilelo { p14.b - p15.b }, x0, x0
+ whilelo { p0.b - p1.b }, x30, x0
+ whilelo { p0.b - p1.b }, xzr, x0
+ whilelo { p0.b - p1.b }, x0, x30
+ whilelo { p0.b - p1.b }, x0, xzr
+ whilelo { p4.b - p5.b }, x17, x19
+
+ whilelo { p0.h - p1.h }, x0, x0
+ WHILELO { P0.h - P1.h }, X0, X0
+ whilelo { p14.h - p15.h }, x0, x0
+ whilelo { p0.h - p1.h }, x30, x0
+ whilelo { p0.h - p1.h }, xzr, x0
+ whilelo { p0.h - p1.h }, x0, x30
+ whilelo { p0.h - p1.h }, x0, xzr
+ whilelo { p4.h - p5.h }, x17, x19
+
+ whilelo { p0.s - p1.s }, x0, x0
+ WHILELO { P0.s - P1.s }, X0, X0
+ whilelo { p14.s - p15.s }, x0, x0
+ whilelo { p0.s - p1.s }, x30, x0
+ whilelo { p0.s - p1.s }, xzr, x0
+ whilelo { p0.s - p1.s }, x0, x30
+ whilelo { p0.s - p1.s }, x0, xzr
+ whilelo { p4.s - p5.s }, x17, x19
+
+ whilelo { p0.d - p1.d }, x0, x0
+ WHILELO { P0.d - P1.d }, X0, X0
+ whilelo { p14.d - p15.d }, x0, x0
+ whilelo { p0.d - p1.d }, x30, x0
+ whilelo { p0.d - p1.d }, xzr, x0
+ whilelo { p0.d - p1.d }, x0, x30
+ whilelo { p0.d - p1.d }, x0, xzr
+ whilelo { p4.d - p5.d }, x17, x19
+
+ whilels { p0.b - p1.b }, x0, x0
+ WHILELS { P0.B - P1.B }, X0, X0
+ whilels { p14.b - p15.b }, x0, x0
+ whilels { p0.b - p1.b }, x30, x0
+ whilels { p0.b - p1.b }, xzr, x0
+ whilels { p0.b - p1.b }, x0, x30
+ whilels { p0.b - p1.b }, x0, xzr
+ whilels { p4.b - p5.b }, x17, x19
+
+ whilels { p0.h - p1.h }, x0, x0
+ WHILELS { P0.h - P1.h }, X0, X0
+ whilels { p14.h - p15.h }, x0, x0
+ whilels { p0.h - p1.h }, x30, x0
+ whilels { p0.h - p1.h }, xzr, x0
+ whilels { p0.h - p1.h }, x0, x30
+ whilels { p0.h - p1.h }, x0, xzr
+ whilels { p4.h - p5.h }, x17, x19
+
+ whilels { p0.s - p1.s }, x0, x0
+ WHILELS { P0.s - P1.s }, X0, X0
+ whilels { p14.s - p15.s }, x0, x0
+ whilels { p0.s - p1.s }, x30, x0
+ whilels { p0.s - p1.s }, xzr, x0
+ whilels { p0.s - p1.s }, x0, x30
+ whilels { p0.s - p1.s }, x0, xzr
+ whilels { p4.s - p5.s }, x17, x19
+
+ whilels { p0.d - p1.d }, x0, x0
+ WHILELS { P0.d - P1.d }, X0, X0
+ whilels { p14.d - p15.d }, x0, x0
+ whilels { p0.d - p1.d }, x30, x0
+ whilels { p0.d - p1.d }, xzr, x0
+ whilels { p0.d - p1.d }, x0, x30
+ whilels { p0.d - p1.d }, x0, xzr
+ whilels { p4.d - p5.d }, x17, x19
+
+ whilelt { p0.b - p1.b }, x0, x0
+ WHILELT { P0.B - P1.B }, X0, X0
+ whilelt { p14.b - p15.b }, x0, x0
+ whilelt { p0.b - p1.b }, x30, x0
+ whilelt { p0.b - p1.b }, xzr, x0
+ whilelt { p0.b - p1.b }, x0, x30
+ whilelt { p0.b - p1.b }, x0, xzr
+ whilelt { p4.b - p5.b }, x17, x19
+
+ whilelt { p0.h - p1.h }, x0, x0
+ WHILELT { P0.h - P1.h }, X0, X0
+ whilelt { p14.h - p15.h }, x0, x0
+ whilelt { p0.h - p1.h }, x30, x0
+ whilelt { p0.h - p1.h }, xzr, x0
+ whilelt { p0.h - p1.h }, x0, x30
+ whilelt { p0.h - p1.h }, x0, xzr
+ whilelt { p4.h - p5.h }, x17, x19
+
+ whilelt { p0.s - p1.s }, x0, x0
+ WHILELT { P0.s - P1.s }, X0, X0
+ whilelt { p14.s - p15.s }, x0, x0
+ whilelt { p0.s - p1.s }, x30, x0
+ whilelt { p0.s - p1.s }, xzr, x0
+ whilelt { p0.s - p1.s }, x0, x30
+ whilelt { p0.s - p1.s }, x0, xzr
+ whilelt { p4.s - p5.s }, x17, x19
+
+ whilelt { p0.d - p1.d }, x0, x0
+ WHILELT { P0.d - P1.d }, X0, X0
+ whilelt { p14.d - p15.d }, x0, x0
+ whilelt { p0.d - p1.d }, x30, x0
+ whilelt { p0.d - p1.d }, xzr, x0
+ whilelt { p0.d - p1.d }, x0, x30
+ whilelt { p0.d - p1.d }, x0, xzr
+ whilelt { p4.d - p5.d }, x17, x19