public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Richard Sandiford <richard.sandiford@arm.com>
To: binutils@sourceware.org
Cc: Richard Sandiford <richard.sandiford@arm.com>
Subject: [PATCH 24/31] aarch64: Add the SME2 UNPK instructions
Date: Thu, 30 Mar 2023 11:26:39 +0100	[thread overview]
Message-ID: <20230330102646.3327818-25-richard.sandiford@arm.com> (raw)
In-Reply-To: <20230330102646.3327818-1-richard.sandiford@arm.com>

This patch adds SUNPK and UUNPK, which unpack one register's
worth of elements to two registers' worth, or two registers'
worth to four registers' worth.
---
 gas/testsuite/gas/aarch64/sme2-29-invalid.d |    3 +
 gas/testsuite/gas/aarch64/sme2-29-invalid.l |   39 +
 gas/testsuite/gas/aarch64/sme2-29-invalid.s |   14 +
 gas/testsuite/gas/aarch64/sme2-29-noarch.d  |    3 +
 gas/testsuite/gas/aarch64/sme2-29-noarch.l  |   37 +
 gas/testsuite/gas/aarch64/sme2-29.d         |   45 +
 gas/testsuite/gas/aarch64/sme2-29.s         |   47 +
 opcodes/aarch64-dis-2.c                     | 1462 ++++++++++---------
 opcodes/aarch64-tbl.h                       |    4 +
 9 files changed, 945 insertions(+), 709 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29-invalid.d
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29-invalid.l
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29-invalid.s
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29-noarch.d
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29-noarch.l
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29.d
 create mode 100644 gas/testsuite/gas/aarch64/sme2-29.s

diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.d b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
new file mode 100644
index 00000000000..ad85e2d6ffa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-29-invalid.s
+#error_output: sme2-29-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.l b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
new file mode 100644
index 00000000000..893866c114f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
@@ -0,0 +1,39 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected '{' at operand 1 -- `sunpk 0,z0\.b'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `sunpk {z0\.h,z1\.h},0'
+[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `sunpk z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.h,z1\.h},z0\.h'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sunpk {z1\.h,z2\.h},z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z2\.b},z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.h, z2\.h}, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.s, z2\.s}, z0\.h
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.d, z2\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z1\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z2\.h-z4\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z3\.h-z5\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.h-z3\.h}, z0\.b
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.s-z3\.s}, z0\.h
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.d-z3\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 2 -- `sunpk {z0\.s-z3\.s},{x0\.s-x1\.s}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.s-z3\.s}, {z0\.h-z3\.h}
+[^ :]+:[0-9]+: Info:    other valid variant\(s\):
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.h-z3\.h}, {z0\.b-z3\.b}
+[^ :]+:[0-9]+: Info:    	sunpk {z0\.d-z3\.d}, {z0\.s-z3\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.s b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
new file mode 100644
index 00000000000..2282dd214f4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
@@ -0,0 +1,14 @@
+	sunpk	0, z0.b
+	sunpk	{ z0.h, z1.h }, 0
+
+	sunpk	z0.b, z0.b
+	sunpk	{ z0.b, z1.b }, z0.b
+	sunpk	{ z0.h, z1.h }, z0.h
+	sunpk	{ z1.h, z2.h }, z0.b
+	sunpk	{ z0.b, z2.b }, z0.b
+	sunpk	{ z1.h - z3.h }, { z0.b - z1.b }
+	sunpk	{ z2.h - z4.h }, { z0.b - z1.b }
+	sunpk	{ z3.h - z5.h }, { z0.b - z1.b }
+	sunpk	{ z0.s - z3.s }, z0.b
+	sunpk	{ z0.s - z3.s }, { x0.s - x1.s }
+	sunpk	{ z0.s - z3.s }, { z0.s - z3.s }
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.d b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
new file mode 100644
index 00000000000..73c02c50997
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-29.s
+#error_output: sme2-29-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.l b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
new file mode 100644
index 00000000000..2777e1672b3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
@@ -0,0 +1,37 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
diff --git a/gas/testsuite/gas/aarch64/sme2-29.d b/gas/testsuite/gas/aarch64/sme2-29.d
new file mode 100644
index 00000000000..235b0554b8f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.d
@@ -0,0 +1,45 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+:	c165e000 	sunpk	{z0\.h-z1\.h}, z0\.b
+[^:]+:	c165e01e 	sunpk	{z30\.h-z31\.h}, z0\.b
+[^:]+:	c165e3e0 	sunpk	{z0\.h-z1\.h}, z31\.b
+[^:]+:	c175e000 	sunpk	{z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+:	c175e01c 	sunpk	{z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+:	c175e3c0 	sunpk	{z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+:	c1a5e000 	sunpk	{z0\.s-z1\.s}, z0\.h
+[^:]+:	c1a5e01e 	sunpk	{z30\.s-z31\.s}, z0\.h
+[^:]+:	c1a5e3e0 	sunpk	{z0\.s-z1\.s}, z31\.h
+[^:]+:	c1b5e000 	sunpk	{z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+:	c1b5e01c 	sunpk	{z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+:	c1b5e3c0 	sunpk	{z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+:	c1e5e000 	sunpk	{z0\.d-z1\.d}, z0\.s
+[^:]+:	c1e5e01e 	sunpk	{z30\.d-z31\.d}, z0\.s
+[^:]+:	c1e5e3e0 	sunpk	{z0\.d-z1\.d}, z31\.s
+[^:]+:	c1f5e000 	sunpk	{z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+:	c1f5e01c 	sunpk	{z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+:	c1f5e3c0 	sunpk	{z0\.d-z3\.d}, {z30\.s-z31\.s}
+[^:]+:	c165e001 	uunpk	{z0\.h-z1\.h}, z0\.b
+[^:]+:	c165e01f 	uunpk	{z30\.h-z31\.h}, z0\.b
+[^:]+:	c165e3e1 	uunpk	{z0\.h-z1\.h}, z31\.b
+[^:]+:	c175e001 	uunpk	{z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+:	c175e01d 	uunpk	{z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+:	c175e3c1 	uunpk	{z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+:	c1a5e001 	uunpk	{z0\.s-z1\.s}, z0\.h
+[^:]+:	c1a5e01f 	uunpk	{z30\.s-z31\.s}, z0\.h
+[^:]+:	c1a5e3e1 	uunpk	{z0\.s-z1\.s}, z31\.h
+[^:]+:	c1b5e001 	uunpk	{z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+:	c1b5e01d 	uunpk	{z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+:	c1b5e3c1 	uunpk	{z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+:	c1e5e001 	uunpk	{z0\.d-z1\.d}, z0\.s
+[^:]+:	c1e5e01f 	uunpk	{z30\.d-z31\.d}, z0\.s
+[^:]+:	c1e5e3e1 	uunpk	{z0\.d-z1\.d}, z31\.s
+[^:]+:	c1f5e001 	uunpk	{z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+:	c1f5e01d 	uunpk	{z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+:	c1f5e3c1 	uunpk	{z0\.d-z3\.d}, {z30\.s-z31\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29.s b/gas/testsuite/gas/aarch64/sme2-29.s
new file mode 100644
index 00000000000..1cf1a3f239b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.s
@@ -0,0 +1,47 @@
+	sunpk	{ z0.h, z1.h }, z0.b
+	sunpk	{ z30.h, z31.h }, z0.b
+	sunpk	{ z0.h, z1.h }, z31.b
+
+	sunpk	{ z0.h - z3.h }, { z0.b - z1.b }
+	sunpk	{ z28.h - z31.h }, { z0.b - z1.b }
+	sunpk	{ z0.h - z3.h }, { z30.b - z31.b }
+
+	sunpk	{ z0.s, z1.s }, z0.h
+	sunpk	{ z30.s, z31.s }, z0.h
+	sunpk	{ z0.s, z1.s }, z31.h
+
+	sunpk	{ z0.s - z3.s }, { z0.h - z1.h }
+	sunpk	{ z28.s - z31.s }, { z0.h - z1.h }
+	sunpk	{ z0.s - z3.s }, { z30.h - z31.h }
+
+	sunpk	{ z0.d, z1.d }, z0.s
+	sunpk	{ z30.d, z31.d }, z0.s
+	sunpk	{ z0.d, z1.d }, z31.s
+
+	sunpk	{ z0.d - z3.d }, { z0.s - z1.s }
+	sunpk	{ z28.d - z31.d }, { z0.s - z1.s }
+	sunpk	{ z0.d - z3.d }, { z30.s - z31.s }
+
+	uunpk	{ z0.h, z1.h }, z0.b
+	uunpk	{ z30.h, z31.h }, z0.b
+	uunpk	{ z0.h, z1.h }, z31.b
+
+	uunpk	{ z0.h - z3.h }, { z0.b - z1.b }
+	uunpk	{ z28.h - z31.h }, { z0.b - z1.b }
+	uunpk	{ z0.h - z3.h }, { z30.b - z31.b }
+
+	uunpk	{ z0.s, z1.s }, z0.h
+	uunpk	{ z30.s, z31.s }, z0.h
+	uunpk	{ z0.s, z1.s }, z31.h
+
+	uunpk	{ z0.s - z3.s }, { z0.h - z1.h }
+	uunpk	{ z28.s - z31.s }, { z0.h - z1.h }
+	uunpk	{ z0.s - z3.s }, { z30.h - z31.h }
+
+	uunpk	{ z0.d, z1.d }, z0.s
+	uunpk	{ z30.d, z31.d }, z0.s
+	uunpk	{ z0.d, z1.d }, z31.s
+
+	uunpk	{ z0.d - z3.d }, { z0.s - z1.s }
+	uunpk	{ z28.d - z31.d }, { z0.s - z1.s }
+	uunpk	{ z0.d - z3.d }, { z30.s - z31.s }
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index d82c37498e7..e514becb5fd 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 2883;
+                                                  return 2887;
                                                 }
                                             }
                                         }
@@ -1326,7 +1326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000010000xxxxxxxxxxxxxxx001xx
                                                          usmlall.  */
-                                                      return 2864;
+                                                      return 2866;
                                                     }
                                                 }
                                               else
@@ -1358,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xxxxxxxxx100xxx
                                                              usmlall.  */
-                                                          return 2865;
+                                                          return 2867;
                                                         }
                                                       else
                                                         {
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx1xxxxxxxxx100xxx
                                                              usmlall.  */
-                                                          return 2866;
+                                                          return 2868;
                                                         }
                                                     }
                                                 }
@@ -1381,7 +1381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000010000xxxxxxxxxxxxxxx100xx
                                                          umlall.  */
-                                                      return 2822;
+                                                      return 2824;
                                                     }
                                                   else
                                                     {
@@ -1402,7 +1402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xxxxxxxxx010xxx
                                                              umlall.  */
-                                                          return 2823;
+                                                          return 2825;
                                                         }
                                                       else
                                                         {
@@ -1410,7 +1410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx1xxxxxxxxx010xxx
                                                              umlall.  */
-                                                          return 2824;
+                                                          return 2826;
                                                         }
                                                     }
                                                   else
@@ -1475,7 +1475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx0000010000xxxxxxxxxxxxxxx11xxx
                                                      umlsll.  */
-                                                  return 2838;
+                                                  return 2840;
                                                 }
                                               else
                                                 {
@@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000010001xxxx0xxxxxxxxxx11xxx
                                                          umlsll.  */
-                                                      return 2839;
+                                                      return 2841;
                                                     }
                                                   else
                                                     {
@@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000010001xxxx1xxxxxxxxxx11xxx
                                                          umlsll.  */
-                                                      return 2840;
+                                                      return 2842;
                                                     }
                                                 }
                                             }
@@ -1721,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011000xxxxxxx0xxxxxxx00xxx
                                                              smlall.  */
-                                                          return 2886;
+                                                          return 2890;
                                                         }
                                                       else
                                                         {
@@ -1731,7 +1731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx0xx0xxxxxxx00xxx
                                                                  smlall.  */
-                                                              return 2887;
+                                                              return 2891;
                                                             }
                                                           else
                                                             {
@@ -1739,7 +1739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx1xx0xxxxxxx00xxx
                                                                  smlall.  */
-                                                              return 2888;
+                                                              return 2892;
                                                             }
                                                         }
                                                     }
@@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011000xxxxxxx0xxxxxxx10xxx
                                                              umlall.  */
-                                                          return 2895;
+                                                          return 2899;
                                                         }
                                                       else
                                                         {
@@ -1816,7 +1816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx0xx0xxxxxxx10xxx
                                                                  umlall.  */
-                                                              return 2896;
+                                                              return 2900;
                                                             }
                                                           else
                                                             {
@@ -1824,7 +1824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxx1xx0xxxxxxx10xxx
                                                                  umlall.  */
-                                                              return 2897;
+                                                              return 2901;
                                                             }
                                                         }
                                                     }
@@ -1884,7 +1884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011000xxxxxxx0xxxxxxx01xxx
                                                          smlsll.  */
-                                                      return 2889;
+                                                      return 2893;
                                                     }
                                                   else
                                                     {
@@ -1894,7 +1894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx0xx0xxxxxxx01xxx
                                                              smlsll.  */
-                                                          return 2890;
+                                                          return 2894;
                                                         }
                                                       else
                                                         {
@@ -1902,7 +1902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx1xx0xxxxxxx01xxx
                                                              smlsll.  */
-                                                          return 2891;
+                                                          return 2895;
                                                         }
                                                     }
                                                 }
@@ -1943,7 +1943,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx100001100xxxxxxxxxxxxxxxx01xxx
                                                  umopa.  */
-                                              return 2846;
+                                              return 2848;
                                             }
                                         }
                                       else
@@ -1958,7 +1958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011000xxxxxxx0xxxxxxx11xxx
                                                          umlsll.  */
-                                                      return 2898;
+                                                      return 2902;
                                                     }
                                                   else
                                                     {
@@ -1968,7 +1968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx0xx0xxxxxxx11xxx
                                                              umlsll.  */
-                                                          return 2899;
+                                                          return 2903;
                                                         }
                                                       else
                                                         {
@@ -1976,7 +1976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011001xxxx1xx0xxxxxxx11xxx
                                                              umlsll.  */
-                                                          return 2900;
+                                                          return 2904;
                                                         }
                                                     }
                                                 }
@@ -2017,7 +2017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx100001100xxxxxxxxxxxxxxxx11xxx
                                                  umops.  */
-                                              return 2847;
+                                              return 2849;
                                             }
                                         }
                                     }
@@ -2103,7 +2103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx0xxxxxx100xxx
                                                              svdot.  */
-                                                          return 2788;
+                                                          return 2790;
                                                         }
                                                       else
                                                         {
@@ -2133,7 +2133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx1xxxxxx010xxx
                                                              udot.  */
-                                                          return 2794;
+                                                          return 2796;
                                                         }
                                                     }
                                                   else
@@ -2144,7 +2144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx0xxxxxx110xxx
                                                              uvdot.  */
-                                                          return 2873;
+                                                          return 2877;
                                                         }
                                                       else
                                                         {
@@ -2152,7 +2152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx1xxxxxx110xxx
                                                              udot.  */
-                                                          return 2800;
+                                                          return 2802;
                                                         }
                                                     }
                                                 }
@@ -2232,7 +2232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx100xxx
                                                              svdot.  */
-                                                          return 2789;
+                                                          return 2791;
                                                         }
                                                       else
                                                         {
@@ -2262,7 +2262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx1xxxxxx010xxx
                                                              udot.  */
-                                                          return 2795;
+                                                          return 2797;
                                                         }
                                                     }
                                                   else
@@ -2273,7 +2273,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx110xxx
                                                              uvdot.  */
-                                                          return 2874;
+                                                          return 2878;
                                                         }
                                                       else
                                                         {
@@ -2281,7 +2281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx1xxxxxx110xxx
                                                              udot.  */
-                                                          return 2801;
+                                                          return 2803;
                                                         }
                                                     }
                                                 }
@@ -2362,7 +2362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx000010101xxxx0xxxxxxxxx101xxx
                                                          usdot.  */
-                                                      return 2858;
+                                                      return 2860;
                                                     }
                                                 }
                                               else
@@ -2460,7 +2460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx101xxx
                                                              usvdot.  */
-                                                          return 2872;
+                                                          return 2874;
                                                         }
                                                       else
                                                         {
@@ -2468,7 +2468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx1xxxxxx101xxx
                                                              usdot.  */
-                                                          return 2859;
+                                                          return 2861;
                                                         }
                                                     }
                                                 }
@@ -2490,7 +2490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx111xxx
                                                              suvdot.  */
-                                                          return 2787;
+                                                          return 2789;
                                                         }
                                                       else
                                                         {
@@ -2522,7 +2522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx0xxxxxxx00xxx
                                                          fmla.  */
-                                                      return 2902;
+                                                      return 2906;
                                                     }
                                                   else
                                                     {
@@ -2530,7 +2530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx1xx0xxxxxxx00xxx
                                                          fmla.  */
-                                                      return 2903;
+                                                      return 2907;
                                                     }
                                                 }
                                               else
@@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx000001110xxxxx0xx00xxxxxx01xxx
                                                              sdot.  */
-                                                          return 2884;
+                                                          return 2888;
                                                         }
                                                       else
                                                         {
@@ -2584,7 +2584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx000001110xxxxx1xx00xxxxxx01xxx
                                                              sdot.  */
-                                                          return 2885;
+                                                          return 2889;
                                                         }
                                                     }
                                                   else
@@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxxxxx01xxxxxx01xxx
                                                          svdot.  */
-                                                      return 2892;
+                                                      return 2896;
                                                     }
                                                 }
                                               else
@@ -2662,7 +2662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx0xxxxxxx10xxx
                                                          fmls.  */
-                                                      return 2904;
+                                                      return 2908;
                                                     }
                                                   else
                                                     {
@@ -2670,7 +2670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx1xx0xxxxxxx10xxx
                                                          fmls.  */
-                                                      return 2905;
+                                                      return 2909;
                                                     }
                                                 }
                                               else
@@ -2681,7 +2681,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011100xxxxxxx1xxxxxxx10xxx
                                                          umlal.  */
-                                                      return 2814;
+                                                      return 2816;
                                                     }
                                                   else
                                                     {
@@ -2691,7 +2691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011101xxxx0xx1xxxxxxx10xxx
                                                              umlal.  */
-                                                          return 2815;
+                                                          return 2817;
                                                         }
                                                       else
                                                         {
@@ -2699,7 +2699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000011101xxxx1xx1xxxxxxx10xxx
                                                              umlal.  */
-                                                          return 2816;
+                                                          return 2818;
                                                         }
                                                     }
                                                 }
@@ -2725,7 +2725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx00001110xxxxx0xx00xxxxxx11xxx
                                                          udot.  */
-                                                      return 2893;
+                                                      return 2897;
                                                     }
                                                   else
                                                     {
@@ -2733,7 +2733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx00001110xxxxx1xx00xxxxxx11xxx
                                                          udot.  */
-                                                      return 2894;
+                                                      return 2898;
                                                     }
                                                 }
                                               else
@@ -2742,7 +2742,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx00001110xxxxxxxx01xxxxxx11xxx
                                                      uvdot.  */
-                                                  return 2901;
+                                                  return 2905;
                                                 }
                                             }
                                           else
@@ -2753,7 +2753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx000011100xxxxxxx1xxxxxxx11xxx
                                                      umlsl.  */
-                                                  return 2830;
+                                                  return 2832;
                                                 }
                                               else
                                                 {
@@ -2763,7 +2763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx000011101xxxx0xx1xxxxxxx11xxx
                                                          umlsl.  */
-                                                      return 2831;
+                                                      return 2833;
                                                     }
                                                   else
                                                     {
@@ -2771,7 +2771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx000011101xxxx1xx1xxxxxxx11xxx
                                                          umlsl.  */
-                                                      return 2832;
+                                                      return 2834;
                                                     }
                                                 }
                                             }
@@ -2868,7 +2868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010x10xxxx0xx000xxxxx001xx
                                                                          usmlall.  */
-                                                                      return 2868;
+                                                                      return 2870;
                                                                     }
                                                                   else
                                                                     {
@@ -2876,7 +2876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010x11xxxx0xx000xxxxx001xx
                                                                          usmlall.  */
-                                                                      return 2869;
+                                                                      return 2871;
                                                                     }
                                                                 }
                                                               else
@@ -2887,7 +2887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx000xxxxx001xx
                                                                          usmlall.  */
-                                                                      return 2870;
+                                                                      return 2872;
                                                                     }
                                                                   else
                                                                     {
@@ -2895,7 +2895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx000xxxxx001xx
                                                                          usmlall.  */
-                                                                      return 2871;
+                                                                      return 2873;
                                                                     }
                                                                 }
                                                             }
@@ -3092,7 +3092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx0xx001xxxxx001xx
                                                                  usmlall.  */
-                                                              return 2867;
+                                                              return 2869;
                                                             }
                                                         }
                                                       else
@@ -3198,7 +3198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010x10xxxx0xx000xxxxx100xx
                                                                          umlall.  */
-                                                                      return 2826;
+                                                                      return 2828;
                                                                     }
                                                                   else
                                                                     {
@@ -3206,7 +3206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010x11xxxx0xx000xxxxx100xx
                                                                          umlall.  */
-                                                                      return 2827;
+                                                                      return 2829;
                                                                     }
                                                                 }
                                                               else
@@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx000xxxxx100xx
                                                                          umlall.  */
-                                                                      return 2828;
+                                                                      return 2830;
                                                                     }
                                                                   else
                                                                     {
@@ -3225,7 +3225,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx000xxxxx100xx
                                                                          umlall.  */
-                                                                      return 2829;
+                                                                      return 2831;
                                                                     }
                                                                 }
                                                             }
@@ -3346,7 +3346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010110xxxx0xx010xxxxx10xxx
                                                                          umlal.  */
-                                                                      return 2818;
+                                                                      return 2820;
                                                                     }
                                                                   else
                                                                     {
@@ -3354,7 +3354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010111xxxx0xx010xxxxx10xxx
                                                                          umlal.  */
-                                                                      return 2819;
+                                                                      return 2821;
                                                                     }
                                                                 }
                                                               else
@@ -3365,7 +3365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx00xx010xxxxx10xxx
                                                                          umlal.  */
-                                                                      return 2820;
+                                                                      return 2822;
                                                                     }
                                                                   else
                                                                     {
@@ -3373,7 +3373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx10xx010xxxxx10xxx
                                                                          umlal.  */
-                                                                      return 2821;
+                                                                      return 2823;
                                                                     }
                                                                 }
                                                             }
@@ -3431,7 +3431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000001xx1xxxxx0xx001xxxxx10xxx
                                                              umlall.  */
-                                                          return 2825;
+                                                          return 2827;
                                                         }
                                                       else
                                                         {
@@ -3443,7 +3443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x10xxxx0xx101xxxxx10xxx
                                                                      udot.  */
-                                                                  return 2802;
+                                                                  return 2804;
                                                                 }
                                                               else
                                                                 {
@@ -3451,7 +3451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x11xxxx0xx101xxxxx10xxx
                                                                      udot.  */
-                                                                  return 2803;
+                                                                  return 2805;
                                                                 }
                                                             }
                                                           else
@@ -3462,7 +3462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000011x1xxxx00xx101xxxxx10xxx
                                                                      udot.  */
-                                                                  return 2804;
+                                                                  return 2806;
                                                                 }
                                                               else
                                                                 {
@@ -3470,7 +3470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000011x1xxxx10xx101xxxxx10xxx
                                                                      udot.  */
-                                                                  return 2805;
+                                                                  return 2807;
                                                                 }
                                                             }
                                                         }
@@ -3493,7 +3493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001x11xxxxx0xx011xxxxx10xxx
                                                                  umlal.  */
-                                                              return 2817;
+                                                              return 2819;
                                                             }
                                                         }
                                                       else
@@ -3720,7 +3720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx101xxxxx01xxx
                                                                          usdot.  */
-                                                                      return 2860;
+                                                                      return 2862;
                                                                     }
                                                                   else
                                                                     {
@@ -3728,7 +3728,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010011xxxx0xx101xxxxx01xxx
                                                                          usdot.  */
-                                                                      return 2861;
+                                                                      return 2863;
                                                                     }
                                                                 }
                                                               else
@@ -3739,7 +3739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx00xx101xxxxx01xxx
                                                                          usdot.  */
-                                                                      return 2862;
+                                                                      return 2864;
                                                                     }
                                                                   else
                                                                     {
@@ -3747,7 +3747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx10xx101xxxxx01xxx
                                                                          usdot.  */
-                                                                      return 2863;
+                                                                      return 2865;
                                                                     }
                                                                 }
                                                             }
@@ -3851,7 +3851,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000010x10xxxx0xxx00xxxxx11xxx
                                                                  umlsll.  */
-                                                              return 2842;
+                                                              return 2844;
                                                             }
                                                           else
                                                             {
@@ -3859,7 +3859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000010x11xxxx0xxx00xxxxx11xxx
                                                                  umlsll.  */
-                                                              return 2843;
+                                                              return 2845;
                                                             }
                                                         }
                                                       else
@@ -3870,7 +3870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011x1xxxx00xxx00xxxxx11xxx
                                                                  umlsll.  */
-                                                              return 2844;
+                                                              return 2846;
                                                             }
                                                           else
                                                             {
@@ -3878,7 +3878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011x1xxxx10xxx00xxxxx11xxx
                                                                  umlsll.  */
-                                                              return 2845;
+                                                              return 2847;
                                                             }
                                                         }
                                                     }
@@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010110xxxx0xx010xxxxx11xxx
                                                                          umlsl.  */
-                                                                      return 2834;
+                                                                      return 2836;
                                                                     }
                                                                   else
                                                                     {
@@ -3945,7 +3945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010111xxxx0xx010xxxxx11xxx
                                                                          umlsl.  */
-                                                                      return 2835;
+                                                                      return 2837;
                                                                     }
                                                                 }
                                                               else
@@ -3956,7 +3956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx00xx010xxxxx11xxx
                                                                          umlsl.  */
-                                                                      return 2836;
+                                                                      return 2838;
                                                                     }
                                                                   else
                                                                     {
@@ -3964,7 +3964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx10xx010xxxxx11xxx
                                                                          umlsl.  */
-                                                                      return 2837;
+                                                                      return 2839;
                                                                     }
                                                                 }
                                                             }
@@ -4022,7 +4022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000001xx1xxxxx0xx001xxxxx11xxx
                                                              umlsll.  */
-                                                          return 2841;
+                                                          return 2843;
                                                         }
                                                       else
                                                         {
@@ -4055,7 +4055,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010110xxxx0xx101xxxxx11xxx
                                                                          udot.  */
-                                                                      return 2796;
+                                                                      return 2798;
                                                                     }
                                                                   else
                                                                     {
@@ -4063,7 +4063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010111xxxx0xx101xxxxx11xxx
                                                                          udot.  */
-                                                                      return 2797;
+                                                                      return 2799;
                                                                     }
                                                                 }
                                                               else
@@ -4074,7 +4074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx00xx101xxxxx11xxx
                                                                          udot.  */
-                                                                      return 2798;
+                                                                      return 2800;
                                                                     }
                                                                   else
                                                                     {
@@ -4082,7 +4082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001111xxxx10xx101xxxxx11xxx
                                                                          udot.  */
-                                                                      return 2799;
+                                                                      return 2801;
                                                                     }
                                                                 }
                                                             }
@@ -4106,7 +4106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001x11xxxxx0xx011xxxxx11xxx
                                                                  umlsl.  */
-                                                              return 2833;
+                                                              return 2835;
                                                             }
                                                         }
                                                       else
@@ -4205,7 +4205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx110110xxxx1xxxxx
                                                                  uqrshr.  */
-                                                              return 2852;
+                                                              return 2854;
                                                             }
                                                         }
                                                     }
@@ -4230,7 +4230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx110001xxxxxxxxx1
                                                                  uclamp.  */
-                                                              return 2790;
+                                                              return 2792;
                                                             }
                                                         }
                                                       else
@@ -4260,7 +4260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx110101xxxx1xxxxx
                                                                  uqrshr.  */
-                                                              return 2851;
+                                                              return 2853;
                                                             }
                                                         }
                                                     }
@@ -4282,7 +4282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx110011xxxxxxxxx1
                                                                  uclamp.  */
-                                                              return 2791;
+                                                              return 2793;
                                                             }
                                                         }
                                                       else
@@ -4312,7 +4312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx1xxxxx110111xxxx1xxxxx
                                                                  uqrshrn.  */
-                                                              return 2853;
+                                                              return 2855;
                                                             }
                                                         }
                                                     }
@@ -4321,17 +4321,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
-                                          if (((word >> 5) & 0x1) == 0)
+                                          if (((word >> 10) & 0x1) == 0)
                                             {
-                                              if (((word >> 10) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 11) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 12) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 14) & 0x1) == 0)
+                                                          if (((word >> 0) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 0) & 0x1) == 0)
+                                                              if (((word >> 5) & 0x1) == 0)
                                                                 {
                                                                   if (((word >> 8) & 0x1) == 0)
                                                                     {
@@ -4362,6 +4362,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     }
                                                                 }
                                                               else
+                                                                {
+                                                                  if (((word >> 8) & 0x1) == 0)
+                                                                    {
+                                                                      if (((word >> 9) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx1xxxxx10100000xx1xxxx0
+                                                                             smin.  */
+                                                                          return 2649;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx1xxxxx10100010xx1xxxx0
+                                                                             srshl.  */
+                                                                          return 2703;
+                                                                        }
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx101000x1xx1xxxx0
+                                                                         fmaxnm.  */
+                                                                      return 2484;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 5) & 0x1) == 0)
                                                                 {
                                                                   if (((word >> 8) & 0x1) == 0)
                                                                     {
@@ -4369,7 +4402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx101000x0xx0xxxx1
                                                                          umax.  */
-                                                                      return 2806;
+                                                                      return 2808;
                                                                     }
                                                                   else
                                                                     {
@@ -4380,10 +4413,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                       return 2488;
                                                                     }
                                                                 }
+                                                              else
+                                                                {
+                                                                  if (((word >> 8) & 0x1) == 0)
+                                                                    {
+                                                                      if (((word >> 9) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx1xxxxx10100000xx1xxxx1
+                                                                             umin.  */
+                                                                          return 2812;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx1xxxxx10100010xx1xxxx1
+                                                                             urshl.  */
+                                                                          return 2856;
+                                                                        }
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx101000x1xx1xxxx1
+                                                                         fminnm.  */
+                                                                      return 2492;
+                                                                    }
+                                                                }
                                                             }
-                                                          else
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 16) & 0x1) == 0)
+                                                              if (((word >> 5) & 0x1) == 0)
                                                                 {
                                                                   if (((word >> 17) & 0x1) == 0)
                                                                     {
@@ -4494,23 +4560,111 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   if (((word >> 17) & 0x1) == 0)
                                                                     {
-                                                                      if (((word >> 19) & 0x1) == 0)
+                                                                      if (((word >> 22) & 0x1) == 0)
                                                                         {
-                                                                          if (((word >> 20) & 0x1) == 0)
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001x01xxx00111000xxxx1xxxxx
+                                                                             fcvtn.  */
+                                                                          return 2469;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001x11xxx00111000xxxx1xxxxx
+                                                                             bfcvtn.  */
+                                                                          return 2437;
+                                                                        }
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      if (((word >> 20) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx10xx10111000xxxx1xxxxx
+                                                                             ucvtf.  */
+                                                                          return 2794;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx11xx10111000xxxx1xxxxx
+                                                                             ucvtf.  */
+                                                                          return 2795;
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 17) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 0) & 0x1) == 0)
+                                                                    {
+                                                                      if (((word >> 18) & 0x1) == 0)
+                                                                        {
+                                                                          if (((word >> 5) & 0x1) == 0)
                                                                             {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001xx100x01111000xxxx0xxxxx
-                                                                                 fcvtzs.  */
-                                                                              return 2470;
+                                                                              if (((word >> 19) & 0x1) == 0)
+                                                                                {
+                                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001xx100001111000xxxx0xxxx0
+                                                                                         fcvtzs.  */
+                                                                                      return 2470;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001xx110001111000xxxx0xxxx0
+                                                                                         fcvtzs.  */
+                                                                                      return 2471;
+                                                                                    }
+                                                                                }
+                                                                              else
+                                                                                {
+                                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001xx101001111000xxxx0xxxx0
+                                                                                         frintp.  */
+                                                                                      return 2530;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001xx111001111000xxxx0xxxx0
+                                                                                         frintp.  */
+                                                                                      return 2531;
+                                                                                    }
+                                                                                }
                                                                             }
                                                                           else
                                                                             {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001xx110x01111000xxxx0xxxxx
-                                                                                 fcvtzs.  */
-                                                                              return 2471;
+                                                                              if (((word >> 20) & 0x1) == 0)
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx10x001111000xxxx1xxxx0
+                                                                                     fcvtzu.  */
+                                                                                  return 2472;
+                                                                                }
+                                                                              else
+                                                                                {
+                                                                                  /* 33222222222211111111110000000000
+                                                                                     10987654321098765432109876543210
+                                                                                     x1000001xx11x001111000xxxx1xxxx0
+                                                                                     fcvtzu.  */
+                                                                                  return 2473;
+                                                                                }
                                                                             }
                                                                         }
                                                                       else
@@ -4519,21 +4673,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                             {
                                                                               /* 33222222222211111111110000000000
                                                                                  10987654321098765432109876543210
-                                                                                 x1000001xx101x01111000xxxx0xxxxx
-                                                                                 frintp.  */
-                                                                              return 2530;
+                                                                                 x1000001xx10x101111000xxxxxxxxx0
+                                                                                 sunpk.  */
+                                                                              return 2787;
                                                                             }
                                                                           else
                                                                             {
                                                                               /* 33222222222211111111110000000000
                                                                                  10987654321098765432109876543210
-                                                                                 x1000001xx111x01111000xxxx0xxxxx
-                                                                                 frintp.  */
-                                                                              return 2531;
+                                                                                 x1000001xx11x101111000xxxxxxxxx0
+                                                                                 sunpk.  */
+                                                                              return 2788;
                                                                             }
                                                                         }
                                                                     }
                                                                   else
+                                                                    {
+                                                                      if (((word >> 20) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx10xx01111000xxxxxxxxx1
+                                                                             uunpk.  */
+                                                                          return 2875;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx11xx01111000xxxxxxxxx1
+                                                                             uunpk.  */
+                                                                          return 2876;
+                                                                        }
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 5) & 0x1) == 0)
                                                                     {
                                                                       if (((word >> 20) & 0x1) == 0)
                                                                         {
@@ -4596,12 +4772,45 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                             }
                                                                         }
                                                                     }
+                                                                  else
+                                                                    {
+                                                                      if (((word >> 20) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             x1000001xx10xx11111000xxxx1xxxxx
+                                                                             uqcvt.  */
+                                                                          return 2850;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          if (((word >> 6) & 0x1) == 0)
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx11xx11111000xxx01xxxxx
+                                                                                 uqcvt.  */
+                                                                              return 2851;
+                                                                            }
+                                                                          else
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx11xx11111000xxx11xxxxx
+                                                                                 uqcvtn.  */
+                                                                              return 2852;
+                                                                            }
+                                                                        }
+                                                                    }
                                                                 }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 0) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 0) & 0x1) == 0)
+                                                          if (((word >> 5) & 0x1) == 0)
                                                             {
                                                               if (((word >> 8) & 0x1) == 0)
                                                                 {
@@ -4624,115 +4833,82 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               if (((word >> 8) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1100x0xx0xxxx1
-                                                                     umax.  */
-                                                                  return 2808;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1100x1xx0xxxx1
-                                                                     fmin.  */
-                                                                  return 2490;
-                                                                }
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 0) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 8) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 12) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1010x0xx0xxxx0
-                                                                     smax.  */
-                                                                  return 2646;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1110x0xx0xxxx0
-                                                                     smax.  */
-                                                                  return 2648;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 9) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 12) & 0x1) == 0)
+                                                                  if (((word >> 9) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx1x101001xx0xxxx0
-                                                                         fmax.  */
-                                                                      return 2481;
+                                                                         x1000001xx1xxxxx1x110000xx1xxxx0
+                                                                         smin.  */
+                                                                      return 2651;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx1x111001xx0xxxx0
-                                                                         fmax.  */
-                                                                      return 2483;
+                                                                         x1000001xx1xxxxx1x110010xx1xxxx0
+                                                                         srshl.  */
+                                                                      return 2705;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1x1011xx0xxxx0
-                                                                     add.  */
-                                                                  return 2435;
+                                                                     x1000001xx1xxxxx1x1100x1xx1xxxx0
+                                                                     fmaxnm.  */
+                                                                  return 2486;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 8) & 0x1) == 0)
+                                                          if (((word >> 5) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 12) & 0x1) == 0)
+                                                              if (((word >> 8) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1010x0xx0xxxx1
+                                                                     x1000001xx1xxxxx1x1100x0xx0xxxx1
                                                                      umax.  */
-                                                                  return 2807;
+                                                                  return 2810;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1110x0xx0xxxx1
-                                                                     umax.  */
-                                                                  return 2809;
+                                                                     x1000001xx1xxxxx1x1100x1xx0xxxx1
+                                                                     fmin.  */
+                                                                  return 2490;
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 12) & 0x1) == 0)
+                                                              if (((word >> 8) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1010x1xx0xxxx1
-                                                                     fmin.  */
-                                                                  return 2489;
+                                                                  if (((word >> 9) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x110000xx1xxxx1
+                                                                         umin.  */
+                                                                      return 2814;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x110010xx1xxxx1
+                                                                         urshl.  */
+                                                                      return 2858;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x1110x1xx0xxxx1
-                                                                     fmin.  */
-                                                                  return 2491;
+                                                                     x1000001xx1xxxxx1x1100x1xx1xxxx1
+                                                                     fminnm.  */
+                                                                  return 2494;
                                                                 }
                                                             }
                                                         }
@@ -4740,299 +4916,145 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 11) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 12) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x1000001xx1xxxxx1x1001xxxx0xxxxx
-                                                             sqdmulh.  */
-                                                          return 2693;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x1000001xx1xxxxx1x1101xxxx0xxxxx
-                                                             sqdmulh.  */
-                                                          return 2695;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 12) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x1000001xx1xxxxx1x1011xxxx0xxxxx
-                                                             sqdmulh.  */
-                                                          return 2694;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x1000001xx1xxxxx1x1111xxxx0xxxxx
-                                                             sqdmulh.  */
-                                                          return 2696;
-                                                        }
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 11) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 0) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 14) & 0x1) == 0)
+                                                      if (((word >> 5) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 0) & 0x1) == 0)
+                                                          if (((word >> 8) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 8) & 0x1) == 0)
+                                                              if (((word >> 12) & 0x1) == 0)
                                                                 {
-                                                                  if (((word >> 9) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx10100x00xx1xxxx0
-                                                                         smin.  */
-                                                                      return 2649;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx10100x10xx1xxxx0
-                                                                         srshl.  */
-                                                                      return 2703;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     x1000001xx1xxxxx1x1010x0xx0xxxx0
+                                                                     smax.  */
+                                                                  return 2646;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx10100xx1xx1xxxx0
-                                                                     fmaxnm.  */
-                                                                  return 2484;
+                                                                     x1000001xx1xxxxx1x1110x0xx0xxxx0
+                                                                     smax.  */
+                                                                  return 2648;
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 8) & 0x1) == 0)
+                                                              if (((word >> 9) & 0x1) == 0)
                                                                 {
-                                                                  if (((word >> 9) & 0x1) == 0)
+                                                                  if (((word >> 12) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx10100x00xx1xxxx1
-                                                                         umin.  */
-                                                                      return 2810;
+                                                                         x1000001xx1xxxxx1x101001xx0xxxx0
+                                                                         fmax.  */
+                                                                      return 2481;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx1xxxxx10100x10xx1xxxx1
-                                                                         urshl.  */
-                                                                      return 2854;
+                                                                         x1000001xx1xxxxx1x111001xx0xxxx0
+                                                                         fmax.  */
+                                                                      return 2483;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx10100xx1xx1xxxx1
-                                                                     fminnm.  */
-                                                                  return 2492;
+                                                                     x1000001xx1xxxxx1x1x1011xx0xxxx0
+                                                                     add.  */
+                                                                  return 2435;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 16) & 0x1) == 0)
+                                                          if (((word >> 8) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 17) & 0x1) == 0)
+                                                              if (((word >> 9) & 0x1) == 0)
                                                                 {
-                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                  if (((word >> 12) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001x01xxx0011100xxxxx1xxxxx
-                                                                         fcvtn.  */
-                                                                      return 2469;
+                                                                         x1000001xx1xxxxx1x101000xx1xxxx0
+                                                                         smin.  */
+                                                                      return 2650;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001x11xxx0011100xxxxx1xxxxx
-                                                                         bfcvtn.  */
-                                                                      return 2437;
+                                                                         x1000001xx1xxxxx1x111000xx1xxxx0
+                                                                         smin.  */
+                                                                      return 2652;
                                                                     }
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         x1000001xx10xx1011100xxxxx1xxxxx
-                                                                         ucvtf.  */
-                                                                      return 2792;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         x1000001xx11xx1011100xxxxx1xxxxx
-                                                                         ucvtf.  */
-                                                                      return 2793;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 17) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  if (((word >> 12) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx10xx0111100xxxxx1xxxxx
-                                                                         fcvtzu.  */
-                                                                      return 2472;
+                                                                         x1000001xx1xxxxx1x101010xx1xxxx0
+                                                                         srshl.  */
+                                                                      return 2704;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         x1000001xx11xx0111100xxxxx1xxxxx
-                                                                         fcvtzu.  */
-                                                                      return 2473;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         x1000001xx10xx1111100xxxxx1xxxxx
-                                                                         uqcvt.  */
-                                                                      return 2848;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      if (((word >> 6) & 0x1) == 0)
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             x1000001xx11xx1111100xxxx01xxxxx
-                                                                             uqcvt.  */
-                                                                          return 2849;
-                                                                        }
-                                                                      else
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             x1000001xx11xx1111100xxxx11xxxxx
-                                                                             uqcvtn.  */
-                                                                          return 2850;
-                                                                        }
+                                                                         x1000001xx1xxxxx1x111010xx1xxxx0
+                                                                         srshl.  */
+                                                                      return 2706;
                                                                     }
                                                                 }
                                                             }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 0) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 8) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 9) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x110x00xx1xxxx0
-                                                                     smin.  */
-                                                                  return 2651;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x110x10xx1xxxx0
-                                                                     srshl.  */
-                                                                  return 2705;
-                                                                }
-                                                            }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x110xx1xx1xxxx0
-                                                                 fmaxnm.  */
-                                                              return 2486;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 8) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 9) & 0x1) == 0)
+                                                              if (((word >> 12) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x110x00xx1xxxx1
-                                                                     umin.  */
-                                                                  return 2812;
+                                                                     x1000001xx1xxxxx1x1010x1xx1xxxx0
+                                                                     fmaxnm.  */
+                                                                  return 2485;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x110x10xx1xxxx1
-                                                                     urshl.  */
-                                                                  return 2856;
+                                                                     x1000001xx1xxxxx1x1110x1xx1xxxx0
+                                                                     fmaxnm.  */
+                                                                  return 2487;
                                                                 }
                                                             }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x110xx1xx1xxxx1
-                                                                 fminnm.  */
-                                                              return 2494;
-                                                            }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 0) & 0x1) == 0)
+                                                  else
                                                     {
-                                                      if (((word >> 8) & 0x1) == 0)
+                                                      if (((word >> 5) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 9) & 0x1) == 0)
+                                                          if (((word >> 8) & 0x1) == 0)
                                                             {
                                                               if (((word >> 12) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x101x00xx1xxxx0
-                                                                     smin.  */
-                                                                  return 2650;
+                                                                     x1000001xx1xxxxx1x1010x0xx0xxxx1
+                                                                     umax.  */
+                                                                  return 2809;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x111x00xx1xxxx0
-                                                                     smin.  */
-                                                                  return 2652;
+                                                                     x1000001xx1xxxxx1x1110x0xx0xxxx1
+                                                                     umax.  */
+                                                                  return 2811;
                                                                 }
                                                             }
                                                           else
@@ -5041,61 +5063,61 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x101x10xx1xxxx0
-                                                                     srshl.  */
-                                                                  return 2704;
+                                                                     x1000001xx1xxxxx1x1010x1xx0xxxx1
+                                                                     fmin.  */
+                                                                  return 2489;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x111x10xx1xxxx0
-                                                                     srshl.  */
-                                                                  return 2706;
+                                                                     x1000001xx1xxxxx1x1110x1xx0xxxx1
+                                                                     fmin.  */
+                                                                  return 2491;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 12) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x101xx1xx1xxxx0
-                                                                 fmaxnm.  */
-                                                              return 2485;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x111xx1xx1xxxx0
-                                                                 fmaxnm.  */
-                                                              return 2487;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 8) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 9) & 0x1) == 0)
+                                                          if (((word >> 8) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 12) & 0x1) == 0)
+                                                              if (((word >> 9) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x101x00xx1xxxx1
-                                                                     umin.  */
-                                                                  return 2811;
+                                                                  if (((word >> 12) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x101000xx1xxxx1
+                                                                         umin.  */
+                                                                      return 2813;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x111000xx1xxxx1
+                                                                         umin.  */
+                                                                      return 2815;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x111x00xx1xxxx1
-                                                                     umin.  */
-                                                                  return 2813;
+                                                                  if (((word >> 12) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x101010xx1xxxx1
+                                                                         urshl.  */
+                                                                      return 2857;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         x1000001xx1xxxxx1x111010xx1xxxx1
+                                                                         urshl.  */
+                                                                      return 2859;
+                                                                    }
                                                                 }
                                                             }
                                                           else
@@ -5104,39 +5126,61 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x101x10xx1xxxx1
-                                                                     urshl.  */
-                                                                  return 2855;
+                                                                     x1000001xx1xxxxx1x1010x1xx1xxxx1
+                                                                     fminnm.  */
+                                                                  return 2493;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x1000001xx1xxxxx1x111x10xx1xxxx1
-                                                                     urshl.  */
-                                                                  return 2857;
+                                                                     x1000001xx1xxxxx1x1110x1xx1xxxx1
+                                                                     fminnm.  */
+                                                                  return 2495;
                                                                 }
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          if (((word >> 12) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x101xx1xx1xxxx1
-                                                                 fminnm.  */
-                                                              return 2493;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x1000001xx1xxxxx1x111xx1xx1xxxx1
-                                                                 fminnm.  */
-                                                              return 2495;
-                                                            }
-                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1000001xx1xxxxx1x1001xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 2693;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1000001xx1xxxxx1x1101xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 2695;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1000001xx1xxxxx1x1011xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 2694;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1000001xx1xxxxx1x1111xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 2696;
                                                     }
                                                 }
                                             }
@@ -7934,7 +7978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurb.  */
-                                                      return 2946;
+                                                      return 2950;
                                                     }
                                                   else
                                                     {
@@ -7942,7 +7986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2954;
+                                                      return 2958;
                                                     }
                                                 }
                                               else
@@ -7953,7 +7997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurh.  */
-                                                      return 2950;
+                                                      return 2954;
                                                     }
                                                   else
                                                     {
@@ -7961,7 +8005,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2957;
+                                                      return 2961;
                                                     }
                                                 }
                                             }
@@ -7999,7 +8043,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0000x1xxxxxxxxxx
                                                              cpyfp.  */
-                                                          return 3006;
+                                                          return 3010;
                                                         }
                                                       else
                                                         {
@@ -8007,7 +8051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1000x1xxxxxxxxxx
                                                              cpyfprn.  */
-                                                          return 3012;
+                                                          return 3016;
                                                         }
                                                     }
                                                   else
@@ -8018,7 +8062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0100x1xxxxxxxxxx
                                                              cpyfpwn.  */
-                                                          return 3009;
+                                                          return 3013;
                                                         }
                                                       else
                                                         {
@@ -8026,7 +8070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1100x1xxxxxxxxxx
                                                              cpyfpn.  */
-                                                          return 3015;
+                                                          return 3019;
                                                         }
                                                     }
                                                 }
@@ -8040,7 +8084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0010x1xxxxxxxxxx
                                                              cpyfprt.  */
-                                                          return 3030;
+                                                          return 3034;
                                                         }
                                                       else
                                                         {
@@ -8048,7 +8092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1010x1xxxxxxxxxx
                                                              cpyfprtrn.  */
-                                                          return 3036;
+                                                          return 3040;
                                                         }
                                                     }
                                                   else
@@ -8059,7 +8103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0110x1xxxxxxxxxx
                                                              cpyfprtwn.  */
-                                                          return 3033;
+                                                          return 3037;
                                                         }
                                                       else
                                                         {
@@ -8067,7 +8111,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1110x1xxxxxxxxxx
                                                              cpyfprtn.  */
-                                                          return 3039;
+                                                          return 3043;
                                                         }
                                                     }
                                                 }
@@ -8084,7 +8128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0001x1xxxxxxxxxx
                                                              cpyfpwt.  */
-                                                          return 3018;
+                                                          return 3022;
                                                         }
                                                       else
                                                         {
@@ -8092,7 +8136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1001x1xxxxxxxxxx
                                                              cpyfpwtrn.  */
-                                                          return 3024;
+                                                          return 3028;
                                                         }
                                                     }
                                                   else
@@ -8103,7 +8147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0101x1xxxxxxxxxx
                                                              cpyfpwtwn.  */
-                                                          return 3021;
+                                                          return 3025;
                                                         }
                                                       else
                                                         {
@@ -8111,7 +8155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1101x1xxxxxxxxxx
                                                              cpyfpwtn.  */
-                                                          return 3027;
+                                                          return 3031;
                                                         }
                                                     }
                                                 }
@@ -8125,7 +8169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0011x1xxxxxxxxxx
                                                              cpyfpt.  */
-                                                          return 3042;
+                                                          return 3046;
                                                         }
                                                       else
                                                         {
@@ -8133,7 +8177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1011x1xxxxxxxxxx
                                                              cpyfptrn.  */
-                                                          return 3048;
+                                                          return 3052;
                                                         }
                                                     }
                                                   else
@@ -8144,7 +8188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx0111x1xxxxxxxxxx
                                                              cpyfptwn.  */
-                                                          return 3045;
+                                                          return 3049;
                                                         }
                                                       else
                                                         {
@@ -8152,7 +8196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001000xxxxx1111x1xxxxxxxxxx
                                                              cpyfptn.  */
-                                                          return 3051;
+                                                          return 3055;
                                                         }
                                                     }
                                                 }
@@ -8217,7 +8261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurb.  */
-                                                      return 2947;
+                                                      return 2951;
                                                     }
                                                   else
                                                     {
@@ -8225,7 +8269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2955;
+                                                      return 2959;
                                                     }
                                                 }
                                               else
@@ -8236,7 +8280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurh.  */
-                                                      return 2951;
+                                                      return 2955;
                                                     }
                                                   else
                                                     {
@@ -8244,7 +8288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2958;
+                                                      return 2962;
                                                     }
                                                 }
                                             }
@@ -8282,7 +8326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0000x1xxxxxxxxxx
                                                              cpyfm.  */
-                                                          return 3007;
+                                                          return 3011;
                                                         }
                                                       else
                                                         {
@@ -8290,7 +8334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1000x1xxxxxxxxxx
                                                              cpyfmrn.  */
-                                                          return 3013;
+                                                          return 3017;
                                                         }
                                                     }
                                                   else
@@ -8301,7 +8345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0100x1xxxxxxxxxx
                                                              cpyfmwn.  */
-                                                          return 3010;
+                                                          return 3014;
                                                         }
                                                       else
                                                         {
@@ -8309,7 +8353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1100x1xxxxxxxxxx
                                                              cpyfmn.  */
-                                                          return 3016;
+                                                          return 3020;
                                                         }
                                                     }
                                                 }
@@ -8323,7 +8367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0010x1xxxxxxxxxx
                                                              cpyfmrt.  */
-                                                          return 3031;
+                                                          return 3035;
                                                         }
                                                       else
                                                         {
@@ -8331,7 +8375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1010x1xxxxxxxxxx
                                                              cpyfmrtrn.  */
-                                                          return 3037;
+                                                          return 3041;
                                                         }
                                                     }
                                                   else
@@ -8342,7 +8386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0110x1xxxxxxxxxx
                                                              cpyfmrtwn.  */
-                                                          return 3034;
+                                                          return 3038;
                                                         }
                                                       else
                                                         {
@@ -8350,7 +8394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1110x1xxxxxxxxxx
                                                              cpyfmrtn.  */
-                                                          return 3040;
+                                                          return 3044;
                                                         }
                                                     }
                                                 }
@@ -8367,7 +8411,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0001x1xxxxxxxxxx
                                                              cpyfmwt.  */
-                                                          return 3019;
+                                                          return 3023;
                                                         }
                                                       else
                                                         {
@@ -8375,7 +8419,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1001x1xxxxxxxxxx
                                                              cpyfmwtrn.  */
-                                                          return 3025;
+                                                          return 3029;
                                                         }
                                                     }
                                                   else
@@ -8386,7 +8430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0101x1xxxxxxxxxx
                                                              cpyfmwtwn.  */
-                                                          return 3022;
+                                                          return 3026;
                                                         }
                                                       else
                                                         {
@@ -8394,7 +8438,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1101x1xxxxxxxxxx
                                                              cpyfmwtn.  */
-                                                          return 3028;
+                                                          return 3032;
                                                         }
                                                     }
                                                 }
@@ -8408,7 +8452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0011x1xxxxxxxxxx
                                                              cpyfmt.  */
-                                                          return 3043;
+                                                          return 3047;
                                                         }
                                                       else
                                                         {
@@ -8416,7 +8460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1011x1xxxxxxxxxx
                                                              cpyfmtrn.  */
-                                                          return 3049;
+                                                          return 3053;
                                                         }
                                                     }
                                                   else
@@ -8427,7 +8471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0111x1xxxxxxxxxx
                                                              cpyfmtwn.  */
-                                                          return 3046;
+                                                          return 3050;
                                                         }
                                                       else
                                                         {
@@ -8435,7 +8479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1111x1xxxxxxxxxx
                                                              cpyfmtn.  */
-                                                          return 3052;
+                                                          return 3056;
                                                         }
                                                     }
                                                 }
@@ -8503,7 +8547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursb.  */
-                                                      return 2949;
+                                                      return 2953;
                                                     }
                                                   else
                                                     {
@@ -8511,7 +8555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursw.  */
-                                                      return 2956;
+                                                      return 2960;
                                                     }
                                                 }
                                               else
@@ -8520,7 +8564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001100xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2953;
+                                                  return 2957;
                                                 }
                                             }
                                           else
@@ -8531,7 +8575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursb.  */
-                                                  return 2948;
+                                                  return 2952;
                                                 }
                                               else
                                                 {
@@ -8539,7 +8583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2952;
+                                                  return 2956;
                                                 }
                                             }
                                         }
@@ -8601,7 +8645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0000x1xxxxxxxxxx
                                                              cpyfe.  */
-                                                          return 3008;
+                                                          return 3012;
                                                         }
                                                       else
                                                         {
@@ -8609,7 +8653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0000x1xxxxxxxxxx
                                                              setp.  */
-                                                          return 3102;
+                                                          return 3106;
                                                         }
                                                     }
                                                   else
@@ -8620,7 +8664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1000x1xxxxxxxxxx
                                                              cpyfern.  */
-                                                          return 3014;
+                                                          return 3018;
                                                         }
                                                       else
                                                         {
@@ -8628,7 +8672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1000x1xxxxxxxxxx
                                                              sete.  */
-                                                          return 3104;
+                                                          return 3108;
                                                         }
                                                     }
                                                 }
@@ -8642,7 +8686,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0100x1xxxxxxxxxx
                                                              cpyfewn.  */
-                                                          return 3011;
+                                                          return 3015;
                                                         }
                                                       else
                                                         {
@@ -8650,7 +8694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0100x1xxxxxxxxxx
                                                              setm.  */
-                                                          return 3103;
+                                                          return 3107;
                                                         }
                                                     }
                                                   else
@@ -8659,7 +8703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1100x1xxxxxxxxxx
                                                          cpyfen.  */
-                                                      return 3017;
+                                                      return 3021;
                                                     }
                                                 }
                                             }
@@ -8675,7 +8719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0010x1xxxxxxxxxx
                                                              cpyfert.  */
-                                                          return 3032;
+                                                          return 3036;
                                                         }
                                                       else
                                                         {
@@ -8683,7 +8727,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0010x1xxxxxxxxxx
                                                              setpn.  */
-                                                          return 3108;
+                                                          return 3112;
                                                         }
                                                     }
                                                   else
@@ -8694,7 +8738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1010x1xxxxxxxxxx
                                                              cpyfertrn.  */
-                                                          return 3038;
+                                                          return 3042;
                                                         }
                                                       else
                                                         {
@@ -8702,7 +8746,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1010x1xxxxxxxxxx
                                                              seten.  */
-                                                          return 3110;
+                                                          return 3114;
                                                         }
                                                     }
                                                 }
@@ -8716,7 +8760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0110x1xxxxxxxxxx
                                                              cpyfertwn.  */
-                                                          return 3035;
+                                                          return 3039;
                                                         }
                                                       else
                                                         {
@@ -8724,7 +8768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0110x1xxxxxxxxxx
                                                              setmn.  */
-                                                          return 3109;
+                                                          return 3113;
                                                         }
                                                     }
                                                   else
@@ -8733,7 +8777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1110x1xxxxxxxxxx
                                                          cpyfertn.  */
-                                                      return 3041;
+                                                      return 3045;
                                                     }
                                                 }
                                             }
@@ -8752,7 +8796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0001x1xxxxxxxxxx
                                                              cpyfewt.  */
-                                                          return 3020;
+                                                          return 3024;
                                                         }
                                                       else
                                                         {
@@ -8760,7 +8804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0001x1xxxxxxxxxx
                                                              setpt.  */
-                                                          return 3105;
+                                                          return 3109;
                                                         }
                                                     }
                                                   else
@@ -8771,7 +8815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1001x1xxxxxxxxxx
                                                              cpyfewtrn.  */
-                                                          return 3026;
+                                                          return 3030;
                                                         }
                                                       else
                                                         {
@@ -8779,7 +8823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1001x1xxxxxxxxxx
                                                              setet.  */
-                                                          return 3107;
+                                                          return 3111;
                                                         }
                                                     }
                                                 }
@@ -8793,7 +8837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0101x1xxxxxxxxxx
                                                              cpyfewtwn.  */
-                                                          return 3023;
+                                                          return 3027;
                                                         }
                                                       else
                                                         {
@@ -8801,7 +8845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0101x1xxxxxxxxxx
                                                              setmt.  */
-                                                          return 3106;
+                                                          return 3110;
                                                         }
                                                     }
                                                   else
@@ -8810,7 +8854,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1101x1xxxxxxxxxx
                                                          cpyfewtn.  */
-                                                      return 3029;
+                                                      return 3033;
                                                     }
                                                 }
                                             }
@@ -8826,7 +8870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0011x1xxxxxxxxxx
                                                              cpyfet.  */
-                                                          return 3044;
+                                                          return 3048;
                                                         }
                                                       else
                                                         {
@@ -8834,7 +8878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0011x1xxxxxxxxxx
                                                              setptn.  */
-                                                          return 3111;
+                                                          return 3115;
                                                         }
                                                     }
                                                   else
@@ -8845,7 +8889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1011x1xxxxxxxxxx
                                                              cpyfetrn.  */
-                                                          return 3050;
+                                                          return 3054;
                                                         }
                                                       else
                                                         {
@@ -8853,7 +8897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1011x1xxxxxxxxxx
                                                              setetn.  */
-                                                          return 3113;
+                                                          return 3117;
                                                         }
                                                     }
                                                 }
@@ -8867,7 +8911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0111x1xxxxxxxxxx
                                                              cpyfetwn.  */
-                                                          return 3047;
+                                                          return 3051;
                                                         }
                                                       else
                                                         {
@@ -8875,7 +8919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0111x1xxxxxxxxxx
                                                              setmtn.  */
-                                                          return 3112;
+                                                          return 3116;
                                                         }
                                                     }
                                                   else
@@ -8884,7 +8928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1111x1xxxxxxxxxx
                                                          cpyfetn.  */
-                                                      return 3053;
+                                                      return 3057;
                                                     }
                                                 }
                                             }
@@ -9257,7 +9301,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1x11010110xxxx0x01000xxxxxxxxxx
                                                                  abs.  */
-                                                              return 3131;
+                                                              return 3135;
                                                             }
                                                           else
                                                             {
@@ -9275,7 +9319,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11010110xxxxxx11000xxxxxxxxxx
                                                          smax.  */
-                                                      return 3134;
+                                                      return 3138;
                                                     }
                                                 }
                                             }
@@ -9355,7 +9399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx0xx10xxxxxxxxxx
                                              setf8.  */
-                                          return 2944;
+                                          return 2948;
                                         }
                                       else
                                         {
@@ -9363,7 +9407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx1xx10xxxxxxxxxx
                                              setf16.  */
-                                          return 2945;
+                                          return 2949;
                                         }
                                     }
                                   else
@@ -9470,7 +9514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11010110xxxxxx11010xxxxxxxxxx
                                                          smin.  */
-                                                      return 3136;
+                                                      return 3140;
                                                     }
                                                 }
                                             }
@@ -9486,7 +9530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11010110xxxx0x00110xxxxxxxxxx
                                                              ctz.  */
-                                                          return 3133;
+                                                          return 3137;
                                                         }
                                                       else
                                                         {
@@ -9531,7 +9575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010000xxxxxxxxx01xxxxxxxxxx
                                              rmif.  */
-                                          return 2943;
+                                          return 2947;
                                         }
                                       else
                                         {
@@ -9625,7 +9669,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11010x10xxxxxx11001xxxxxxxxxx
                                                      umax.  */
-                                                  return 3135;
+                                                  return 3139;
                                                 }
                                             }
                                         }
@@ -9755,7 +9799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxx11010xx0xxxxxx11011xxxxxxxxxx
                                                  umin.  */
-                                              return 3137;
+                                              return 3141;
                                             }
                                         }
                                     }
@@ -9771,7 +9815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11010xx0xxxx0x00111xxxxxxxxxx
                                                      cnt.  */
-                                                  return 3132;
+                                                  return 3136;
                                                 }
                                               else
                                                 {
@@ -10613,7 +10657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x01x1xxxxx000110xxxxxxxxxx
                                                                  usdot.  */
-                                                              return 2963;
+                                                              return 2967;
                                                             }
                                                         }
                                                     }
@@ -10687,7 +10731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x01x1xxxxx000111xxxxxxxxxx
                                                                  sudot.  */
-                                                              return 2964;
+                                                              return 2968;
                                                             }
                                                         }
                                                     }
@@ -13361,7 +13405,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx011110xxxxxxxxxx
                                                              usdot.  */
-                                                          return 2962;
+                                                          return 2966;
                                                         }
                                                     }
                                                 }
@@ -15065,7 +15109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0100xxx10101xxxxxxxxxxxxx
                                                                  bfcvtnt.  */
-                                                              return 2991;
+                                                              return 2995;
                                                             }
                                                         }
                                                       else
@@ -15308,7 +15352,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101001x00x1xxxxxx00xxxxxxxxxxxxx
                                                  ld1rob.  */
-                                              return 2967;
+                                              return 2971;
                                             }
                                           else
                                             {
@@ -15316,7 +15360,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101001x01x1xxxxxx00xxxxxxxxxxxxx
                                                  ld1roh.  */
-                                              return 2968;
+                                              return 2972;
                                             }
                                         }
                                       else
@@ -15548,7 +15592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0011xxxxx010xxxxxxxxxxxxx
                                                          bfdot.  */
-                                                      return 2988;
+                                                      return 2992;
                                                     }
                                                   else
                                                     {
@@ -15569,7 +15613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0111xxxxx010xx0xxxxxxxxxx
                                                              bfmlalb.  */
-                                                          return 2995;
+                                                          return 2999;
                                                         }
                                                       else
                                                         {
@@ -15577,7 +15621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0111xxxxx010xx1xxxxxxxxxx
                                                              bfmlalt.  */
-                                                          return 2994;
+                                                          return 2998;
                                                         }
                                                     }
                                                   else
@@ -15632,7 +15676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x11001x0011xxxxx1x0xxxxxxxxxxxxx
                                                  bfdot.  */
-                                              return 2987;
+                                              return 2991;
                                             }
                                           else
                                             {
@@ -15644,7 +15688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx1x0xx0xxxxxxxxxx
                                                          bfmlalb.  */
-                                                      return 2993;
+                                                      return 2997;
                                                     }
                                                   else
                                                     {
@@ -15652,7 +15696,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx1x0xx1xxxxxxxxxx
                                                          bfmlalt.  */
-                                                      return 2992;
+                                                      return 2996;
                                                     }
                                                 }
                                               else
@@ -15703,7 +15747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x00x1xxxxx001xxxxxxxxxxxxx
                                                      ld1rob.  */
-                                                  return 2971;
+                                                  return 2975;
                                                 }
                                               else
                                                 {
@@ -15711,7 +15755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x01x1xxxxx001xxxxxxxxxxxxx
                                                      ld1roh.  */
-                                                  return 2972;
+                                                  return 2976;
                                                 }
                                             }
                                           else
@@ -16070,7 +16114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0101xxxxx111xxxxxxxxxxxxx
                                                          fmmla.  */
-                                                      return 2965;
+                                                      return 2969;
                                                     }
                                                   else
                                                     {
@@ -16103,7 +16147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0011xxxxx111xxxxxxxxxxxxx
                                                          bfmmla.  */
-                                                      return 2989;
+                                                      return 2993;
                                                     }
                                                   else
                                                     {
@@ -16133,7 +16177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx111xxxxxxxxxxxxx
                                                          fmmla.  */
-                                                      return 2966;
+                                                      return 2970;
                                                     }
                                                   else
                                                     {
@@ -16262,7 +16306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1101xxxxx000x00xxxxxxxxxx
                                                                  zip1.  */
-                                                              return 2975;
+                                                              return 2979;
                                                             }
                                                           else
                                                             {
@@ -16272,7 +16316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x1101xxxxx000010xxxxxxxxxx
                                                                      uzp1.  */
-                                                                  return 2977;
+                                                                  return 2981;
                                                                 }
                                                               else
                                                                 {
@@ -16280,7 +16324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x1101xxxxx000110xxxxxxxxxx
                                                                      trn1.  */
-                                                                  return 2979;
+                                                                  return 2983;
                                                                 }
                                                             }
                                                         }
@@ -16292,7 +16336,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1101xxxxx000x01xxxxxxxxxx
                                                                  zip2.  */
-                                                              return 2976;
+                                                              return 2980;
                                                             }
                                                           else
                                                             {
@@ -16302,7 +16346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x1101xxxxx000011xxxxxxxxxx
                                                                      uzp2.  */
-                                                                  return 2978;
+                                                                  return 2982;
                                                                 }
                                                               else
                                                                 {
@@ -16310,7 +16354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x1101xxxxx000111xxxxxxxxxx
                                                                      trn2.  */
-                                                                  return 2980;
+                                                                  return 2984;
                                                                 }
                                                             }
                                                         }
@@ -17369,7 +17413,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x1000xxxxx100110xxxxxxxxxx
                                                                      smmla.  */
-                                                                  return 2959;
+                                                                  return 2963;
                                                                 }
                                                               else
                                                                 {
@@ -17377,7 +17421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x1100xxxxx100110xxxxxxxxxx
                                                                      usmmla.  */
-                                                                  return 2961;
+                                                                  return 2965;
                                                                 }
                                                             }
                                                           else
@@ -17386,7 +17430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x1x10xxxxx100110xxxxxxxxxx
                                                                  ummla.  */
-                                                              return 2960;
+                                                              return 2964;
                                                             }
                                                         }
                                                     }
@@ -18882,7 +18926,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x1xxxxx000xxxxxxxxxxxxx
                                                      ld1row.  */
-                                                  return 2969;
+                                                  return 2973;
                                                 }
                                               else
                                                 {
@@ -18890,7 +18934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x1xxxxx000xxxxxxxxxxxxx
                                                      ld1rod.  */
-                                                  return 2970;
+                                                  return 2974;
                                                 }
                                             }
                                         }
@@ -19264,7 +19308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x1xxxxx001xxxxxxxxxxxxx
                                                      ld1row.  */
-                                                  return 2973;
+                                                  return 2977;
                                                 }
                                               else
                                                 {
@@ -19272,7 +19316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x1xxxxx001xxxxxxxxxxxxx
                                                      ld1rod.  */
-                                                  return 2974;
+                                                  return 2978;
                                                 }
                                             }
                                         }
@@ -19633,7 +19677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x000xxxxx10xxx
                                                                  whilege.  */
-                                                              return 2875;
+                                                              return 2879;
                                                             }
                                                           else
                                                             {
@@ -19641,7 +19685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x000xxxxx11xxx
                                                                  whilegt.  */
-                                                              return 2876;
+                                                              return 2880;
                                                             }
                                                         }
                                                       else
@@ -19685,7 +19729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x010xxxxx10xxx
                                                                  whilehs.  */
-                                                              return 2878;
+                                                              return 2882;
                                                             }
                                                           else
                                                             {
@@ -19693,7 +19737,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x010xxxxx11xxx
                                                                  whilehi.  */
-                                                              return 2877;
+                                                              return 2881;
                                                             }
                                                         }
                                                       else
@@ -19740,7 +19784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x001xxxxx10xxx
                                                                  whilelt.  */
-                                                              return 2882;
+                                                              return 2886;
                                                             }
                                                           else
                                                             {
@@ -19748,7 +19792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x001xxxxx11xxx
                                                                  whilele.  */
-                                                              return 2879;
+                                                              return 2883;
                                                             }
                                                         }
                                                       else
@@ -19792,7 +19836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x011xxxxx10xxx
                                                                  whilelo.  */
-                                                              return 2880;
+                                                              return 2884;
                                                             }
                                                           else
                                                             {
@@ -19800,7 +19844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx1xxxxx01x011xxxxx11xxx
                                                                  whilels.  */
-                                                              return 2881;
+                                                              return 2885;
                                                             }
                                                         }
                                                       else
@@ -20926,7 +20970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x110001x10101xxxxxxxxxxxxx
                                                                          bfcvt.  */
-                                                                      return 2990;
+                                                                      return 2994;
                                                                     }
                                                                 }
                                                               else
@@ -22287,7 +22331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x1010100xxxxxxxxxxxxxxxxxxx1xxxx
                                      bc.c.  */
-                                  return 3126;
+                                  return 3130;
                                 }
                               else
                                 {
@@ -22867,7 +22911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0000xxxxxxxxxxxx
                                                      cpyp.  */
-                                                  return 3054;
+                                                  return 3058;
                                                 }
                                               else
                                                 {
@@ -22875,7 +22919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0000xxxxxxxxxxxx
                                                      cpye.  */
-                                                  return 3056;
+                                                  return 3060;
                                                 }
                                             }
                                           else
@@ -22886,7 +22930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1000xxxxxxxxxxxx
                                                      cpyprn.  */
-                                                  return 3060;
+                                                  return 3064;
                                                 }
                                               else
                                                 {
@@ -22894,7 +22938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1000xxxxxxxxxxxx
                                                      cpyern.  */
-                                                  return 3062;
+                                                  return 3066;
                                                 }
                                             }
                                         }
@@ -22908,7 +22952,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0100xxxxxxxxxxxx
                                                      cpypwn.  */
-                                                  return 3057;
+                                                  return 3061;
                                                 }
                                               else
                                                 {
@@ -22916,7 +22960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0100xxxxxxxxxxxx
                                                      cpyewn.  */
-                                                  return 3059;
+                                                  return 3063;
                                                 }
                                             }
                                           else
@@ -22927,7 +22971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1100xxxxxxxxxxxx
                                                      cpypn.  */
-                                                  return 3063;
+                                                  return 3067;
                                                 }
                                               else
                                                 {
@@ -22935,7 +22979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1100xxxxxxxxxxxx
                                                      cpyen.  */
-                                                  return 3065;
+                                                  return 3069;
                                                 }
                                             }
                                         }
@@ -22952,7 +22996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0010xxxxxxxxxxxx
                                                      cpyprt.  */
-                                                  return 3078;
+                                                  return 3082;
                                                 }
                                               else
                                                 {
@@ -22960,7 +23004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0010xxxxxxxxxxxx
                                                      cpyert.  */
-                                                  return 3080;
+                                                  return 3084;
                                                 }
                                             }
                                           else
@@ -22971,7 +23015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1010xxxxxxxxxxxx
                                                      cpyprtrn.  */
-                                                  return 3084;
+                                                  return 3088;
                                                 }
                                               else
                                                 {
@@ -22979,7 +23023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1010xxxxxxxxxxxx
                                                      cpyertrn.  */
-                                                  return 3086;
+                                                  return 3090;
                                                 }
                                             }
                                         }
@@ -22993,7 +23037,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0110xxxxxxxxxxxx
                                                      cpyprtwn.  */
-                                                  return 3081;
+                                                  return 3085;
                                                 }
                                               else
                                                 {
@@ -23001,7 +23045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0110xxxxxxxxxxxx
                                                      cpyertwn.  */
-                                                  return 3083;
+                                                  return 3087;
                                                 }
                                             }
                                           else
@@ -23012,7 +23056,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1110xxxxxxxxxxxx
                                                      cpyprtn.  */
-                                                  return 3087;
+                                                  return 3091;
                                                 }
                                               else
                                                 {
@@ -23020,7 +23064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1110xxxxxxxxxxxx
                                                      cpyertn.  */
-                                                  return 3089;
+                                                  return 3093;
                                                 }
                                             }
                                         }
@@ -23040,7 +23084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0001xxxxxxxxxxxx
                                                      cpypwt.  */
-                                                  return 3066;
+                                                  return 3070;
                                                 }
                                               else
                                                 {
@@ -23048,7 +23092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0001xxxxxxxxxxxx
                                                      cpyewt.  */
-                                                  return 3068;
+                                                  return 3072;
                                                 }
                                             }
                                           else
@@ -23059,7 +23103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1001xxxxxxxxxxxx
                                                      cpypwtrn.  */
-                                                  return 3072;
+                                                  return 3076;
                                                 }
                                               else
                                                 {
@@ -23067,7 +23111,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1001xxxxxxxxxxxx
                                                      cpyewtrn.  */
-                                                  return 3074;
+                                                  return 3078;
                                                 }
                                             }
                                         }
@@ -23081,7 +23125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0101xxxxxxxxxxxx
                                                      cpypwtwn.  */
-                                                  return 3069;
+                                                  return 3073;
                                                 }
                                               else
                                                 {
@@ -23089,7 +23133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0101xxxxxxxxxxxx
                                                      cpyewtwn.  */
-                                                  return 3071;
+                                                  return 3075;
                                                 }
                                             }
                                           else
@@ -23100,7 +23144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1101xxxxxxxxxxxx
                                                      cpypwtn.  */
-                                                  return 3075;
+                                                  return 3079;
                                                 }
                                               else
                                                 {
@@ -23108,7 +23152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1101xxxxxxxxxxxx
                                                      cpyewtn.  */
-                                                  return 3077;
+                                                  return 3081;
                                                 }
                                             }
                                         }
@@ -23125,7 +23169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0011xxxxxxxxxxxx
                                                      cpypt.  */
-                                                  return 3090;
+                                                  return 3094;
                                                 }
                                               else
                                                 {
@@ -23133,7 +23177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0011xxxxxxxxxxxx
                                                      cpyet.  */
-                                                  return 3092;
+                                                  return 3096;
                                                 }
                                             }
                                           else
@@ -23144,7 +23188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1011xxxxxxxxxxxx
                                                      cpyptrn.  */
-                                                  return 3096;
+                                                  return 3100;
                                                 }
                                               else
                                                 {
@@ -23152,7 +23196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1011xxxxxxxxxxxx
                                                      cpyetrn.  */
-                                                  return 3098;
+                                                  return 3102;
                                                 }
                                             }
                                         }
@@ -23166,7 +23210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx0111xxxxxxxxxxxx
                                                      cpyptwn.  */
-                                                  return 3093;
+                                                  return 3097;
                                                 }
                                               else
                                                 {
@@ -23174,7 +23218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx0111xxxxxxxxxxxx
                                                      cpyetwn.  */
-                                                  return 3095;
+                                                  return 3099;
                                                 }
                                             }
                                           else
@@ -23185,7 +23229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110100xxxxxx1111xxxxxxxxxxxx
                                                      cpyptn.  */
-                                                  return 3099;
+                                                  return 3103;
                                                 }
                                               else
                                                 {
@@ -23193,7 +23237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110110xxxxxx1111xxxxxxxxxxxx
                                                      cpyetn.  */
-                                                  return 3101;
+                                                  return 3105;
                                                 }
                                             }
                                         }
@@ -23227,7 +23271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0000xxxxxxxxxxxx
                                                      cpym.  */
-                                                  return 3055;
+                                                  return 3059;
                                                 }
                                               else
                                                 {
@@ -23235,7 +23279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0000xxxxxxxxxxxx
                                                      setgp.  */
-                                                  return 3114;
+                                                  return 3118;
                                                 }
                                             }
                                           else
@@ -23246,7 +23290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx1000xxxxxxxxxxxx
                                                      cpymrn.  */
-                                                  return 3061;
+                                                  return 3065;
                                                 }
                                               else
                                                 {
@@ -23254,7 +23298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx1000xxxxxxxxxxxx
                                                      setge.  */
-                                                  return 3116;
+                                                  return 3120;
                                                 }
                                             }
                                         }
@@ -23268,7 +23312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0100xxxxxxxxxxxx
                                                      cpymwn.  */
-                                                  return 3058;
+                                                  return 3062;
                                                 }
                                               else
                                                 {
@@ -23276,7 +23320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0100xxxxxxxxxxxx
                                                      setgm.  */
-                                                  return 3115;
+                                                  return 3119;
                                                 }
                                             }
                                           else
@@ -23285,7 +23329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx011101x1xxxxxx1100xxxxxxxxxxxx
                                                  cpymn.  */
-                                              return 3064;
+                                              return 3068;
                                             }
                                         }
                                     }
@@ -23301,7 +23345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0010xxxxxxxxxxxx
                                                      cpymrt.  */
-                                                  return 3079;
+                                                  return 3083;
                                                 }
                                               else
                                                 {
@@ -23309,7 +23353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0010xxxxxxxxxxxx
                                                      setgpn.  */
-                                                  return 3120;
+                                                  return 3124;
                                                 }
                                             }
                                           else
@@ -23320,7 +23364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx1010xxxxxxxxxxxx
                                                      cpymrtrn.  */
-                                                  return 3085;
+                                                  return 3089;
                                                 }
                                               else
                                                 {
@@ -23328,7 +23372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx1010xxxxxxxxxxxx
                                                      setgen.  */
-                                                  return 3122;
+                                                  return 3126;
                                                 }
                                             }
                                         }
@@ -23342,7 +23386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0110xxxxxxxxxxxx
                                                      cpymrtwn.  */
-                                                  return 3082;
+                                                  return 3086;
                                                 }
                                               else
                                                 {
@@ -23350,7 +23394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0110xxxxxxxxxxxx
                                                      setgmn.  */
-                                                  return 3121;
+                                                  return 3125;
                                                 }
                                             }
                                           else
@@ -23359,7 +23403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx011101x1xxxxxx1110xxxxxxxxxxxx
                                                  cpymrtn.  */
-                                              return 3088;
+                                              return 3092;
                                             }
                                         }
                                     }
@@ -23378,7 +23422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0001xxxxxxxxxxxx
                                                      cpymwt.  */
-                                                  return 3067;
+                                                  return 3071;
                                                 }
                                               else
                                                 {
@@ -23386,7 +23430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0001xxxxxxxxxxxx
                                                      setgpt.  */
-                                                  return 3117;
+                                                  return 3121;
                                                 }
                                             }
                                           else
@@ -23397,7 +23441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx1001xxxxxxxxxxxx
                                                      cpymwtrn.  */
-                                                  return 3073;
+                                                  return 3077;
                                                 }
                                               else
                                                 {
@@ -23405,7 +23449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx1001xxxxxxxxxxxx
                                                      setget.  */
-                                                  return 3119;
+                                                  return 3123;
                                                 }
                                             }
                                         }
@@ -23419,7 +23463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0101xxxxxxxxxxxx
                                                      cpymwtwn.  */
-                                                  return 3070;
+                                                  return 3074;
                                                 }
                                               else
                                                 {
@@ -23427,7 +23471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0101xxxxxxxxxxxx
                                                      setgmt.  */
-                                                  return 3118;
+                                                  return 3122;
                                                 }
                                             }
                                           else
@@ -23436,7 +23480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx011101x1xxxxxx1101xxxxxxxxxxxx
                                                  cpymwtn.  */
-                                              return 3076;
+                                              return 3080;
                                             }
                                         }
                                     }
@@ -23452,7 +23496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0011xxxxxxxxxxxx
                                                      cpymt.  */
-                                                  return 3091;
+                                                  return 3095;
                                                 }
                                               else
                                                 {
@@ -23460,7 +23504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0011xxxxxxxxxxxx
                                                      setgptn.  */
-                                                  return 3123;
+                                                  return 3127;
                                                 }
                                             }
                                           else
@@ -23471,7 +23515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx1011xxxxxxxxxxxx
                                                      cpymtrn.  */
-                                                  return 3097;
+                                                  return 3101;
                                                 }
                                               else
                                                 {
@@ -23479,7 +23523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx1011xxxxxxxxxxxx
                                                      setgetn.  */
-                                                  return 3125;
+                                                  return 3129;
                                                 }
                                             }
                                         }
@@ -23493,7 +23537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110101xxxxxx0111xxxxxxxxxxxx
                                                      cpymtwn.  */
-                                                  return 3094;
+                                                  return 3098;
                                                 }
                                               else
                                                 {
@@ -23501,7 +23545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx01110111xxxxxx0111xxxxxxxxxxxx
                                                      setgmtn.  */
-                                                  return 3124;
+                                                  return 3128;
                                                 }
                                             }
                                           else
@@ -23510,7 +23554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx011101x1xxxxxx1111xxxxxxxxxxxx
                                                  cpymtn.  */
-                                              return 3100;
+                                              return 3104;
                                             }
                                         }
                                     }
@@ -23677,7 +23721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x1001xxxxxxxxxx
                                                          smmla.  */
-                                                      return 2981;
+                                                      return 2985;
                                                     }
                                                 }
                                             }
@@ -23710,7 +23754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x0101xxxxxxxxxx
                                                          sdot.  */
-                                                      return 2907;
+                                                      return 2911;
                                                     }
                                                 }
                                               else
@@ -23784,7 +23828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x1011xxxxxxxxxx
                                                          usmmla.  */
-                                                      return 2983;
+                                                      return 2987;
                                                     }
                                                 }
                                             }
@@ -23817,7 +23861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x0111xxxxxxxxxx
                                                          usdot.  */
-                                                      return 2984;
+                                                      return 2988;
                                                     }
                                                 }
                                               else
@@ -23864,7 +23908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110000xxxxxxxxxxxxxxxxxxxxx
                                              eor3.  */
-                                          return 2914;
+                                          return 2918;
                                         }
                                       else
                                         {
@@ -23872,7 +23916,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110100xxxxxxxxxxxxxxxxxxxxx
                                              xar.  */
-                                          return 2916;
+                                          return 2920;
                                         }
                                     }
                                   else
@@ -23883,7 +23927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110x10xxxxx0xxxxxxxxxxxxxxx
                                              sm3ss1.  */
-                                          return 2918;
+                                          return 2922;
                                         }
                                       else
                                         {
@@ -23897,7 +23941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx00xxxxxxxxxx
                                                          sm3tt1a.  */
-                                                      return 2919;
+                                                      return 2923;
                                                     }
                                                   else
                                                     {
@@ -23905,7 +23949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx00xxxxxxxxxx
                                                          sha512su0.  */
-                                                      return 2912;
+                                                      return 2916;
                                                     }
                                                 }
                                               else
@@ -23914,7 +23958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx10xxxxxxxxxx
                                                      sm3tt2a.  */
-                                                  return 2921;
+                                                  return 2925;
                                                 }
                                             }
                                           else
@@ -23927,7 +23971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx01xxxxxxxxxx
                                                          sm3tt1b.  */
-                                                      return 2920;
+                                                      return 2924;
                                                     }
                                                   else
                                                     {
@@ -23935,7 +23979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx01xxxxxxxxxx
                                                          sm4e.  */
-                                                      return 2925;
+                                                      return 2929;
                                                     }
                                                 }
                                               else
@@ -23944,7 +23988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx11xxxxxxxxxx
                                                      sm3tt2b.  */
-                                                  return 2922;
+                                                  return 2926;
                                                 }
                                             }
                                         }
@@ -24125,7 +24169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx101110xx0xxxxx100101xxxxxxxxxx
                                                          udot.  */
-                                                      return 2906;
+                                                      return 2910;
                                                     }
                                                 }
                                               else
@@ -24156,7 +24200,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx101110xx0xxxxx101x01xxxxxxxxxx
                                                      ummla.  */
-                                                  return 2982;
+                                                  return 2986;
                                                 }
                                               else
                                                 {
@@ -24175,7 +24219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx101110xx0xxxxx1x1011xxxxxxxxxx
                                                      bfmmla.  */
-                                                  return 2998;
+                                                  return 3002;
                                                 }
                                               else
                                                 {
@@ -24185,7 +24229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx1011100x0xxxxx1x1111xxxxxxxxxx
                                                          bfdot.  */
-                                                      return 2996;
+                                                      return 3000;
                                                     }
                                                   else
                                                     {
@@ -24195,7 +24239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01011101x0xxxxx1x1111xxxxxxxxxx
                                                              bfmlalb.  */
-                                                          return 3003;
+                                                          return 3007;
                                                         }
                                                       else
                                                         {
@@ -24203,7 +24247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x11011101x0xxxxx1x1111xxxxxxxxxx
                                                              bfmlalt.  */
-                                                          return 3002;
+                                                          return 3006;
                                                         }
                                                     }
                                                 }
@@ -24787,7 +24831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          000011101x1xxxx1011010xxxxxxxxxx
                                                                          bfcvtn.  */
-                                                                      return 2999;
+                                                                      return 3003;
                                                                     }
                                                                   else
                                                                     {
@@ -24795,7 +24839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          010011101x1xxxx1011010xxxxxxxxxx
                                                                          bfcvtn2.  */
-                                                                      return 3000;
+                                                                      return 3004;
                                                                     }
                                                                 }
                                                             }
@@ -25113,7 +25157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          1x001110xx1xxxxx0xxxxxxxxxxxxxxx
                                          bcax.  */
-                                      return 2917;
+                                      return 2921;
                                     }
                                 }
                               else
@@ -25724,7 +25768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx100000xxxxxxxxxx
                                                                  sha512h.  */
-                                                              return 2910;
+                                                              return 2914;
                                                             }
                                                         }
                                                     }
@@ -25776,7 +25820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx110000xxxxxxxxxx
                                                                  sm3partw1.  */
-                                                              return 2923;
+                                                              return 2927;
                                                             }
                                                         }
                                                     }
@@ -26019,7 +26063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100010xxxxxxxxxx
                                                              sha512su1.  */
-                                                          return 2913;
+                                                          return 2917;
                                                         }
                                                     }
                                                   else
@@ -26095,7 +26139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110010xxxxxxxxxx
                                                                  sm4ekey.  */
-                                                              return 2926;
+                                                              return 2930;
                                                             }
                                                         }
                                                       else
@@ -26921,7 +26965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100001xxxxxxxxxx
                                                              sha512h2.  */
-                                                          return 2911;
+                                                          return 2915;
                                                         }
                                                     }
                                                   else
@@ -26953,7 +26997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110001xxxxxxxxxx
                                                                  sm3partw2.  */
-                                                              return 2924;
+                                                              return 2928;
                                                             }
                                                         }
                                                       else
@@ -27193,7 +27237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100011xxxxxxxxxx
                                                              rax1.  */
-                                                          return 2915;
+                                                          return 2919;
                                                         }
                                                     }
                                                   else
@@ -27225,7 +27269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2929;
+                                                              return 2933;
                                                             }
                                                           else
                                                             {
@@ -27233,7 +27277,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2933;
+                                                              return 2937;
                                                             }
                                                         }
                                                     }
@@ -27255,7 +27299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2930;
+                                                              return 2934;
                                                             }
                                                           else
                                                             {
@@ -27263,7 +27307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2934;
+                                                              return 2938;
                                                             }
                                                         }
                                                     }
@@ -27302,7 +27346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2927;
+                                                              return 2931;
                                                             }
                                                           else
                                                             {
@@ -27310,7 +27354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2931;
+                                                              return 2935;
                                                             }
                                                         }
                                                       else
@@ -27332,7 +27376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2928;
+                                                              return 2932;
                                                             }
                                                           else
                                                             {
@@ -27340,7 +27384,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2932;
+                                                              return 2936;
                                                             }
                                                         }
                                                       else
@@ -29148,7 +29192,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2935;
+                                                  return 2939;
                                                 }
                                               else
                                                 {
@@ -29156,7 +29200,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2939;
+                                                  return 2943;
                                                 }
                                             }
                                           else
@@ -29178,7 +29222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2936;
+                                                  return 2940;
                                                 }
                                               else
                                                 {
@@ -29186,7 +29230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2940;
+                                                  return 2944;
                                                 }
                                             }
                                           else
@@ -29692,7 +29736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2937;
+                                                  return 2941;
                                                 }
                                               else
                                                 {
@@ -29700,7 +29744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2941;
+                                                  return 2945;
                                                 }
                                             }
                                         }
@@ -29722,7 +29766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2938;
+                                                  return 2942;
                                                 }
                                               else
                                                 {
@@ -29730,7 +29774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2942;
+                                                  return 2946;
                                                 }
                                             }
                                         }
@@ -29786,7 +29830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx001111xxxxxxxx1110x0xxxxxxxxxx
                                                  sdot.  */
-                                              return 2909;
+                                              return 2913;
                                             }
                                           else
                                             {
@@ -29794,7 +29838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx101111xxxxxxxx1110x0xxxxxxxxxx
                                                  udot.  */
-                                              return 2908;
+                                              return 2912;
                                             }
                                         }
                                     }
@@ -29897,7 +29941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111100xxxxxx1111x0xxxxxxxxxx
                                                          sudot.  */
-                                                      return 2986;
+                                                      return 2990;
                                                     }
                                                   else
                                                     {
@@ -29905,7 +29949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111110xxxxxx1111x0xxxxxxxxxx
                                                          usdot.  */
-                                                      return 2985;
+                                                      return 2989;
                                                     }
                                                 }
                                               else
@@ -29916,7 +29960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111101xxxxxx1111x0xxxxxxxxxx
                                                          bfdot.  */
-                                                      return 2997;
+                                                      return 3001;
                                                     }
                                                   else
                                                     {
@@ -29926,7 +29970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x000111111xxxxxx1111x0xxxxxxxxxx
                                                              bfmlalb.  */
-                                                          return 3005;
+                                                          return 3009;
                                                         }
                                                       else
                                                         {
@@ -29934,7 +29978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x100111111xxxxxx1111x0xxxxxxxxxx
                                                              bfmlalt.  */
-                                                          return 3004;
+                                                          return 3008;
                                                         }
                                                     }
                                                 }
@@ -30462,11 +30506,11 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 2407: value = 2412; break;	/* st1q --> st1q.  */
     case 2412: return NULL;		/* st1q --> NULL.  */
     case 12: value = 19; break;	/* add --> addg.  */
-    case 19: value = 3127; break;	/* addg --> smax.  */
-    case 3127: value = 3128; break;	/* smax --> umax.  */
-    case 3128: value = 3129; break;	/* umax --> smin.  */
-    case 3129: value = 3130; break;	/* smin --> umin.  */
-    case 3130: return NULL;		/* umin --> NULL.  */
+    case 19: value = 3131; break;	/* addg --> smax.  */
+    case 3131: value = 3132; break;	/* smax --> umax.  */
+    case 3132: value = 3133; break;	/* umax --> smin.  */
+    case 3133: value = 3134; break;	/* smin --> umin.  */
+    case 3134: return NULL;		/* umin --> NULL.  */
     case 16: value = 20; break;	/* sub --> subg.  */
     case 20: return NULL;		/* subg --> NULL.  */
     case 971: value = 975; break;	/* stnp --> stp.  */
@@ -30624,8 +30668,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 824: return NULL;		/* fsqrt --> NULL.  */
     case 832: value = 833; break;	/* frintz --> frintz.  */
     case 833: return NULL;		/* frintz --> NULL.  */
-    case 825: value = 3001; break;	/* fcvt --> bfcvt.  */
-    case 3001: return NULL;		/* bfcvt --> NULL.  */
+    case 825: value = 3005; break;	/* fcvt --> bfcvt.  */
+    case 3005: return NULL;		/* bfcvt --> NULL.  */
     case 834: value = 835; break;	/* frinta --> frinta.  */
     case 835: return NULL;		/* frinta --> NULL.  */
     case 836: value = 837; break;	/* frintx --> frintx.  */
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index a6f5747c417..e44ad1622c8 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -5722,6 +5722,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("sumlall", 0xc1108030, 0xfff09078, sme_misc, 0, OP3 (SME_ZA_array_off1x4, SME_Znx4, SME_Zm_INDEX4_1), OP_SVE_SBB, F_OD (4), 0),
   SME2_INSN ("sumlall", 0xc1200014, 0xfff09c1e, sme_misc, 0, OP3 (SME_ZA_array_off1x4, SVE_ZnxN, SME_Zm), OP_SVE_SBB, F_OD (2), 0),
   SME2_INSN ("sumlall", 0xc1300014, 0xfff09c1e, sme_misc, 0, OP3 (SME_ZA_array_off1x4, SVE_ZnxN, SME_Zm), OP_SVE_SBB, F_OD (4), 0),
+  SME2_INSN ("sunpk", 0xc125e000, 0xff3ffc01, sme_size_22_hsd, 0, OP2 (SME_Zdnx2, SVE_Zn), OP_SVE_VV_HSD_BHS, 0, 0),
+  SME2_INSN ("sunpk", 0xc135e000, 0xff3ffc23, sme_size_22_hsd, 0, OP2 (SME_Zdnx4, SME_Znx2), OP_SVE_VV_HSD_BHS, 0, 0),
   SME2_INSN ("suvdot", 0xc1508038, 0xfff09078, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zm_INDEX2), OP_SVE_SBB, F_OD (4), 0),
   SME2_INSN ("svdot", 0xc1500020, 0xfff09038, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2), OP_SVE_SHH, F_OD (2), 0),
   SME2_INSN ("svdot", 0xc1508020, 0xfff09078, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zm_INDEX2), OP_SVE_SBB, F_OD (4), 0),
@@ -5808,6 +5810,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME2_INSN ("usmlall", 0xc1a00004, 0xffe19c3e, sme_misc, 0, OP3 (SME_ZA_array_off1x4, SME_Znx2, SME_Zmx2), OP_SVE_SBB, F_OD (2), 0),
   SME2_INSN ("usmlall", 0xc1a10004, 0xffe39c7e, sme_misc, 0, OP3 (SME_ZA_array_off1x4, SME_Znx4, SME_Zmx4), OP_SVE_SBB, F_OD (4), 0),
   SME2_INSN ("usvdot", 0xc1508028, 0xfff09078, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zm_INDEX2), OP_SVE_SBB, F_OD (4), 0),
+  SME2_INSN ("uunpk", 0xc125e001, 0xff3ffc01, sme_size_22_hsd, 0, OP2 (SME_Zdnx2, SVE_Zn), OP_SVE_VV_HSD_BHS, 0, 0),
+  SME2_INSN ("uunpk", 0xc135e001, 0xff3ffc23, sme_size_22_hsd, 0, OP2 (SME_Zdnx4, SME_Znx2), OP_SVE_VV_HSD_BHS, 0, 0),
   SME2_INSN ("uvdot", 0xc1500030, 0xfff09038, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2), OP_SVE_SHH, F_OD (2), 0),
   SME2_INSN ("uvdot", 0xc1508030, 0xfff09078, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zm_INDEX2), OP_SVE_SBB, F_OD (4), 0),
   SME2_INSN ("whilege", 0x25204010, 0xff20dc18, sme_size_22, 0, OP4 (SME_PNd3, Rn, Rm, SME_VLxN_13), OP_SVE_VXXU_BHSD, 0, 0),
-- 
2.25.1


  parent reply	other threads:[~2023-03-30 10:27 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-30 10:26 [PATCH 00/31] aarch64: Add SME2 support Richard Sandiford
2023-03-30 10:26 ` [PATCH 01/31] aarch64: Add +sme2 Richard Sandiford
2023-03-30 10:26 ` [PATCH 02/31] aarch64: Add a _10 suffix to FLD_imm3 Richard Sandiford
2023-03-30 10:26 ` [PATCH 03/31] aarch64: Add _off4 suffix to AARCH64_OPND_SME_ZA_array Richard Sandiford
2023-03-30 10:26 ` [PATCH 04/31] aarch64: Add support for vgx2 and vgx4 Richard Sandiford
2023-03-30 10:26 ` [PATCH 05/31] aarch64; Add support for vector offset ranges Richard Sandiford
2023-03-30 10:26 ` [PATCH 06/31] aarch64: Add support for predicate-as-counter registers Richard Sandiford
2023-03-30 10:26 ` [PATCH 07/31] aarch64: Add the SME2 MOVA instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 08/31] aarch64: Add the SME2 multivector LD1 and ST1 instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 09/31] aarch64: Add the SME2 predicate-related instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 10/31] aarch64: Add the SME2 ZT0 instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 11/31] aarch64: Add the SME2 ADD and SUB instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 12/31] aarch64: Add the SME2 maximum/minimum instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 13/31] aarch64: Add the SME2 FMLA and FMLS instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 14/31] aarch64: Add the SME2 MLAL and MLSL instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 15/31] aarch64: Add the SME2 MLALL and MLSLL instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 16/31] aarch64: Add the SME2 dot-product instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 17/31] aarch64: Add the SME2 vertical " Richard Sandiford
2023-03-30 10:26 ` [PATCH 18/31] aarch64: Add the SME2 MOPA and MOPS instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 19/31] aarch64: Add the SME2 CLAMP instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 20/31] aarch64: Add the SME2 FP<->int conversion instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 21/31] aarch64: Add the SME2 FP<->FP " Richard Sandiford
2023-03-30 10:26 ` [PATCH 22/31] aarch64: Add the SME2 saturating " Richard Sandiford
2023-03-30 10:26 ` [PATCH 23/31] aarch64: Add the SME2 shift instructions Richard Sandiford
2023-03-30 10:26 ` Richard Sandiford [this message]
2023-03-30 10:26 ` [PATCH 25/31] aarch64: Add the SME2 UZP and ZIP instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 26/31] aarch64: Add the SVE BFMLSL instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 27/31] aarch64: Add new SVE dot-product instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 28/31] aarch64: Add new SVE saturating conversion instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 29/31] aarch64: Add new SVE shift instructions Richard Sandiford
2023-03-30 10:26 ` [PATCH 30/31] aarch64: Add the SVE FCLAMP instruction Richard Sandiford
2023-03-30 10:26 ` [PATCH 31/31] aarch64: Add the RPRFM instruction Richard Sandiford
2023-04-02  9:35 ` [PATCH 00/31] aarch64: Add SME2 support Jan Beulich
2023-04-03  8:05   ` Richard Sandiford
2023-04-03  8:14     ` Jan Beulich
2023-04-03  8:27       ` Richard Sandiford
2023-04-03  8:37         ` Jan Beulich
2023-04-03  9:31           ` Richard Sandiford
2023-04-03  7:16 ` Jan Beulich
2023-04-03  8:13   ` Richard Sandiford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230330102646.3327818-25-richard.sandiford@arm.com \
    --to=richard.sandiford@arm.com \
    --cc=binutils@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).