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

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

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

    aarch64: Add the SME2 UZP and ZIP instructions
    
    This patch adds UZP and ZIP, which combine UZP{1,2} and ZIP{1,2}
    into single instructions.

Diff:
---
 gas/testsuite/gas/aarch64/sme2-30-invalid.d |   3 +
 gas/testsuite/gas/aarch64/sme2-30-invalid.l |  29 ++
 gas/testsuite/gas/aarch64/sme2-30-invalid.s |  18 +
 gas/testsuite/gas/aarch64/sme2-30-noarch.d  |   3 +
 gas/testsuite/gas/aarch64/sme2-30-noarch.l  |  91 ++++
 gas/testsuite/gas/aarch64/sme2-30.d         |  99 ++++
 gas/testsuite/gas/aarch64/sme2-30.s         | 109 ++++
 opcodes/aarch64-dis-2.c                     | 764 ++++++++++++++++------------
 opcodes/aarch64-tbl.h                       |  12 +
 9 files changed, 790 insertions(+), 338 deletions(-)

diff --git a/gas/testsuite/gas/aarch64/sme2-30-invalid.d b/gas/testsuite/gas/aarch64/sme2-30-invalid.d
new file mode 100644
index 00000000000..535abe3f490
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-30-invalid.s
+#error_output: sme2-30-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-30-invalid.l b/gas/testsuite/gas/aarch64/sme2-30-invalid.l
new file mode 100644
index 00000000000..6805ddba39c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30-invalid.l
@@ -0,0 +1,29 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected '{' at operand 1 -- `uzp 0,z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `uzp {z0\.b-z1\.b},0,z0\.b'
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `uzp {z0\.b-z1\.b},z0\.b,0'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `uzp {z1\.b-z2\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `uzp {z0\.b-z2\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `uzp {z0\.b-z3\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: unexpected characters following instruction at operand 2 -- `uzp {z0\.b-z1\.b},{z0\.b-z1\.b},{z0\.b,z1\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `uzp {z0\.h-z1\.h},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	uzp {z0\.b-z1\.b}, z0\.b, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	uzp {z0\.h-z1\.h}, z0\.h, z0\.h
+[^ :]+:[0-9]+: Info:    	uzp {z0\.s-z1\.s}, z0\.s, z0\.s
+[^ :]+:[0-9]+: Info:    	uzp {z0\.d-z1\.d}, z0\.d, z0\.d
+[^ :]+:[0-9]+: Error: operand mismatch -- `uzp {z0\.q-z3\.q},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	uzp {z0\.b-z3\.b}, z0\.b, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	uzp {z0\.h-z3\.h}, z0\.h, z0\.h
+[^ :]+:[0-9]+: Info:    	uzp {z0\.s-z3\.s}, z0\.s, z0\.s
+[^ :]+:[0-9]+: Info:    	uzp {z0\.d-z3\.d}, z0\.d, z0\.d
+[^ :]+:[0-9]+: Error: unexpected characters following instruction at operand 2 -- `uzp {z0\.b-z3\.b},{z0\.b-z1\.b},{z2\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `uzp {z1\.b-z4\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `uzp {z2\.b-z5\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `uzp {z3\.b-z6\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `uzp {z0\.b-z3\.b},{z1\.b-z4\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `uzp {z0\.b-z3\.b},{z2\.b-z5\.b}'
+[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `uzp {z0\.b-z3\.b},{z3\.b-z6\.b}'
diff --git a/gas/testsuite/gas/aarch64/sme2-30-invalid.s b/gas/testsuite/gas/aarch64/sme2-30-invalid.s
new file mode 100644
index 00000000000..2d3dd1b2604
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30-invalid.s
@@ -0,0 +1,18 @@
+	uzp	0, z0.b, z0.b
+	uzp	{ z0.b - z1.b }, 0, z0.b
+	uzp	{ z0.b - z1.b }, z0.b, 0
+
+	uzp	{ z1.b - z2.b }, z0.b, z0.b
+	uzp	{ z0.b - z2.b }, z0.b, z0.b
+	uzp	{ z0.b - z3.b }, z0.b, z0.b
+	uzp	{ z0.b - z1.b }, { z0.b - z1.b }, { z0.b, z1.b }
+	uzp	{ z0.h - z1.h }, z0.b, z0.b
+	uzp	{ z0.q - z3.q }, z0.b, z0.b
+
+	uzp	{ z0.b - z3.b }, { z0.b - z1.b }, { z2.b - z3.b }
+	uzp	{ z1.b - z4.b }, { z0.b - z3.b }
+	uzp	{ z2.b - z5.b }, { z0.b - z3.b }
+	uzp	{ z3.b - z6.b }, { z0.b - z3.b }
+	uzp	{ z0.b - z3.b }, { z1.b - z4.b }
+	uzp	{ z0.b - z3.b }, { z2.b - z5.b }
+	uzp	{ z0.b - z3.b }, { z3.b - z6.b }
diff --git a/gas/testsuite/gas/aarch64/sme2-30-noarch.d b/gas/testsuite/gas/aarch64/sme2-30-noarch.d
new file mode 100644
index 00000000000..c58d102b75b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-30.s
+#error_output: sme2-30-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-30-noarch.l b/gas/testsuite/gas/aarch64/sme2-30-noarch.l
new file mode 100644
index 00000000000..e3ddd704860
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30-noarch.l
@@ -0,0 +1,91 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.b-z1\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z30\.b-z31\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.b-z1\.b},z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.b-z1\.b},z0\.b,z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z18\.b-z19\.b},z11\.b,z25\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.h-z1\.h},z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z30\.h-z31\.h},z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.h-z1\.h},z31\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.h-z1\.h},z0\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z6\.h-z7\.h},z8\.h,z22\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.s-z1\.s},z0\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z30\.s-z31\.s},z0\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.s-z1\.s},z31\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.s-z1\.s},z0\.s,z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z24\.s-z25\.s},z19\.s,z2\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.d-z1\.d},z0\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z30\.d-z31\.d},z0\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.d-z1\.d},z31\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.d-z1\.d},z0\.d,z31\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z2\.d-z3\.d},z29\.d,z5\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.q-z1\.q},z0\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z30\.q-z31\.q},z0\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.q-z1\.q},z31\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.q-z1\.q},z0\.q,z31\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z14\.q-z15\.q},z24\.q,z9\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z4\.b-z7\.b},{z24\.b-z27\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.h-z3\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z28\.h-z31\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.h-z3\.h},{z28\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z16\.h-z19\.h},{z8\.h-z11\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z28\.s-z31\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.s-z3\.s},{z28\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z20\.s-z23\.s},{z12\.s-z15\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.d-z3\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z28\.d-z31\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.d-z3\.d},{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z8\.d-z11\.d},{z16\.d-z19\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.q-z3\.q},{z0\.q-z3\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z28\.q-z31\.q},{z0\.q-z3\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z0\.q-z3\.q},{z28\.q-z31\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uzp {z12\.q-z15\.q},{z4\.q-z7\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.b-z1\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z30\.b-z31\.b},z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.b-z1\.b},z31\.b,z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.b-z1\.b},z0\.b,z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z18\.b-z19\.b},z11\.b,z25\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.h-z1\.h},z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z30\.h-z31\.h},z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.h-z1\.h},z31\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.h-z1\.h},z0\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z6\.h-z7\.h},z8\.h,z22\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.s-z1\.s},z0\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z30\.s-z31\.s},z0\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.s-z1\.s},z31\.s,z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.s-z1\.s},z0\.s,z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z24\.s-z25\.s},z19\.s,z2\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.d-z1\.d},z0\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z30\.d-z31\.d},z0\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.d-z1\.d},z31\.d,z0\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.d-z1\.d},z0\.d,z31\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z2\.d-z3\.d},z29\.d,z5\.d'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.q-z1\.q},z0\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z30\.q-z31\.q},z0\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.q-z1\.q},z31\.q,z0\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.q-z1\.q},z0\.q,z31\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z14\.q-z15\.q},z24\.q,z9\.q'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.b-z3\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z28\.b-z31\.b},{z0\.b-z3\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.b-z3\.b},{z28\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z4\.b-z7\.b},{z24\.b-z27\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.h-z3\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z28\.h-z31\.h},{z0\.h-z3\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.h-z3\.h},{z28\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z16\.h-z19\.h},{z8\.h-z11\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z28\.s-z31\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.s-z3\.s},{z28\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z20\.s-z23\.s},{z12\.s-z15\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.d-z3\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z28\.d-z31\.d},{z0\.d-z3\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.d-z3\.d},{z28\.d-z31\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z8\.d-z11\.d},{z16\.d-z19\.d}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.q-z3\.q},{z0\.q-z3\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z28\.q-z31\.q},{z0\.q-z3\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z0\.q-z3\.q},{z28\.q-z31\.q}'
+[^ :]+:[0-9]+: Error: selected processor does not support `zip {z12\.q-z15\.q},{z4\.q-z7\.q}'
diff --git a/gas/testsuite/gas/aarch64/sme2-30.d b/gas/testsuite/gas/aarch64/sme2-30.d
new file mode 100644
index 00000000000..2db95e0a83a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30.d
@@ -0,0 +1,99 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+:	c120d001 	uzp	{z0\.b-z1\.b}, z0\.b, z0\.b
+[^:]+:	c120d01f 	uzp	{z30\.b-z31\.b}, z0\.b, z0\.b
+[^:]+:	c120d3e1 	uzp	{z0\.b-z1\.b}, z31\.b, z0\.b
+[^:]+:	c13fd001 	uzp	{z0\.b-z1\.b}, z0\.b, z31\.b
+[^:]+:	c139d173 	uzp	{z18\.b-z19\.b}, z11\.b, z25\.b
+[^:]+:	c160d001 	uzp	{z0\.h-z1\.h}, z0\.h, z0\.h
+[^:]+:	c160d01f 	uzp	{z30\.h-z31\.h}, z0\.h, z0\.h
+[^:]+:	c160d3e1 	uzp	{z0\.h-z1\.h}, z31\.h, z0\.h
+[^:]+:	c17fd001 	uzp	{z0\.h-z1\.h}, z0\.h, z31\.h
+[^:]+:	c176d107 	uzp	{z6\.h-z7\.h}, z8\.h, z22\.h
+[^:]+:	c1a0d001 	uzp	{z0\.s-z1\.s}, z0\.s, z0\.s
+[^:]+:	c1a0d01f 	uzp	{z30\.s-z31\.s}, z0\.s, z0\.s
+[^:]+:	c1a0d3e1 	uzp	{z0\.s-z1\.s}, z31\.s, z0\.s
+[^:]+:	c1bfd001 	uzp	{z0\.s-z1\.s}, z0\.s, z31\.s
+[^:]+:	c1a2d279 	uzp	{z24\.s-z25\.s}, z19\.s, z2\.s
+[^:]+:	c1e0d001 	uzp	{z0\.d-z1\.d}, z0\.d, z0\.d
+[^:]+:	c1e0d01f 	uzp	{z30\.d-z31\.d}, z0\.d, z0\.d
+[^:]+:	c1e0d3e1 	uzp	{z0\.d-z1\.d}, z31\.d, z0\.d
+[^:]+:	c1ffd001 	uzp	{z0\.d-z1\.d}, z0\.d, z31\.d
+[^:]+:	c1e5d3a3 	uzp	{z2\.d-z3\.d}, z29\.d, z5\.d
+[^:]+:	c120d401 	uzp	{z0\.q-z1\.q}, z0\.q, z0\.q
+[^:]+:	c120d41f 	uzp	{z30\.q-z31\.q}, z0\.q, z0\.q
+[^:]+:	c120d7e1 	uzp	{z0\.q-z1\.q}, z31\.q, z0\.q
+[^:]+:	c13fd401 	uzp	{z0\.q-z1\.q}, z0\.q, z31\.q
+[^:]+:	c129d70f 	uzp	{z14\.q-z15\.q}, z24\.q, z9\.q
+[^:]+:	c136e002 	uzp	{z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c136e01e 	uzp	{z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c136e382 	uzp	{z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c136e306 	uzp	{z4\.b-z7\.b}, {z24\.b-z27\.b}
+[^:]+:	c176e002 	uzp	{z0\.h-z3\.h}, {z0\.h-z3\.h}
+[^:]+:	c176e01e 	uzp	{z28\.h-z31\.h}, {z0\.h-z3\.h}
+[^:]+:	c176e382 	uzp	{z0\.h-z3\.h}, {z28\.h-z31\.h}
+[^:]+:	c176e112 	uzp	{z16\.h-z19\.h}, {z8\.h-z11\.h}
+[^:]+:	c1b6e002 	uzp	{z0\.s-z3\.s}, {z0\.s-z3\.s}
+[^:]+:	c1b6e01e 	uzp	{z28\.s-z31\.s}, {z0\.s-z3\.s}
+[^:]+:	c1b6e382 	uzp	{z0\.s-z3\.s}, {z28\.s-z31\.s}
+[^:]+:	c1b6e196 	uzp	{z20\.s-z23\.s}, {z12\.s-z15\.s}
+[^:]+:	c1f6e002 	uzp	{z0\.d-z3\.d}, {z0\.d-z3\.d}
+[^:]+:	c1f6e01e 	uzp	{z28\.d-z31\.d}, {z0\.d-z3\.d}
+[^:]+:	c1f6e382 	uzp	{z0\.d-z3\.d}, {z28\.d-z31\.d}
+[^:]+:	c1f6e20a 	uzp	{z8\.d-z11\.d}, {z16\.d-z19\.d}
+[^:]+:	c137e002 	uzp	{z0\.q-z3\.q}, {z0\.q-z3\.q}
+[^:]+:	c137e01e 	uzp	{z28\.q-z31\.q}, {z0\.q-z3\.q}
+[^:]+:	c137e382 	uzp	{z0\.q-z3\.q}, {z28\.q-z31\.q}
+[^:]+:	c137e08e 	uzp	{z12\.q-z15\.q}, {z4\.q-z7\.q}
+[^:]+:	c120d000 	zip	{z0\.b-z1\.b}, z0\.b, z0\.b
+[^:]+:	c120d01e 	zip	{z30\.b-z31\.b}, z0\.b, z0\.b
+[^:]+:	c120d3e0 	zip	{z0\.b-z1\.b}, z31\.b, z0\.b
+[^:]+:	c13fd000 	zip	{z0\.b-z1\.b}, z0\.b, z31\.b
+[^:]+:	c139d172 	zip	{z18\.b-z19\.b}, z11\.b, z25\.b
+[^:]+:	c160d000 	zip	{z0\.h-z1\.h}, z0\.h, z0\.h
+[^:]+:	c160d01e 	zip	{z30\.h-z31\.h}, z0\.h, z0\.h
+[^:]+:	c160d3e0 	zip	{z0\.h-z1\.h}, z31\.h, z0\.h
+[^:]+:	c17fd000 	zip	{z0\.h-z1\.h}, z0\.h, z31\.h
+[^:]+:	c176d106 	zip	{z6\.h-z7\.h}, z8\.h, z22\.h
+[^:]+:	c1a0d000 	zip	{z0\.s-z1\.s}, z0\.s, z0\.s
+[^:]+:	c1a0d01e 	zip	{z30\.s-z31\.s}, z0\.s, z0\.s
+[^:]+:	c1a0d3e0 	zip	{z0\.s-z1\.s}, z31\.s, z0\.s
+[^:]+:	c1bfd000 	zip	{z0\.s-z1\.s}, z0\.s, z31\.s
+[^:]+:	c1a2d278 	zip	{z24\.s-z25\.s}, z19\.s, z2\.s
+[^:]+:	c1e0d000 	zip	{z0\.d-z1\.d}, z0\.d, z0\.d
+[^:]+:	c1e0d01e 	zip	{z30\.d-z31\.d}, z0\.d, z0\.d
+[^:]+:	c1e0d3e0 	zip	{z0\.d-z1\.d}, z31\.d, z0\.d
+[^:]+:	c1ffd000 	zip	{z0\.d-z1\.d}, z0\.d, z31\.d
+[^:]+:	c1e5d3a2 	zip	{z2\.d-z3\.d}, z29\.d, z5\.d
+[^:]+:	c120d400 	zip	{z0\.q-z1\.q}, z0\.q, z0\.q
+[^:]+:	c120d41e 	zip	{z30\.q-z31\.q}, z0\.q, z0\.q
+[^:]+:	c120d7e0 	zip	{z0\.q-z1\.q}, z31\.q, z0\.q
+[^:]+:	c13fd400 	zip	{z0\.q-z1\.q}, z0\.q, z31\.q
+[^:]+:	c129d70e 	zip	{z14\.q-z15\.q}, z24\.q, z9\.q
+[^:]+:	c136e000 	zip	{z0\.b-z3\.b}, {z0\.b-z3\.b}
+[^:]+:	c136e01c 	zip	{z28\.b-z31\.b}, {z0\.b-z3\.b}
+[^:]+:	c136e380 	zip	{z0\.b-z3\.b}, {z28\.b-z31\.b}
+[^:]+:	c136e304 	zip	{z4\.b-z7\.b}, {z24\.b-z27\.b}
+[^:]+:	c176e000 	zip	{z0\.h-z3\.h}, {z0\.h-z3\.h}
+[^:]+:	c176e01c 	zip	{z28\.h-z31\.h}, {z0\.h-z3\.h}
+[^:]+:	c176e380 	zip	{z0\.h-z3\.h}, {z28\.h-z31\.h}
+[^:]+:	c176e110 	zip	{z16\.h-z19\.h}, {z8\.h-z11\.h}
+[^:]+:	c1b6e000 	zip	{z0\.s-z3\.s}, {z0\.s-z3\.s}
+[^:]+:	c1b6e01c 	zip	{z28\.s-z31\.s}, {z0\.s-z3\.s}
+[^:]+:	c1b6e380 	zip	{z0\.s-z3\.s}, {z28\.s-z31\.s}
+[^:]+:	c1b6e194 	zip	{z20\.s-z23\.s}, {z12\.s-z15\.s}
+[^:]+:	c1f6e000 	zip	{z0\.d-z3\.d}, {z0\.d-z3\.d}
+[^:]+:	c1f6e01c 	zip	{z28\.d-z31\.d}, {z0\.d-z3\.d}
+[^:]+:	c1f6e380 	zip	{z0\.d-z3\.d}, {z28\.d-z31\.d}
+[^:]+:	c1f6e208 	zip	{z8\.d-z11\.d}, {z16\.d-z19\.d}
+[^:]+:	c137e000 	zip	{z0\.q-z3\.q}, {z0\.q-z3\.q}
+[^:]+:	c137e01c 	zip	{z28\.q-z31\.q}, {z0\.q-z3\.q}
+[^:]+:	c137e380 	zip	{z0\.q-z3\.q}, {z28\.q-z31\.q}
+[^:]+:	c137e08c 	zip	{z12\.q-z15\.q}, {z4\.q-z7\.q}
diff --git a/gas/testsuite/gas/aarch64/sme2-30.s b/gas/testsuite/gas/aarch64/sme2-30.s
new file mode 100644
index 00000000000..ade5fc1a0bd
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-30.s
@@ -0,0 +1,109 @@
+	uzp	{ z0.b - z1.b }, z0.b, z0.b
+	uzp	{ z30.b - z31.b }, z0.b, z0.b
+	uzp	{ z0.b - z1.b }, z31.b, z0.b
+	uzp	{ z0.b - z1.b }, z0.b, z31.b
+	uzp	{ z18.b - z19.b }, z11.b, z25.b
+
+	uzp	{ z0.h - z1.h }, z0.h, z0.h
+	uzp	{ z30.h - z31.h }, z0.h, z0.h
+	uzp	{ z0.h - z1.h }, z31.h, z0.h
+	uzp	{ z0.h - z1.h }, z0.h, z31.h
+	uzp	{ z6.h - z7.h }, z8.h, z22.h
+
+	uzp	{ z0.s - z1.s }, z0.s, z0.s
+	uzp	{ z30.s - z31.s }, z0.s, z0.s
+	uzp	{ z0.s - z1.s }, z31.s, z0.s
+	uzp	{ z0.s - z1.s }, z0.s, z31.s
+	uzp	{ z24.s - z25.s }, z19.s, z2.s
+
+	uzp	{ z0.d - z1.d }, z0.d, z0.d
+	uzp	{ z30.d - z31.d }, z0.d, z0.d
+	uzp	{ z0.d - z1.d }, z31.d, z0.d
+	uzp	{ z0.d - z1.d }, z0.d, z31.d
+	uzp	{ z2.d - z3.d }, z29.d, z5.d
+
+	uzp	{ z0.q - z1.q }, z0.q, z0.q
+	uzp	{ z30.q - z31.q }, z0.q, z0.q
+	uzp	{ z0.q - z1.q }, z31.q, z0.q
+	uzp	{ z0.q - z1.q }, z0.q, z31.q
+	uzp	{ z14.q - z15.q }, z24.q, z9.q
+
+	uzp	{ z0.b - z3.b }, { z0.b - z3.b }
+	uzp	{ z28.b - z31.b }, { z0.b - z3.b }
+	uzp	{ z0.b - z3.b }, { z28.b - z31.b }
+	uzp	{ z4.b - z7.b }, { z24.b - z27.b }
+
+	uzp	{ z0.h - z3.h }, { z0.h - z3.h }
+	uzp	{ z28.h - z31.h }, { z0.h - z3.h }
+	uzp	{ z0.h - z3.h }, { z28.h - z31.h }
+	uzp	{ z16.h - z19.h }, { z8.h - z11.h }
+
+	uzp	{ z0.s - z3.s }, { z0.s - z3.s }
+	uzp	{ z28.s - z31.s }, { z0.s - z3.s }
+	uzp	{ z0.s - z3.s }, { z28.s - z31.s }
+	uzp	{ z20.s - z23.s }, { z12.s - z15.s }
+
+	uzp	{ z0.d - z3.d }, { z0.d - z3.d }
+	uzp	{ z28.d - z31.d }, { z0.d - z3.d }
+	uzp	{ z0.d - z3.d }, { z28.d - z31.d }
+	uzp	{ z8.d - z11.d }, { z16.d - z19.d }
+
+	uzp	{ z0.q - z3.q }, { z0.q - z3.q }
+	uzp	{ z28.q - z31.q }, { z0.q - z3.q }
+	uzp	{ z0.q - z3.q }, { z28.q - z31.q }
+	uzp	{ z12.q - z15.q }, { z4.q - z7.q }
+
+	zip	{ z0.b - z1.b }, z0.b, z0.b
+	zip	{ z30.b - z31.b }, z0.b, z0.b
+	zip	{ z0.b - z1.b }, z31.b, z0.b
+	zip	{ z0.b - z1.b }, z0.b, z31.b
+	zip	{ z18.b - z19.b }, z11.b, z25.b
+
+	zip	{ z0.h - z1.h }, z0.h, z0.h
+	zip	{ z30.h - z31.h }, z0.h, z0.h
+	zip	{ z0.h - z1.h }, z31.h, z0.h
+	zip	{ z0.h - z1.h }, z0.h, z31.h
+	zip	{ z6.h - z7.h }, z8.h, z22.h
+
+	zip	{ z0.s - z1.s }, z0.s, z0.s
+	zip	{ z30.s - z31.s }, z0.s, z0.s
+	zip	{ z0.s - z1.s }, z31.s, z0.s
+	zip	{ z0.s - z1.s }, z0.s, z31.s
+	zip	{ z24.s - z25.s }, z19.s, z2.s
+
+	zip	{ z0.d - z1.d }, z0.d, z0.d
+	zip	{ z30.d - z31.d }, z0.d, z0.d
+	zip	{ z0.d - z1.d }, z31.d, z0.d
+	zip	{ z0.d - z1.d }, z0.d, z31.d
+	zip	{ z2.d - z3.d }, z29.d, z5.d
+
+	zip	{ z0.q - z1.q }, z0.q, z0.q
+	zip	{ z30.q - z31.q }, z0.q, z0.q
+	zip	{ z0.q - z1.q }, z31.q, z0.q
+	zip	{ z0.q - z1.q }, z0.q, z31.q
+	zip	{ z14.q - z15.q }, z24.q, z9.q
+
+	zip	{ z0.b - z3.b }, { z0.b - z3.b }
+	zip	{ z28.b - z31.b }, { z0.b - z3.b }
+	zip	{ z0.b - z3.b }, { z28.b - z31.b }
+	zip	{ z4.b - z7.b }, { z24.b - z27.b }
+
+	zip	{ z0.h - z3.h }, { z0.h - z3.h }
+	zip	{ z28.h - z31.h }, { z0.h - z3.h }
+	zip	{ z0.h - z3.h }, { z28.h - z31.h }
+	zip	{ z16.h - z19.h }, { z8.h - z11.h }
+
+	zip	{ z0.s - z3.s }, { z0.s - z3.s }
+	zip	{ z28.s - z31.s }, { z0.s - z3.s }
+	zip	{ z0.s - z3.s }, { z28.s - z31.s }
+	zip	{ z20.s - z23.s }, { z12.s - z15.s }
+
+	zip	{ z0.d - z3.d }, { z0.d - z3.d }
+	zip	{ z28.d - z31.d }, { z0.d - z3.d }
+	zip	{ z0.d - z3.d }, { z28.d - z31.d }
+	zip	{ z8.d - z11.d }, { z16.d - z19.d }
+
+	zip	{ z0.q - z3.q }, { z0.q - z3.q }
+	zip	{ z28.q - z31.q }, { z0.q - z3.q }
+	zip	{ z0.q - z3.q }, { z28.q - z31.q }
+	zip	{ z12.q - z15.q }, { z4.q - z7.q }
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index e514becb5fd..bf04e3fcb0b 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -188,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1000000x10x100xxxxxxxxxxxxxxxxx
                                                      zero.  */
-                                                  return 2887;
+                                                  return 2891;
                                                 }
                                             }
                                         }
@@ -1721,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011000xxxxxxx0xxxxxxx00xxx
                                                              smlall.  */
-                                                          return 2890;
+                                                          return 2898;
                                                         }
                                                       else
                                                         {
@@ -1731,7 +1731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx0xx0xxxxxxx00xxx
                                                                  smlall.  */
-                                                              return 2891;
+                                                              return 2899;
                                                             }
                                                           else
                                                             {
@@ -1739,7 +1739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx1xx0xxxxxxx00xxx
                                                                  smlall.  */
-                                                              return 2892;
+                                                              return 2900;
                                                             }
                                                         }
                                                     }
@@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011000xxxxxxx0xxxxxxx10xxx
                                                              umlall.  */
-                                                          return 2899;
+                                                          return 2907;
                                                         }
                                                       else
                                                         {
@@ -1816,7 +1816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx0xx0xxxxxxx10xxx
                                                                  umlall.  */
-                                                              return 2900;
+                                                              return 2908;
                                                             }
                                                           else
                                                             {
@@ -1824,7 +1824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx1xx0xxxxxxx10xxx
                                                                  umlall.  */
-                                                              return 2901;
+                                                              return 2909;
                                                             }
                                                         }
                                                     }
@@ -1884,7 +1884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011000xxxxxxx0xxxxxxx01xxx
                                                          smlsll.  */
-                                                      return 2893;
+                                                      return 2901;
                                                     }
                                                   else
                                                     {
@@ -1894,7 +1894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx0xx0xxxxxxx01xxx
                                                              smlsll.  */
-                                                          return 2894;
+                                                          return 2902;
                                                         }
                                                       else
                                                         {
@@ -1902,7 +1902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx1xx0xxxxxxx01xxx
                                                              smlsll.  */
-                                                          return 2895;
+                                                          return 2903;
                                                         }
                                                     }
                                                 }
@@ -1958,7 +1958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011000xxxxxxx0xxxxxxx11xxx
                                                          umlsll.  */
-                                                      return 2902;
+                                                      return 2910;
                                                     }
                                                   else
                                                     {
@@ -1968,7 +1968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx0xx0xxxxxxx11xxx
                                                              umlsll.  */
-                                                          return 2903;
+                                                          return 2911;
                                                         }
                                                       else
                                                         {
@@ -1976,7 +1976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx1xx0xxxxxxx11xxx
                                                              umlsll.  */
-                                                          return 2904;
+                                                          return 2912;
                                                         }
                                                     }
                                                 }
@@ -2522,7 +2522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx0xxxxxxx00xxx
                                                          fmla.  */
-                                                      return 2906;
+                                                      return 2914;
                                                     }
                                                   else
                                                     {
@@ -2530,7 +2530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx1xx0xxxxxxx00xxx
                                                          fmla.  */
-                                                      return 2907;
+                                                      return 2915;
                                                     }
                                                 }
                                               else
@@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx000001110xxxxx0xx00xxxxxx01xxx
                                                              sdot.  */
-                                                          return 2888;
+                                                          return 2896;
                                                         }
                                                       else
                                                         {
@@ -2584,7 +2584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx000001110xxxxx1xx00xxxxxx01xxx
                                                              sdot.  */
-                                                          return 2889;
+                                                          return 2897;
                                                         }
                                                     }
                                                   else
@@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxxxxx01xxxxxx01xxx
                                                          svdot.  */
-                                                      return 2896;
+                                                      return 2904;
                                                     }
                                                 }
                                               else
@@ -2662,7 +2662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx0xxxxxxx10xxx
                                                          fmls.  */
-                                                      return 2908;
+                                                      return 2916;
                                                     }
                                                   else
                                                     {
@@ -2670,7 +2670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx1xx0xxxxxxx10xxx
                                                          fmls.  */
-                                                      return 2909;
+                                                      return 2917;
                                                     }
                                                 }
                                               else
@@ -2725,7 +2725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx00001110xxxxx0xx00xxxxxx11xxx
                                                          udot.  */
-                                                      return 2897;
+                                                      return 2905;
                                                     }
                                                   else
                                                     {
@@ -2733,7 +2733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx00001110xxxxx1xx00xxxxxx11xxx
                                                          udot.  */
-                                                      return 2898;
+                                                      return 2906;
                                                     }
                                                 }
                                               else
@@ -2742,7 +2742,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx00001110xxxxxxxx01xxxxxx11xxx
                                                      uvdot.  */
-                                                  return 2905;
+                                                  return 2913;
                                                 }
                                             }
                                           else
@@ -4162,11 +4162,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 11) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x1000001xx1xxxxx110x00xxxxxxxxxx
-                                                         fclamp.  */
-                                                      return 2466;
+                                                      if (((word >> 0) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x1000001xx1xxxxx110000xxxxxxxxx0
+                                                                 fclamp.  */
+                                                              return 2466;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x1000001xx1xxxxx110100xxxxxxxxx0
+                                                                 zip.  */
+                                                              return 2892;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1000001xx1xxxxx110x00xxxxxxxxx1
+                                                             uzp.  */
+                                                          return 2879;
+                                                        }
                                                     }
                                                   else
                                                     {
@@ -4235,32 +4257,54 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 5) & 0x1) == 0)
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 0) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx10xxxx110101xxxx0xxxxx
-                                                                     sqrshr.  */
-                                                                  return 2697;
+                                                                     x1000001x01xxxxx110101xxxxxxxxx0
+                                                                     zip.  */
+                                                                  return 2893;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx11xxxx110101xxxx0xxxxx
-                                                                     sqrshru.  */
-                                                                  return 2700;
+                                                                     x1000001x01xxxxx110101xxxxxxxxx1
+                                                                     uzp.  */
+                                                                  return 2880;
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx110101xxxx1xxxxx
-                                                                 uqrshr.  */
-                                                              return 2853;
+                                                              if (((word >> 5) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001x110xxxx110101xxxx0xxxxx
+                                                                         sqrshr.  */
+                                                                      return 2697;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001x111xxxx110101xxxx0xxxxx
+                                                                         sqrshru.  */
+                                                                      return 2700;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     x1000001x11xxxxx110101xxxx1xxxxx
+                                                                     uqrshr.  */
+                                                                  return 2853;
+                                                                }
                                                             }
                                                         }
                                                     }
@@ -4516,42 +4560,64 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     }
                                                                   else
                                                                     {
-                                                                      if (((word >> 19) & 0x1) == 0)
+                                                                      if (((word >> 18) & 0x1) == 0)
                                                                         {
-                                                                          if (((word >> 20) & 0x1) == 0)
+                                                                          if (((word >> 19) & 0x1) == 0)
                                                                             {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001xx100x10111000xxxx0xxxxx
-                                                                                 scvtf.  */
-                                                                              return 2629;
+                                                                              if (((word >> 20) & 0x1) == 0)
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx100010111000xxxx0xxxxx
+                                                                                     scvtf.  */
+                                                                                  return 2629;
+                                                                                }
+                                                                              else
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx110010111000xxxx0xxxxx
+                                                                                     scvtf.  */
+                                                                                  return 2630;
+                                                                                }
                                                                             }
                                                                           else
                                                                             {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001xx110x10111000xxxx0xxxxx
-                                                                                 scvtf.  */
-                                                                              return 2630;
+                                                                              if (((word >> 20) & 0x1) == 0)
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx101010111000xxxx0xxxxx
+                                                                                     frintm.  */
+                                                                                  return 2526;
+                                                                                }
+                                                                              else
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx111010111000xxxx0xxxxx
+                                                                                     frintm.  */
+                                                                                  return 2527;
+                                                                                }
                                                                             }
                                                                         }
                                                                       else
                                                                         {
-                                                                          if (((word >> 20) & 0x1) == 0)
+                                                                          if (((word >> 1) & 0x1) == 0)
                                                                             {
                                                                               /* 33222222222211111111110000000000
                                                                                  10987654321098765432109876543210
-                                                                                 x1000001xx101x10111000xxxx0xxxxx
-                                                                                 frintm.  */
-                                                                              return 2526;
+                                                                                 x1000001xx1xx110111000xxxx0xxx0x
+                                                                                 zip.  */
+                                                                              return 2894;
                                                                             }
                                                                           else
                                                                             {
                                                                               /* 33222222222211111111110000000000
                                                                                  10987654321098765432109876543210
-                                                                                 x1000001xx111x10111000xxxx0xxxxx
-                                                                                 frintm.  */
-                                                                              return 2527;
+                                                                                 x1000001xx1xx110111000xxxx0xxx1x
+                                                                                 uzp.  */
+                                                                              return 2881;
                                                                             }
                                                                         }
                                                                     }
@@ -4711,66 +4777,88 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   if (((word >> 5) & 0x1) == 0)
                                                                     {
-                                                                      if (((word >> 20) & 0x1) == 0)
-                                                                        {
-                                                                          if (((word >> 22) & 0x1) == 0)
-                                                                            {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001x010xx11111000xxxx0xxxxx
-                                                                                 sqcvt.  */
-                                                                              return 2687;
-                                                                            }
-                                                                          else
-                                                                            {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001x110xx11111000xxxx0xxxxx
-                                                                                 sqcvtu.  */
-                                                                              return 2690;
-                                                                            }
-                                                                        }
-                                                                      else
+                                                                      if (((word >> 18) & 0x1) == 0)
                                                                         {
-                                                                          if (((word >> 6) & 0x1) == 0)
+                                                                          if (((word >> 20) & 0x1) == 0)
                                                                             {
                                                                               if (((word >> 22) & 0x1) == 0)
                                                                                 {
                                                                                   /* 33222222222211111111110000000000
                                                                                      10987654321098765432109876543210
-                                                                                     x1000001x011xx11111000xxx00xxxxx
+                                                                                     x1000001x010x011111000xxxx0xxxxx
                                                                                      sqcvt.  */
-                                                                                  return 2688;
+                                                                                  return 2687;
                                                                                 }
                                                                               else
                                                                                 {
                                                                                   /* 33222222222211111111110000000000
                                                                                      10987654321098765432109876543210
-                                                                                     x1000001x111xx11111000xxx00xxxxx
+                                                                                     x1000001x110x011111000xxxx0xxxxx
                                                                                      sqcvtu.  */
-                                                                                  return 2691;
+                                                                                  return 2690;
                                                                                 }
                                                                             }
                                                                           else
                                                                             {
-                                                                              if (((word >> 22) & 0x1) == 0)
+                                                                              if (((word >> 6) & 0x1) == 0)
                                                                                 {
-                                                                                  /* 33222222222211111111110000000000
-                                                                                     10987654321098765432109876543210
-                                                                                     x1000001x011xx11111000xxx10xxxxx
-                                                                                     sqcvtn.  */
-                                                                                  return 2689;
+                                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001x011x011111000xxx00xxxxx
+                                                                                         sqcvt.  */
+                                                                                      return 2688;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001x111x011111000xxx00xxxxx
+                                                                                         sqcvtu.  */
+                                                                                      return 2691;
+                                                                                    }
                                                                                 }
                                                                               else
                                                                                 {
-                                                                                  /* 33222222222211111111110000000000
-                                                                                     10987654321098765432109876543210
-                                                                                     x1000001x111xx11111000xxx10xxxxx
-                                                                                     sqcvtun.  */
-                                                                                  return 2692;
+                                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001x011x011111000xxx10xxxxx
+                                                                                         sqcvtn.  */
+                                                                                      return 2689;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001x111x011111000xxx10xxxxx
+                                                                                         sqcvtun.  */
+                                                                                      return 2692;
+                                                                                    }
                                                                                 }
                                                                             }
                                                                         }
+                                                                      else
+                                                                        {
+                                                                          if (((word >> 1) & 0x1) == 0)
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx1xx111111000xxxx0xxx0x
+                                                                                 zip.  */
+                                                                              return 2895;
+                                                                            }
+                                                                          else
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx1xx111111000xxxx0xxx1x
+                                                                                 uzp.  */
+                                                                              return 2882;
+                                                                            }
+                                                                        }
                                                                     }
                                                                   else
                                                                     {
@@ -7978,7 +8066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurb.  */
-                                                      return 2950;
+                                                      return 2958;
                                                     }
                                                   else
                                                     {
@@ -7986,7 +8074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2958;
+                                                      return 2966;
                                                     }
                                                 }
                                               else
@@ -7997,7 +8085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurh.  */
-                                                      return 2954;
+                                                      return 2962;
                                                     }
                                                   else
                                                     {
@@ -8005,7 +8093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2961;
+                                                      return 2969;
                                                     }
                                                 }
                                             }
@@ -8043,7 +8131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0000x1xxxxxxxxxx
                                                              cpyfp.  */
-                                                          return 3010;
+                                                          return 3018;
                                                         }
                                                       else
                                                         {
@@ -8051,7 +8139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1000x1xxxxxxxxxx
                                                              cpyfprn.  */
-                                                          return 3016;
+                                                          return 3024;
                                                         }
                                                     }
                                                   else
@@ -8062,7 +8150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0100x1xxxxxxxxxx
                                                              cpyfpwn.  */
-                                                          return 3013;
+                                                          return 3021;
                                                         }
                                                       else
                                                         {
@@ -8070,7 +8158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1100x1xxxxxxxxxx
                                                              cpyfpn.  */
-                                                          return 3019;
+                                                          return 3027;
                                                         }
                                                     }
                                                 }
@@ -8084,7 +8172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0010x1xxxxxxxxxx
                                                              cpyfprt.  */
-                                                          return 3034;
+                                                          return 3042;
                                                         }
                                                       else
                                                         {
@@ -8092,7 +8180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1010x1xxxxxxxxxx
                                                              cpyfprtrn.  */
-                                                          return 3040;
+                                                          return 3048;
                                                         }
                                                     }
                                                   else
@@ -8103,7 +8191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0110x1xxxxxxxxxx
                                                              cpyfprtwn.  */
-                                                          return 3037;
+                                                          return 3045;
                                                         }
                                                       else
                                                         {
@@ -8111,7 +8199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1110x1xxxxxxxxxx
                                                              cpyfprtn.  */
-                                                          return 3043;
+                                                          return 3051;
                                                         }
                                                     }
                                                 }
@@ -8128,7 +8216,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0001x1xxxxxxxxxx
                                                              cpyfpwt.  */
-                                                          return 3022;
+                                                          return 3030;
                                                         }
                                                       else
                                                         {
@@ -8136,7 +8224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1001x1xxxxxxxxxx
                                                              cpyfpwtrn.  */
-                                                          return 3028;
+                                                          return 3036;
                                                         }
                                                     }
                                                   else
@@ -8147,7 +8235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0101x1xxxxxxxxxx
                                                              cpyfpwtwn.  */
-                                                          return 3025;
+                                                          return 3033;
                                                         }
                                                       else
                                                         {
@@ -8155,7 +8243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1101x1xxxxxxxxxx
                                                              cpyfpwtn.  */
-                                                          return 3031;
+                                                          return 3039;
                                                         }
                                                     }
                                                 }
@@ -8169,7 +8257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0011x1xxxxxxxxxx
                                                              cpyfpt.  */
-                                                          return 3046;
+                                                          return 3054;
                                                         }
                                                       else
                                                         {
@@ -8177,7 +8265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1011x1xxxxxxxxxx
                                                              cpyfptrn.  */
-                                                          return 3052;
+                                                          return 3060;
                                                         }
                                                     }
                                                   else
@@ -8188,7 +8276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0111x1xxxxxxxxxx
                                                              cpyfptwn.  */
-                                                          return 3049;
+                                                          return 3057;
                                                         }
                                                       else
                                                         {
@@ -8196,7 +8284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1111x1xxxxxxxxxx
                                                              cpyfptn.  */
-                                                          return 3055;
+                                                          return 3063;
                                                         }
                                                     }
                                                 }
@@ -8261,7 +8349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurb.  */
-                                                      return 2951;
+                                                      return 2959;
                                                     }
                                                   else
                                                     {
@@ -8269,7 +8357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2959;
+                                                      return 2967;
                                                     }
                                                 }
                                               else
@@ -8280,7 +8368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurh.  */
-                                                      return 2955;
+                                                      return 2963;
                                                     }
                                                   else
                                                     {
@@ -8288,7 +8376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2962;
+                                                      return 2970;
                                                     }
                                                 }
                                             }
@@ -8326,7 +8414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0000x1xxxxxxxxxx
                                                              cpyfm.  */
-                                                          return 3011;
+                                                          return 3019;
                                                         }
                                                       else
                                                         {
@@ -8334,7 +8422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1000x1xxxxxxxxxx
                                                              cpyfmrn.  */
-                                                          return 3017;
+                                                          return 3025;
                                                         }
                                                     }
                                                   else
@@ -8345,7 +8433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0100x1xxxxxxxxxx
                                                              cpyfmwn.  */
-                                                          return 3014;
+                                                          return 3022;
                                                         }
                                                       else
                                                         {
@@ -8353,7 +8441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1100x1xxxxxxxxxx
                                                              cpyfmn.  */
-                                                          return 3020;
+                                                          return 3028;
                                                         }
                                                     }
                                                 }
@@ -8367,7 +8455,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0010x1xxxxxxxxxx
                                                              cpyfmrt.  */
-                                                          return 3035;
+                                                          return 3043;
                                                         }
                                                       else
                                                         {
@@ -8375,7 +8463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1010x1xxxxxxxxxx
                                                              cpyfmrtrn.  */
-                                                          return 3041;
+                                                          return 3049;
                                                         }
                                                     }
                                                   else
@@ -8386,7 +8474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0110x1xxxxxxxxxx
                                                              cpyfmrtwn.  */
-                                                          return 3038;
+                                                          return 3046;
                                                         }
                                                       else
                                                         {
@@ -8394,7 +8482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1110x1xxxxxxxxxx
                                                              cpyfmrtn.  */
-                                                          return 3044;
+                                                          return 3052;
                                                         }
                                                     }
                                                 }
@@ -8411,7 +8499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0001x1xxxxxxxxxx
                                                              cpyfmwt.  */
-                                                          return 3023;
+                                                          return 3031;
                                                         }
                                                       else
                                                         {
@@ -8419,7 +8507,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1001x1xxxxxxxxxx
                                                              cpyfmwtrn.  */
-                                                          return 3029;
+                                                          return 3037;
                                                         }
                                                     }
                                                   else
@@ -8430,7 +8518,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0101x1xxxxxxxxxx
                                                              cpyfmwtwn.  */
-                                                          return 3026;
+                                                          return 3034;
                                                         }
                                                       else
                                                         {
@@ -8438,7 +8526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1101x1xxxxxxxxxx
                                                              cpyfmwtn.  */
-                                                          return 3032;
+                                                          return 3040;
                                                         }
                                                     }
                                                 }
@@ -8452,7 +8540,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0011x1xxxxxxxxxx
                                                              cpyfmt.  */
-                                                          return 3047;
+                                                          return 3055;
                                                         }
                                                       else
                                                         {
@@ -8460,7 +8548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1011x1xxxxxxxxxx
                                                              cpyfmtrn.  */
-                                                          return 3053;
+                                                          return 3061;
                                                         }
                                                     }
                                                   else
@@ -8471,7 +8559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0111x1xxxxxxxxxx
                                                              cpyfmtwn.  */
-                                                          return 3050;
+                                                          return 3058;
                                                         }
                                                       else
                                                         {
@@ -8479,7 +8567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1111x1xxxxxxxxxx
                                                              cpyfmtn.  */
-                                                          return 3056;
+                                                          return 3064;
                                                         }
                                                     }
                                                 }
@@ -8547,7 +8635,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursb.  */
-                                                      return 2953;
+                                                      return 2961;
                                                     }
                                                   else
                                                     {
@@ -8555,7 +8643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursw.  */
-                                                      return 2960;
+                                                      return 2968;
                                                     }
                                                 }
                                               else
@@ -8564,7 +8652,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001100xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2957;
+                                                  return 2965;
                                                 }
                                             }
                                           else
@@ -8575,7 +8663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursb.  */
-                                                  return 2952;
+                                                  return 2960;
                                                 }
                                               else
                                                 {
@@ -8583,7 +8671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2956;
+                                                  return 2964;
                                                 }
                                             }
                                         }
@@ -8645,7 +8733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0000x1xxxxxxxxxx
                                                              cpyfe.  */
-                                                          return 3012;
+                                                          return 3020;
                                                         }
                                                       else
                                                         {
@@ -8653,7 +8741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0000x1xxxxxxxxxx
                                                              setp.  */
-                                                          return 3106;
+                                                          return 3114;
                                                         }
                                                     }
                                                   else
@@ -8664,7 +8752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1000x1xxxxxxxxxx
                                                              cpyfern.  */
-                                                          return 3018;
+                                                          return 3026;
                                                         }
                                                       else
                                                         {
@@ -8672,7 +8760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1000x1xxxxxxxxxx
                                                              sete.  */
-                                                          return 3108;
+                                                          return 3116;
                                                         }
                                                     }
                                                 }
@@ -8686,7 +8774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0100x1xxxxxxxxxx
                                                              cpyfewn.  */
-                                                          return 3015;
+                                                          return 3023;
                                                         }
                                                       else
                                                         {
@@ -8694,7 +8782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0100x1xxxxxxxxxx
                                                              setm.  */
-                                                          return 3107;
+                                                          return 3115;
                                                         }
                                                     }
                                                   else
@@ -8703,7 +8791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1100x1xxxxxxxxxx
                                                          cpyfen.  */
-                                                      return 3021;
+                                                      return 3029;
                                                     }
                                                 }
                                             }
@@ -8719,7 +8807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0010x1xxxxxxxxxx
                                                              cpyfert.  */
-                                                          return 3036;
+                                                          return 3044;
                                                         }
                                                       else
                                                         {
@@ -8727,7 +8815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0010x1xxxxxxxxxx
                                                              setpn.  */
-                                                          return 3112;
+                                                          return 3120;
                                                         }
                                                     }
                                                   else
@@ -8738,7 +8826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1010x1xxxxxxxxxx
                                                              cpyfertrn.  */
-                                                          return [...]

[diff truncated at 100000 bytes]

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

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

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

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