]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Support for FEAT_SVE_F16F32MM, FEAT_F8F16M, FEAT_F8F32MM
authorEzra Sitorus <ezra.sitorus@arm.com>
Fri, 13 Jun 2025 16:57:03 +0000 (17:57 +0100)
committerAlice Carlotti <alice.carlotti@arm.com>
Thu, 19 Jun 2025 13:36:33 +0000 (14:36 +0100)
FEAT_SVE_F16F32MM introduces the SVE half-precision floating-point
matrix multiply-accumulate to single-precision instruction.

FEAT_F8F32MM introduces the Advanced SIMD 8-bit floating-point matrix
multiply-accumulate to single-precision instruction.

FEAT_F8F16MM introduces the Advanced SIMD 8-bit floating-point matrix
multiply-accumulate to half-precision instruction.

26 files changed:
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
gas/testsuite/gas/aarch64/f8f16mm-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm_sve2.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f16mm_sve2.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm_sve2.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/f8f32mm_sve2.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve-f16f32mm.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve-f16f32mm.s [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-asm-2.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-tbl.h

index 365772e672ef25732bc48b1867cc926fece05fdd..9265ff3c43c8d34e4f66447e0297ab1bee2cd41b 100644 (file)
@@ -10769,6 +10769,9 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
   {"sve-bfscale",      AARCH64_FEATURE (SVE_BFSCALE), AARCH64_NO_FEATURES},
   {"sme2p1",           AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SME2)},
   {"sve2p1",           AARCH64_FEATURE (SVE2p1), AARCH64_FEATURE (SVE2)},
+  {"sve-f16f32mm",     AARCH64_FEATURE (SVE_F16F32MM), AARCH64_FEATURE (SVE)},
+  {"f8f32mm",          AARCH64_FEATURE (F8F32MM), AARCH64_FEATURES (2, SIMD, FP8)},
+  {"f8f16mm",          AARCH64_FEATURE (F8F16MM), AARCH64_FEATURES (2, SIMD, FP8)},
   {"rcpc3",            AARCH64_FEATURE (RCPC3), AARCH64_FEATURE (RCPC2)},
   {"cpa",              AARCH64_FEATURE (CPA), AARCH64_NO_FEATURES},
   {"faminmax",         AARCH64_FEATURE (FAMINMAX), AARCH64_FEATURE (SIMD)},
index 9ef0dd6d281e904ce46f8970c9a4b778ff542a6b..c3c69f52025d5a004b3afcc19408f21ac1ffebaf 100644 (file)
@@ -187,6 +187,10 @@ automatically cause those extensions to be disabled.
  @tab Enable the F32 Matrix Multiply extension
 @item @code{f64mm} @tab @code{sve}
  @tab Enable the F64 Matrix Multiply extension.
+@item @code{f8f16mm} @tab @code{simd} @code{fp8}
+ @tab Enable 8-bit floating-point matrix multiply-accumulate to half-precision instructions.
+@item @code{f8f32mm} @tab @code{simd} @code{fp}
+ @tab Enable 8-bit floating-point matrix multiply-accumulate to single-precision instructions.
 @item @code{fcma} @tab @code{fp16}, @code{simd}
  @tab Enable the complex number SIMD extensions.
 @item @code{flagm} @tab
@@ -305,6 +309,8 @@ automatically cause those extensions to be disabled.
 @tab Enable the SVE B16B16 extension.  These instructions also require either @code{+sve2} or @code{+sme2}.
 @item @code{sve-bfscale} @tab
 @tab Enable the SVE BFSCALE extension. These instructions also require either @code{+sve2} or @code{+sme2}.
+@item @code{sve-f16f32mm} @tab @code{sve}
+@tab Enable the SVE_F16F32MM extension.
 @item @code{sve2} @tab @code{sve}
  @tab Enable SVE2.
 @item @code{sve2-aes} @tab @code{sve2}, @code{aes}
diff --git a/gas/testsuite/gas/aarch64/f8f16mm-bad.d b/gas/testsuite/gas/aarch64/f8f16mm-bad.d
new file mode 100644 (file)
index 0000000..9e034e1
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F16MM FMMLA instruction
+#as: -march=armv8-a
+#source: f8f16mm.s
+#error_output: f8f16mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f16mm-bad.l b/gas/testsuite/gas/aarch64/f8f16mm-bad.l
new file mode 100644 (file)
index 0000000..01acbac
--- /dev/null
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla v0.8h,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v31.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v31.16b,v31.16b'
diff --git a/gas/testsuite/gas/aarch64/f8f16mm.d b/gas/testsuite/gas/aarch64/f8f16mm.d
new file mode 100644 (file)
index 0000000..bcfc919
--- /dev/null
@@ -0,0 +1,18 @@
+#name: F8F16MM FMMLA instructions
+#as: -march=armv8-a+f8f16mm
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*:    6e00ec00        fmmla   v0.8h, v0.16b, v0.16b
+.*:    6e1fec00        fmmla   v0.8h, v0.16b, v31.16b
+.*:    6e00efe0        fmmla   v0.8h, v31.16b, v0.16b
+.*:    6e1fefe0        fmmla   v0.8h, v31.16b, v31.16b
+.*:    6e00ec1f        fmmla   v31.8h, v0.16b, v0.16b
+.*:    6e1fec1f        fmmla   v31.8h, v0.16b, v31.16b
+.*:    6e00efff        fmmla   v31.8h, v31.16b, v0.16b
+.*:    6e1fefff        fmmla   v31.8h, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm.s b/gas/testsuite/gas/aarch64/f8f16mm.s
new file mode 100644 (file)
index 0000000..41d6100
--- /dev/null
@@ -0,0 +1,9 @@
+a:
+       fmmla   v0.8h, v0.16b, v0.16b
+       fmmla   v0.8h, v0.16b, v31.16b
+       fmmla   v0.8h, v31.16b, v0.16b
+       fmmla   v0.8h, v31.16b, v31.16b
+       fmmla   v31.8h, v0.16b, v0.16b
+       fmmla   v31.8h, v0.16b, v31.16b
+       fmmla   v31.8h, v31.16b, v0.16b
+       fmmla   v31.8h, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d
new file mode 100644 (file)
index 0000000..4e1f53b
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F16MM SVE2 FMMLA instruction
+#as: -march=armv8-a
+#source: f8f16mm_sve2.s
+#error_output: f8f16mm_sve2-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l
new file mode 100644 (file)
index 0000000..3560c17
--- /dev/null
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.h,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.h,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z0.h,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.h,z31.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.h,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.h,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.h,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.h,z31.b,z31.b'
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2.d b/gas/testsuite/gas/aarch64/f8f16mm_sve2.d
new file mode 100644 (file)
index 0000000..3bb69ce
--- /dev/null
@@ -0,0 +1,18 @@
+#name: F8F16MM SVE2 FMMLA instructions
+#as: -march=armv8-a+sve2+f8f16mm
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*:    6460e000        fmmla   z0.h, z0.b, z0.b
+.*:    647fe000        fmmla   z0.h, z0.b, z31.b
+.*:    6460e3e0        fmmla   z0.h, z31.b, z0.b
+.*:    647fe3e0        fmmla   z0.h, z31.b, z31.b
+.*:    6460e01f        fmmla   z31.h, z0.b, z0.b
+.*:    647fe01f        fmmla   z31.h, z0.b, z31.b
+.*:    6460e3ff        fmmla   z31.h, z31.b, z0.b
+.*:    647fe3ff        fmmla   z31.h, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2.s b/gas/testsuite/gas/aarch64/f8f16mm_sve2.s
new file mode 100644 (file)
index 0000000..c1a32c9
--- /dev/null
@@ -0,0 +1,9 @@
+a:
+       fmmla   z0.h, z0.b, z0.b
+       fmmla   z0.h, z0.b, z31.b
+       fmmla   z0.h, z31.b, z0.b
+       fmmla   z0.h, z31.b, z31.b
+       fmmla   z31.h, z0.b, z0.b
+       fmmla   z31.h, z0.b, z31.b
+       fmmla   z31.h, z31.b, z0.b
+       fmmla   z31.h, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm-bad.d b/gas/testsuite/gas/aarch64/f8f32mm-bad.d
new file mode 100644 (file)
index 0000000..3d920f0
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F32MM FMMLA instruction
+#as: -march=armv8-a
+#source: f8f32mm.s
+#error_output: f8f32mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f32mm-bad.l b/gas/testsuite/gas/aarch64/f8f32mm-bad.l
new file mode 100644 (file)
index 0000000..910a2e1
--- /dev/null
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla v0.4s,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v31.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v31.16b,v31.16b'
diff --git a/gas/testsuite/gas/aarch64/f8f32mm.d b/gas/testsuite/gas/aarch64/f8f32mm.d
new file mode 100644 (file)
index 0000000..b1e6beb
--- /dev/null
@@ -0,0 +1,18 @@
+#name: F8F32MM FMMLA instructions
+#as: -march=armv8-a+f8f32mm
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*:    6e80ec00        fmmla   v0.4s, v0.16b, v0.16b
+.*:    6e9fec00        fmmla   v0.4s, v0.16b, v31.16b
+.*:    6e80efe0        fmmla   v0.4s, v31.16b, v0.16b
+.*:    6e9fefe0        fmmla   v0.4s, v31.16b, v31.16b
+.*:    6e80ec1f        fmmla   v31.4s, v0.16b, v0.16b
+.*:    6e9fec1f        fmmla   v31.4s, v0.16b, v31.16b
+.*:    6e80efff        fmmla   v31.4s, v31.16b, v0.16b
+.*:    6e9fefff        fmmla   v31.4s, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm.s b/gas/testsuite/gas/aarch64/f8f32mm.s
new file mode 100644 (file)
index 0000000..4c8421d
--- /dev/null
@@ -0,0 +1,9 @@
+a:
+       fmmla   v0.4s, v0.16b, v0.16b
+       fmmla   v0.4s, v0.16b, v31.16b
+       fmmla   v0.4s, v31.16b, v0.16b
+       fmmla   v0.4s, v31.16b, v31.16b
+       fmmla   v31.4s, v0.16b, v0.16b
+       fmmla   v31.4s, v0.16b, v31.16b
+       fmmla   v31.4s, v31.16b, v0.16b
+       fmmla   v31.4s, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d
new file mode 100644 (file)
index 0000000..200f49c
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F32MM SVE2 FMMLA instruction
+#as: -march=armv8-a
+#source: f8f32mm_sve2.s
+#error_output: f8f32mm_sve2-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l
new file mode 100644 (file)
index 0000000..46b62b2
--- /dev/null
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.s,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.s,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z0.s,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.s,z31.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.s,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.s,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.s,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.s,z31.b,z31.b'
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2.d b/gas/testsuite/gas/aarch64/f8f32mm_sve2.d
new file mode 100644 (file)
index 0000000..30670c9
--- /dev/null
@@ -0,0 +1,18 @@
+#name: F8F32MM SVE2 FMMLA instructions
+#as: -march=armv8-a+sve2+f8f32mm
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*:    6420e000        fmmla   z0.s, z0.b, z0.b
+.*:    643fe000        fmmla   z0.s, z0.b, z31.b
+.*:    6420e3e0        fmmla   z0.s, z31.b, z0.b
+.*:    643fe3e0        fmmla   z0.s, z31.b, z31.b
+.*:    6420e01f        fmmla   z31.s, z0.b, z0.b
+.*:    643fe01f        fmmla   z31.s, z0.b, z31.b
+.*:    6420e3ff        fmmla   z31.s, z31.b, z0.b
+.*:    643fe3ff        fmmla   z31.s, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2.s b/gas/testsuite/gas/aarch64/f8f32mm_sve2.s
new file mode 100644 (file)
index 0000000..a293e3f
--- /dev/null
@@ -0,0 +1,9 @@
+a:
+       fmmla   z0.s, z0.b, z0.b
+       fmmla   z0.s, z0.b, z31.b
+       fmmla   z0.s, z31.b, z0.b
+       fmmla   z0.s, z31.b, z31.b
+       fmmla   z31.s, z0.b, z0.b
+       fmmla   z31.s, z0.b, z31.b
+       fmmla   z31.s, z31.b, z0.b
+       fmmla   z31.s, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d
new file mode 100644 (file)
index 0000000..3adce33
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Illegal test of SVE_F16F32MM FMMLA instruction
+#as: -march=armv8-a
+#source: sve-f16f32mm.s
+#error_output: sve-f16f32mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l
new file mode 100644 (file)
index 0000000..bb95568
--- /dev/null
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.s,z0.h,z0.h'
+.*: Error: selected processor does not support `fmmla z0.s,z0.h,z31.h'
+.*: Error: selected processor does not support `fmmla z0.s,z31.h,z0.h'
+.*: Error: selected processor does not support `fmmla z0.s,z31.h,z31.h'
+.*: Error: selected processor does not support `fmmla z31.s,z0.h,z0.h'
+.*: Error: selected processor does not support `fmmla z31.s,z0.h,z31.h'
+.*: Error: selected processor does not support `fmmla z31.s,z31.h,z0.h'
+.*: Error: selected processor does not support `fmmla z31.s,z31.h,z31.h'
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm.d b/gas/testsuite/gas/aarch64/sve-f16f32mm.d
new file mode 100644 (file)
index 0000000..8b72bf2
--- /dev/null
@@ -0,0 +1,18 @@
+#name: SVE_F16F32MM FMMLA instructions
+#as: -march=armv8-a+sve-f16f32mm
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*:    6420e400        fmmla   z0.s, z0.h, z0.h
+.*:    643fe400        fmmla   z0.s, z0.h, z31.h
+.*:    6420e7e0        fmmla   z0.s, z31.h, z0.h
+.*:    643fe7e0        fmmla   z0.s, z31.h, z31.h
+.*:    6420e41f        fmmla   z31.s, z0.h, z0.h
+.*:    643fe41f        fmmla   z31.s, z0.h, z31.h
+.*:    6420e7ff        fmmla   z31.s, z31.h, z0.h
+.*:    643fe7ff        fmmla   z31.s, z31.h, z31.h
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm.s b/gas/testsuite/gas/aarch64/sve-f16f32mm.s
new file mode 100644 (file)
index 0000000..4979258
--- /dev/null
@@ -0,0 +1,9 @@
+a:
+       fmmla   z0.s, z0.h, z0.h
+       fmmla   z0.s, z0.h, z31.h
+       fmmla   z0.s, z31.h, z0.h
+       fmmla   z0.s, z31.h, z31.h
+       fmmla   z31.s, z0.h, z0.h
+       fmmla   z31.s, z0.h, z31.h
+       fmmla   z31.s, z31.h, z0.h
+       fmmla   z31.s, z31.h, z31.h
index a2cc97ab509908782dfe0fcb0f9dd77698b47a37..5f3895fd6c2dfe2608ab60068b14c1cdfb0dacd8 100644 (file)
@@ -234,6 +234,12 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_SME2p1,
   /* SVE2.1 instructions.  */
   AARCH64_FEATURE_SVE2p1,
+  /* SVE_F16F32MM instructions.  */
+  AARCH64_FEATURE_SVE_F16F32MM,
+  /* F8F32MM instructions.  */
+  AARCH64_FEATURE_F8F32MM,
+  /* F8F16MM instructions.  */
+  AARCH64_FEATURE_F8F16MM,
   /* RCPC3 instructions.  */
   AARCH64_FEATURE_RCPC3,
   /* Enhanced Software Step Extension. */
index b35a45790bbb779ce8d5d50e112403f512a19d5f..fdf537a788fc778c69de13c67c204526af3164f8 100644 (file)
@@ -490,7 +490,7 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
     case 1270: /* movz */
       value = 1270;    /* --> movz.  */
       break;
-    case 3251: /* clrbhb */
+    case 3256: /* clrbhb */
     case 1351: /* autibsp */
     case 1350: /* autibz */
     case 1349: /* autiasp */
@@ -530,7 +530,7 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
     case 1306: /* dsb */
       value = 1306;    /* --> dsb.  */
       break;
-    case 3252: /* trcit */
+    case 3257: /* trcit */
     case 1337: /* brb */
     case 1336: /* cosp */
     case 1335: /* cpp */
index 7138ab386503f3285c68a527b6adcce891dd2fcc..00e9b6a9f2fcea1b89c631371fb920c321f0f9d8 100644 (file)
@@ -216,7 +216,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000000x0010xxxxxx1xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3383;
+                                                              return 3388;
                                                             }
                                                           else
                                                             {
@@ -224,7 +224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000100x0010xxxxxx1xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3385;
+                                                              return 3390;
                                                             }
                                                         }
                                                       else
@@ -235,7 +235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000010x0010xxxxxx1xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3384;
+                                                              return 3389;
                                                             }
                                                           else
                                                             {
@@ -243,7 +243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000110x0010xxxxxx1xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3386;
+                                                              return 3391;
                                                             }
                                                         }
                                                     }
@@ -253,7 +253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1000000xx0x0011xxxxxx1xxxxxxxxx
                                                          movaz.  */
-                                                      return 3387;
+                                                      return 3392;
                                                     }
                                                 }
                                             }
@@ -271,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000x000101x00xxxxxxxxxxxxxx
                                                                  luti4.  */
-                                                              return 3523;
+                                                              return 3528;
                                                             }
                                                           else
                                                             {
@@ -310,7 +310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx01101x00xxxxxxxxxxxxxx
                                                              luti4.  */
-                                                          return 3524;
+                                                          return 3529;
                                                         }
                                                       else
                                                         {
@@ -318,7 +318,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx01101x10xxxxxxxxxxxxxx
                                                              luti4.  */
-                                                          return 3380;
+                                                          return 3385;
                                                         }
                                                     }
                                                   else
@@ -327,7 +327,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1000000xx01101xx1xxxxxxxxxxxxxx
                                                          luti4.  */
-                                                      return 3379;
+                                                      return 3384;
                                                     }
                                                 }
                                             }
@@ -369,7 +369,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000000x011xxxxx001xxxxxxxxx
                                                                      movaz.  */
-                                                                  return 3373;
+                                                                  return 3378;
                                                                 }
                                                               else
                                                                 {
@@ -377,7 +377,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000100x011xxxxx001xxxxxxxxx
                                                                      movaz.  */
-                                                                  return 3375;
+                                                                  return 3380;
                                                                 }
                                                             }
                                                           else
@@ -388,7 +388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000010x011xxxxx001xxxxxxxxx
                                                                      movaz.  */
-                                                                  return 3374;
+                                                                  return 3379;
                                                                 }
                                                               else
                                                                 {
@@ -396,7 +396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000110x011xxxxx001xxxxxxxxx
                                                                      movaz.  */
-                                                                  return 3376;
+                                                                  return 3381;
                                                                 }
                                                             }
                                                         }
@@ -420,7 +420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011000xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3388;
+                                                                          return 3393;
                                                                         }
                                                                       else
                                                                         {
@@ -428,7 +428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011100xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3389;
+                                                                          return 3394;
                                                                         }
                                                                     }
                                                                   else
@@ -439,7 +439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011010xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3391;
+                                                                          return 3396;
                                                                         }
                                                                       else
                                                                         {
@@ -447,7 +447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011110xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3394;
+                                                                          return 3399;
                                                                         }
                                                                     }
                                                                 }
@@ -461,7 +461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011001xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3390;
+                                                                          return 3395;
                                                                         }
                                                                       else
                                                                         {
@@ -469,7 +469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011101xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3393;
+                                                                          return 3398;
                                                                         }
                                                                     }
                                                                   else
@@ -480,7 +480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011011xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3392;
+                                                                          return 3397;
                                                                         }
                                                                       else
                                                                         {
@@ -488,7 +488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000000000011111xxx00xxxxxxxxxx
                                                                              zero.  */
-                                                                          return 3395;
+                                                                          return 3400;
                                                                         }
                                                                     }
                                                                 }
@@ -542,7 +542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000010011x1xxxx00xxxxxxxxxx
                                                                      movt.  */
-                                                                  return 3525;
+                                                                  return 3530;
                                                                 }
                                                             }
                                                           else
@@ -563,7 +563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx0111xxx0xx00xxxxxxxxxx
                                                              luti2.  */
-                                                          return 3378;
+                                                          return 3383;
                                                         }
                                                       else
                                                         {
@@ -571,7 +571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx0111xxx1xx00xxxxxxxxxx
                                                              luti2.  */
-                                                          return 3377;
+                                                          return 3382;
                                                         }
                                                     }
                                                 }
@@ -602,7 +602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1000000xx0xx11xxxxx101xxxxxxxxx
                                                          movaz.  */
-                                                      return 3381;
+                                                      return 3386;
                                                     }
                                                 }
                                             }
@@ -639,7 +639,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000000xx11xxxxx011xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3369;
+                                                              return 3374;
                                                             }
                                                           else
                                                             {
@@ -647,7 +647,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000100xx11xxxxx011xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3371;
+                                                              return 3376;
                                                             }
                                                         }
                                                       else
@@ -658,7 +658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000010xx11xxxxx011xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3370;
+                                                              return 3375;
                                                             }
                                                           else
                                                             {
@@ -666,7 +666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000110xx11xxxxx011xxxxxxxxx
                                                                  movaz.  */
-                                                              return 3372;
+                                                              return 3377;
                                                             }
                                                         }
                                                     }
@@ -698,7 +698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1000000xx0xx11xxxxx111xxxxxxxxx
                                                          movaz.  */
-                                                      return 3382;
+                                                      return 3387;
                                                     }
                                                 }
                                             }
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx00xxx
                                                  fmopa.  */
-                                              return 3591;
+                                              return 3596;
                                             }
                                           else
                                             {
@@ -1374,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx01xxx
                                                  fmopa.  */
-                                              return 3590;
+                                              return 3595;
                                             }
                                         }
                                       else
@@ -1722,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xx0000010001xxxx1xx0xxxxx1000xxx
                                                                      fmlall.  */
-                                                                  return 3584;
+                                                                  return 3589;
                                                                 }
                                                             }
                                                         }
@@ -1754,7 +1754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xx1xxxxxx00xxxx
                                                              fmla.  */
-                                                          return 3398;
+                                                          return 3403;
                                                         }
                                                       else
                                                         {
@@ -1764,7 +1764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000010001xxxx1xx1xxxxx000xxxx
                                                                  fmla.  */
-                                                              return 3399;
+                                                              return 3404;
                                                             }
                                                           else
                                                             {
@@ -1772,7 +1772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000010001xxxx1xx1xxxxx100xxxx
                                                                  fdot.  */
-                                                              return 3569;
+                                                              return 3574;
                                                             }
                                                         }
                                                     }
@@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xx1xxxxxx10xxxx
                                                              bfmla.  */
-                                                          return 3355;
+                                                          return 3360;
                                                         }
                                                       else
                                                         {
@@ -1814,7 +1814,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx1xx1xxxxxx10xxxx
                                                              bfmla.  */
-                                                          return 3356;
+                                                          return 3361;
                                                         }
                                                     }
                                                 }
@@ -1905,7 +1905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xx1xxxxxx01xxxx
                                                              fmls.  */
-                                                          return 3404;
+                                                          return 3409;
                                                         }
                                                       else
                                                         {
@@ -1913,7 +1913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx1xx1xxxxxx01xxxx
                                                              fmls.  */
-                                                          return 3405;
+                                                          return 3410;
                                                         }
                                                     }
                                                 }
@@ -1946,7 +1946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx0xx1xxxxxx11xxxx
                                                              bfmls.  */
-                                                          return 3361;
+                                                          return 3366;
                                                         }
                                                       else
                                                         {
@@ -1954,7 +1954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx0000010001xxxx1xx1xxxxxx11xxxx
                                                              bfmls.  */
-                                                          return 3362;
+                                                          return 3367;
                                                         }
                                                     }
                                                 }
@@ -2179,7 +2179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0000001100xxxxxxxxxxxxxxxx01xxx
                                                      fmopa.  */
-                                                  return 3396;
+                                                  return 3401;
                                                 }
                                             }
                                           else
@@ -2223,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxxxxx0xxxxxx100xxx
                                                                  fmlall.  */
-                                                              return 3583;
+                                                              return 3588;
                                                             }
                                                         }
                                                     }
@@ -2328,7 +2328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx10xxxx
                                                              fmlal.  */
-                                                          return 3576;
+                                                          return 3581;
                                                         }
                                                     }
                                                 }
@@ -2374,7 +2374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0000001100xxxxxxxxxxxxxxxx11xxx
                                                      fmops.  */
-                                                  return 3397;
+                                                  return 3402;
                                                 }
                                             }
                                           else
@@ -2512,7 +2512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx11xxxx
                                                              fmlal.  */
-                                                          return 3575;
+                                                          return 3580;
                                                         }
                                                     }
                                                 }
@@ -2554,7 +2554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx0000010100xxxxxxxxxxxxxxxx0xxx
                                                  fmlall.  */
-                                              return 3582;
+                                              return 3587;
                                             }
                                           else
                                             {
@@ -2922,7 +2922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx0xxxxxx111xxx
                                                              fdot.  */
-                                                          return 3562;
+                                                          return 3567;
                                                         }
                                                       else
                                                         {
@@ -2991,7 +2991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx001xxx
                                                              fdot.  */
-                                                          return 3563;
+                                                          return 3568;
                                                         }
                                                       else
                                                         {
@@ -3070,7 +3070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx0000011100xxxxxxx0xxxxxxx0xxxx
                                                      fmlal.  */
-                                                  return 3574;
+                                                  return 3579;
                                                 }
                                               else
                                                 {
@@ -3125,7 +3125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000011101xxxx0xx01xxxxx00xxxx
                                                                  fvdotb.  */
-                                                              return 3593;
+                                                              return 3598;
                                                             }
                                                           else
                                                             {
@@ -3143,7 +3143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx0xxxxxx10xxxx
                                                          fdot.  */
-                                                      return 3568;
+                                                      return 3573;
                                                     }
                                                 }
                                             }
@@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx1xxxxxx10xxxx
                                                          fvdot.  */
-                                                      return 3592;
+                                                      return 3597;
                                                     }
                                                 }
                                             }
@@ -3297,7 +3297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx01xxxxxx1xxxx
                                                          fvdott.  */
-                                                      return 3594;
+                                                      return 3599;
                                                     }
                                                   else
                                                     {
@@ -3418,7 +3418,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0000001xx1xxxxxxxxxxxxxxxx01xxx
                                              bfmopa.  */
-                                          return 3367;
+                                          return 3372;
                                         }
                                       else
                                         {
@@ -3426,7 +3426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0000001xx1xxxxxxxxxxxxxxxx11xxx
                                              bfmops.  */
-                                          return 3368;
+                                          return 3373;
                                         }
                                     }
                                 }
@@ -3496,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx00xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3588;
+                                                                              return 3593;
                                                                             }
                                                                           else
                                                                             {
@@ -3504,7 +3504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx10xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3589;
+                                                                              return 3594;
                                                                             }
                                                                         }
                                                                     }
@@ -3559,7 +3559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3586;
+                                                                  return 3591;
                                                                 }
                                                               else
                                                                 {
@@ -3567,7 +3567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3587;
+                                                                  return 3592;
                                                                 }
                                                             }
                                                         }
@@ -3621,7 +3621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3572;
+                                                                      return 3577;
                                                                     }
                                                                   else
                                                                     {
@@ -3629,7 +3629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3573;
+                                                                      return 3578;
                                                                     }
                                                                 }
                                                             }
@@ -3691,7 +3691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx00xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3580;
+                                                                              return 3585;
                                                                             }
                                                                           else
                                                                             {
@@ -3699,7 +3699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx10xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3581;
+                                                                              return 3586;
                                                                             }
                                                                         }
                                                                     }
@@ -3754,7 +3754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3578;
+                                                                  return 3583;
                                                                 }
                                                               else
                                                                 {
@@ -3762,7 +3762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3579;
+                                                                  return 3584;
                                                                 }
                                                             }
                                                         }
@@ -3831,7 +3831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx001xxxxx000xx
                                                                      fmlall.  */
-                                                                  return 3585;
+                                                                  return 3590;
                                                                 }
                                                             }
                                                           else
@@ -3914,7 +3914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx11xxxx0xx011xxxxx00xxx
                                                                  fmlal.  */
-                                                              return 3577;
+                                                              return 3582;
                                                             }
                                                         }
                                                       else
@@ -3929,7 +3929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx111xxxxx00xxx
                                                                          fmla.  */
-                                                                      return 3400;
+                                                                      return 3405;
                                                                     }
                                                                   else
                                                                     {
@@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010110xxxx0xx111xxxxx00xxx
                                                                          bfmla.  */
-                                                                      return 3357;
+                                                                      return 3362;
                                                                     }
                                                                 }
                                                               else
@@ -3960,7 +3960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x00xx111xxxxx00xxx
                                                                                  fadd.  */
-                                                                              return 3526;
+                                                                              return 3531;
                                                                             }
                                                                           else
                                                                             {
@@ -3968,7 +3968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011110x1x00xx111xxxxx00xxx
                                                                                  bfadd.  */
-                                                                              return 3351;
+                                                                              return 3356;
                                                                             }
                                                                         }
                                                                     }
@@ -3990,7 +3990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x10xx111xxxxx00xxx
                                                                                  fadd.  */
-                                                                              return 3527;
+                                                                              return 3532;
                                                                             }
                                                                           else
                                                                             {
@@ -3998,7 +3998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011110x1x10xx111xxxxx00xxx
                                                                                  bfadd.  */
-                                                                              return 3352;
+                                                                              return 3357;
                                                                             }
                                                                         }
                                                                     }
@@ -4012,7 +4012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x011xxxx0xx111xxxxx00xxx
                                                                      fmla.  */
-                                                                  return 3401;
+                                                                  return 3406;
                                                                 }
                                                               else
                                                                 {
@@ -4020,7 +4020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x111xxxx0xx111xxxxx00xxx
                                                                      bfmla.  */
-                                                                  return 3358;
+                                                                  return 3363;
                                                                 }
                                                             }
                                                         }
@@ -4146,7 +4146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3566;
+                                                                      return 3571;
                                                                     }
                                                                   else
                                                                     {
@@ -4154,7 +4154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3567;
+                                                                      return 3572;
                                                                     }
                                                                 }
                                                             }
@@ -4449,7 +4449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx100xxxxx01xxx
                                                                          fdot.  */
-                                                                      return 3570;
+                                                                      return 3575;
                                                                     }
                                                                   else
                                                                     {
@@ -4457,7 +4457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010011xxxx0xx100xxxxx01xxx
                                                                          fdot.  */
-                                                                      return 3571;
+                                                                      return 3576;
                                                                     }
                                                                 }
                                                               else
@@ -4468,7 +4468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx00xx100xxxxx01xxx
                                                                          fmla.  */
-                                                                      return 3402;
+                                                                      return 3407;
                                                                     }
                                                                   else
                                                                     {
@@ -4476,7 +4476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx10xx100xxxxx01xxx
                                                                          fmla.  */
-                                                                      return 3403;
+                                                                      return 3408;
                                                                     }
                                                                 }
                                                             }
@@ -4488,7 +4488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x11xxxx00xx100xxxxx01xxx
                                                                      bfmla.  */
-                                                                  return 3359;
+                                                                  return 3364;
                                                                 }
                                                               else
                                                                 {
@@ -4496,7 +4496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x11xxxx10xx100xxxxx01xxx
                                                                      bfmla.  */
-                                                                  return 3360;
+                                                                  return 3365;
                                                                 }
                                                             }
                                                         }
@@ -4762,7 +4762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx111xxxxx01xxx
                                                                          fmls.  */
-                                                                      return 3406;
+                                                                      return 3411;
                                                                     }
                                                                   else
                                                                     {
@@ -4770,7 +4770,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010110xxxx0xx111xxxxx01xxx
                                                                          bfmls.  */
-                                                                      return 3363;
+                                                                      return 3368;
                                                                     }
                                                                 }
                                                               else
@@ -4793,7 +4793,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x00xx111xxxxx01xxx
                                                                                  fsub.  */
-                                                                              return 3528;
+                                                                              return 3533;
                                                                             }
                                                                           else
                                                                             {
@@ -4801,7 +4801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011110x1x00xx111xxxxx01xxx
                                                                                  bfsub.  */
-                                                                              return 3353;
+                                                                              return 3358;
                                                                             }
                                                                         }
                                                                     }
@@ -4823,7 +4823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011010x1x10xx111xxxxx01xxx
                                                                                  fsub.  */
-                                                                              return 3529;
+                                                                              return 3534;
                                                                             }
                                                                           else
                                                                             {
@@ -4831,7 +4831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011110x1x10xx111xxxxx01xxx
                                                                                  bfsub.  */
-                                                                              return 3354;
+                                                                              return 3359;
                                                                             }
                                                                         }
                                                                     }
@@ -4845,7 +4845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x011xxxx0xx111xxxxx01xxx
                                                                      fmls.  */
-                                                                  return 3407;
+                                                                  return 3412;
                                                                 }
                                                               else
                                                                 {
@@ -4853,7 +4853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x111xxxx0xx111xxxxx01xxx
                                                                      bfmls.  */
-                                                                  return 3364;
+                                                                  return 3369;
                                                                 }
                                                             }
                                                         }
@@ -4919,7 +4919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010010xxxx0xx100xxxxx11xxx
                                                                          fdot.  */
-                                                                      return 3564;
+                                                                      return 3569;
                                                                     }
                                                                   else
                                                                     {
@@ -4927,7 +4927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000010011xxxx0xx100xxxxx11xxx
                                                                          fdot.  */
-                                                                      return 3565;
+                                                                      return 3570;
                                                                     }
                                                                 }
                                                               else
@@ -4938,7 +4938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx00xx100xxxxx11xxx
                                                                          fmls.  */
-                                                                      return 3408;
+                                                                      return 3413;
                                                                     }
                                                                   else
                                                                     {
@@ -4946,7 +4946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001101xxxx10xx100xxxxx11xxx
                                                                          fmls.  */
-                                                                      return 3409;
+                                                                      return 3414;
                                                                     }
                                                                 }
                                                             }
@@ -4958,7 +4958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x11xxxx00xx100xxxxx11xxx
                                                                      bfmls.  */
-                                                                  return 3365;
+                                                                  return 3370;
                                                                 }
                                                               else
                                                                 {
@@ -4966,7 +4966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001x11xxxx10xx100xxxxx11xxx
                                                                      bfmls.  */
-                                                                  return 3366;
+                                                                  return 3371;
                                                                 }
                                                             }
                                                         }
@@ -5628,7 +5628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001101x0000111000xxxxxxxxx0
                                                                                          fcvt.  */
-                                                                                      return 3410;
+                                                                                      return 3415;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5636,7 +5636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001101x0000111000xxxxxxxxx1
                                                                                          fcvtl.  */
-                                                                                      return 3411;
+                                                                                      return 3416;
                                                                                     }
                                                                                 }
                                                                             }
@@ -5694,7 +5694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x0100100111000xxxx0xxxxx
                                                                                          fcvt.  */
-                                                                                      return 3497;
+                                                                                      return 3502;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5702,7 +5702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x1100100111000xxxx0xxxxx
                                                                                          bfcvt.  */
-                                                                                      return 3492;
+                                                                                      return 3497;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5711,7 +5711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      x1000001xx110100111000xxxx0xxxxx
                                                                                      fcvt.  */
-                                                                                  return 3498;
+                                                                                  return 3503;
                                                                                 }
                                                                             }
                                                                           else
@@ -5740,7 +5740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x1000001xx1xx100111000xxxx1xxxxx
                                                                              fcvtn.  */
-                                                                          return 3499;
+                                                                          return 3504;
                                                                         }
                                                                     }
                                                                 }
@@ -5823,7 +5823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010010x110111000xxxxxxxxx0
                                                                                          f1cvt.  */
-                                                                                      return 3493;
+                                                                                      return 3498;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5831,7 +5831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011010x110111000xxxxxxxxx0
                                                                                          f2cvt.  */
-                                                                                      return 3494;
+                                                                                      return 3499;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5842,7 +5842,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010110x110111000xxxxxxxxx0
                                                                                          bf1cvt.  */
-                                                                                      return 3488;
+                                                                                      return 3493;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5850,7 +5850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011110x110111000xxxxxxxxx0
                                                                                          bf2cvt.  */
-                                                                                      return 3489;
+                                                                                      return 3494;
                                                                                     }
                                                                                 }
                                                                             }
@@ -5885,7 +5885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001001xxx10111000xxxxxxxxx1
                                                                                  f1cvtl.  */
-                                                                              return 3495;
+                                                                              return 3500;
                                                                             }
                                                                           else
                                                                             {
@@ -5893,7 +5893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxx10111000xxxxxxxxx1
                                                                                  f2cvtl.  */
-                                                                              return 3496;
+                                                                              return 3501;
                                                                             }
                                                                         }
                                                                       else
@@ -5904,7 +5904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001011xxx10111000xxxxxxxxx1
                                                                                  bf1cvtl.  */
-                                                                              return 3490;
+                                                                              return 3495;
                                                                             }
                                                                           else
                                                                             {
@@ -5912,7 +5912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001111xxx10111000xxxxxxxxx1
                                                                                  bf2cvtl.  */
-                                                                              return 3491;
+                                                                              return 3496;
                                                                             }
                                                                         }
                                                                     }
@@ -8404,7 +8404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000001xxxxx101000xxxxxxxxxx
                                                                      rcwswp.  */
-                                                                  return 3301;
+                                                                  return 3306;
                                                                 }
                                                               else
                                                                 {
@@ -8414,7 +8414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx101000xxxxxxxxxx
                                                                          rcwsswp.  */
-                                                                      return 3309;
+                                                                      return 3314;
                                                                     }
                                                                   else
                                                                     {
@@ -8434,7 +8434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000101xxxxx101000xxxxxxxxxx
                                                                      rcwswpa.  */
-                                                                  return 3302;
+                                                                  return 3307;
                                                                 }
                                                               else
                                                                 {
@@ -8442,7 +8442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000101xxxxx101000xxxxxxxxxx
                                                                      rcwsswpa.  */
-                                                                  return 3310;
+                                                                  return 3315;
                                                                 }
                                                             }
                                                         }
@@ -8456,7 +8456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000011xxxxx101000xxxxxxxxxx
                                                                      rcwswpl.  */
-                                                                  return 3304;
+                                                                  return 3309;
                                                                 }
                                                               else
                                                                 {
@@ -8464,7 +8464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000011xxxxx101000xxxxxxxxxx
                                                                      rcwsswpl.  */
-                                                                  return 3312;
+                                                                  return 3317;
                                                                 }
                                                             }
                                                           else
@@ -8475,7 +8475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000111xxxxx101000xxxxxxxxxx
                                                                      rcwswpal.  */
-                                                                  return 3303;
+                                                                  return 3308;
                                                                 }
                                                               else
                                                                 {
@@ -8483,7 +8483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000111xxxxx101000xxxxxxxxxx
                                                                      rcwsswpal.  */
-                                                                  return 3311;
+                                                                  return 3316;
                                                                 }
                                                             }
                                                         }
@@ -8767,7 +8767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000001xxxxx100100xxxxxxxxxx
                                                                      rcwclr.  */
-                                                                  return 3269;
+                                                                  return 3274;
                                                                 }
                                                               else
                                                                 {
@@ -8777,7 +8777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx100100xxxxxxxxxx
                                                                          rcwsclr.  */
-                                                                      return 3277;
+                                                                      return 3282;
                                                                     }
                                                                   else
                                                                     {
@@ -8797,7 +8797,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000101xxxxx100100xxxxxxxxxx
                                                                      rcwclra.  */
-                                                                  return 3270;
+                                                                  return 3275;
                                                                 }
                                                               else
                                                                 {
@@ -8805,7 +8805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000101xxxxx100100xxxxxxxxxx
                                                                      rcwsclra.  */
-                                                                  return 3278;
+                                                                  return 3283;
                                                                 }
                                                             }
                                                         }
@@ -8819,7 +8819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000011xxxxx100100xxxxxxxxxx
                                                                      rcwclrl.  */
-                                                                  return 3272;
+                                                                  return 3277;
                                                                 }
                                                               else
                                                                 {
@@ -8827,7 +8827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000011xxxxx100100xxxxxxxxxx
                                                                      rcwsclrl.  */
-                                                                  return 3280;
+                                                                  return 3285;
                                                                 }
                                                             }
                                                           else
@@ -8838,7 +8838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000111xxxxx100100xxxxxxxxxx
                                                                      rcwclral.  */
-                                                                  return 3271;
+                                                                  return 3276;
                                                                 }
                                                               else
                                                                 {
@@ -8846,7 +8846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000111xxxxx100100xxxxxxxxxx
                                                                      rcwsclral.  */
-                                                                  return 3279;
+                                                                  return 3284;
                                                                 }
                                                             }
                                                         }
@@ -9138,7 +9138,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000001xxxxx101100xxxxxxxxxx
                                                                      rcwset.  */
-                                                                  return 3285;
+                                                                  return 3290;
                                                                 }
                                                               else
                                                                 {
@@ -9148,7 +9148,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx101100xxxxxxxxxx
                                                                          rcwsset.  */
-                                                                      return 3293;
+                                                                      return 3298;
                                                                     }
                                                                   else
                                                                     {
@@ -9168,7 +9168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000101xxxxx101100xxxxxxxxxx
                                                                      rcwseta.  */
-                                                                  return 3286;
+                                                                  return 3291;
                                                                 }
                                                               else
                                                                 {
@@ -9176,7 +9176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000101xxxxx101100xxxxxxxxxx
                                                                      rcwsseta.  */
-                                                                  return 3294;
+                                                                  return 3299;
                                                                 }
                                                             }
                                                         }
@@ -9190,7 +9190,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000011xxxxx101100xxxxxxxxxx
                                                                      rcwsetl.  */
-                                                                  return 3288;
+                                                                  return 3293;
                                                                 }
                                                               else
                                                                 {
@@ -9198,7 +9198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000011xxxxx101100xxxxxxxxxx
                                                                      rcwssetl.  */
-                                                                  return 3296;
+                                                                  return 3301;
                                                                 }
                                                             }
                                                           else
@@ -9209,7 +9209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x0111000111xxxxx101100xxxxxxxxxx
                                                                      rcwsetal.  */
-                                                                  return 3287;
+                                                                  return 3292;
                                                                 }
                                                               else
                                                                 {
@@ -9217,7 +9217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1111000111xxxxx101100xxxxxxxxxx
                                                                      rcwssetal.  */
-                                                                  return 3295;
+                                                                  return 3300;
                                                                 }
                                                             }
                                                         }
@@ -9767,7 +9767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011001001xxxxxxx1000xxxxxxxxxx
                                                              rcwswpp.  */
-                                                          return 3305;
+                                                          return 3310;
                                                         }
                                                       else
                                                         {
@@ -9775,7 +9775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1011001001xxxxxxx1000xxxxxxxxxx
                                                              rcwsswpp.  */
-                                                          return 3313;
+                                                          return 3318;
                                                         }
                                                     }
                                                 }
@@ -9799,7 +9799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001001xxxxx1x0100xxxxxxxxxx
                                                                  rcwclrp.  */
-                                                              return 3273;
+                                                              return 3278;
                                                             }
                                                           else
                                                             {
@@ -9807,7 +9807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001001xxxxx1x0100xxxxxxxxxx
                                                                  rcwsclrp.  */
-                                                              return 3281;
+                                                              return 3286;
                                                             }
                                                         }
                                                     }
@@ -9829,7 +9829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001001xxxxx1x1100xxxxxxxxxx
                                                                  rcwsetp.  */
-                                                              return 3289;
+                                                              return 3294;
                                                             }
                                                           else
                                                             {
@@ -9837,7 +9837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001001xxxxx1x1100xxxxxxxxxx
                                                                  rcwssetp.  */
-                                                              return 3297;
+                                                              return 3302;
                                                             }
                                                         }
                                                     }
@@ -9862,7 +9862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001001xxxxxxxxx10xxxxxxxxxx
                                                      rcwcas.  */
-                                                  return 3253;
+                                                  return 3258;
                                                 }
                                               else
                                                 {
@@ -9872,7 +9872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001001xxxxxxxxx10xxxxxxxxxx
                                                          rcwscas.  */
-                                                      return 3261;
+                                                      return 3266;
                                                     }
                                                   else
                                                     {
@@ -9904,7 +9904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx000001xxxxxxxxxx
                                                                  cpyfp.  */
-                                                              return 3119;
+                                                              return 3124;
                                                             }
                                                           else
                                                             {
@@ -9912,7 +9912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx100001xxxxxxxxxx
                                                                  cpyfprn.  */
-                                                              return 3125;
+                                                              return 3130;
                                                             }
                                                         }
                                                       else
@@ -9923,7 +9923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx010001xxxxxxxxxx
                                                                  cpyfpwn.  */
-                                                              return 3122;
+                                                              return 3127;
                                                             }
                                                           else
                                                             {
@@ -9931,7 +9931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx110001xxxxxxxxxx
                                                                  cpyfpn.  */
-                                                              return 3128;
+                                                              return 3133;
                                                             }
                                                         }
                                                     }
@@ -9945,7 +9945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx001001xxxxxxxxxx
                                                                  cpyfprt.  */
-                                                              return 3143;
+                                                              return 3148;
                                                             }
                                                           else
                                                             {
@@ -9953,7 +9953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx101001xxxxxxxxxx
                                                                  cpyfprtrn.  */
-                                                              return 3149;
+                                                              return 3154;
                                                             }
                                                         }
                                                       else
@@ -9964,7 +9964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx011001xxxxxxxxxx
                                                                  cpyfprtwn.  */
-                                                              return 3146;
+                                                              return 3151;
                                                             }
                                                           else
                                                             {
@@ -9972,7 +9972,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx111001xxxxxxxxxx
                                                                  cpyfprtn.  */
-                                                              return 3152;
+                                                              return 3157;
                                                             }
                                                         }
                                                     }
@@ -9989,7 +9989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx000101xxxxxxxxxx
                                                                  cpyfpwt.  */
-                                                              return 3131;
+                                                              return 3136;
                                                             }
                                                           else
                                                             {
@@ -9997,7 +9997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx100101xxxxxxxxxx
                                                                  cpyfpwtrn.  */
-                                                              return 3137;
+                                                              return 3142;
                                                             }
                                                         }
                                                       else
@@ -10008,7 +10008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx010101xxxxxxxxxx
                                                                  cpyfpwtwn.  */
-                                                              return 3134;
+                                                              return 3139;
                                                             }
                                                           else
                                                             {
@@ -10016,7 +10016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx110101xxxxxxxxxx
                                                                  cpyfpwtn.  */
-                                                              return 3140;
+                                                              return 3145;
                                                             }
                                                         }
                                                     }
@@ -10030,7 +10030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx001101xxxxxxxxxx
                                                                  cpyfpt.  */
-                                                              return 3155;
+                                                              return 3160;
                                                             }
                                                           else
                                                             {
@@ -10038,7 +10038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx101101xxxxxxxxxx
                                                                  cpyfptrn.  */
-                                                              return 3161;
+                                                              return 3166;
                                                             }
                                                         }
                                                       else
@@ -10049,7 +10049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx011101xxxxxxxxxx
                                                                  cpyfptwn.  */
-                                                              return 3158;
+                                                              return 3163;
                                                             }
                                                           else
                                                             {
@@ -10057,7 +10057,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx011001000xxxxx111101xxxxxxxxxx
                                                                  cpyfptn.  */
-                                                              return 3164;
+                                                              return 3169;
                                                             }
                                                         }
                                                     }
@@ -10091,7 +10091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011001001xxxxxxxxxx1xxxxxxxxxx
                                                  rcwcasp.  */
-                                              return 3257;
+                                              return 3262;
                                             }
                                           else
                                             {
@@ -10101,7 +10101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01011001001xxxxxxxxxx1xxxxxxxxxx
                                                      rcwscasp.  */
-                                                  return 3265;
+                                                  return 3270;
                                                 }
                                               else
                                                 {
@@ -10215,7 +10215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011001011xxxxxxx1000xxxxxxxxxx
                                                              rcwswppl.  */
-                                                          return 3308;
+                                                          return 3313;
                                                         }
                                                     }
                                                   else
@@ -10236,7 +10236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001011xxxxx1x0100xxxxxxxxxx
                                                                  rcwclrpl.  */
-                                                              return 3276;
+                                                              return 3281;
                                                             }
                                                         }
                                                       else
@@ -10255,7 +10255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001011xxxxx1x1100xxxxxxxxxx
                                                                  rcwsetpl.  */
-                                                              return 3292;
+                                                              return 3297;
                                                             }
                                                         }
                                                     }
@@ -10270,7 +10270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              01011001011xxxxxxxx000xxxxxxxxxx
                                                              rcwsswppl.  */
-                                                          return 3316;
+                                                          return 3321;
                                                         }
                                                       else
                                                         {
@@ -10280,7 +10280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01011001011xxxxxxx0100xxxxxxxxxx
                                                                  rcwsclrpl.  */
-                                                              return 3284;
+                                                              return 3289;
                                                             }
                                                           else
                                                             {
@@ -10288,7 +10288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01011001011xxxxxxx1100xxxxxxxxxx
                                                                  rcwssetpl.  */
-                                                              return 3300;
+                                                              return 3305;
                                                             }
                                                         }
                                                     }
@@ -10321,7 +10321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001011xxxxxxxxx10xxxxxxxxxx
                                                      rcwcasl.  */
-                                                  return 3256;
+                                                  return 3261;
                                                 }
                                               else
                                                 {
@@ -10331,7 +10331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001011xxxxxxxxx10xxxxxxxxxx
                                                          rcwscasl.  */
-                                                      return 3264;
+                                                      return 3269;
                                                     }
                                                   else
                                                     {
@@ -10361,7 +10361,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0000x1xxxxxxxxxx
                                                              cpyfm.  */
-                                                          return 3120;
+                                                          return 3125;
                                                         }
                                                       else
                                                         {
@@ -10369,7 +10369,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1000x1xxxxxxxxxx
                                                              cpyfmrn.  */
-                                                          return 3126;
+                                                          return 3131;
                                                         }
                                                     }
                                                   else
@@ -10380,7 +10380,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0100x1xxxxxxxxxx
                                                              cpyfmwn.  */
-                                                          return 3123;
+                                                          return 3128;
                                                         }
                                                       else
                                                         {
@@ -10388,7 +10388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1100x1xxxxxxxxxx
                                                              cpyfmn.  */
-                                                          return 3129;
+                                                          return 3134;
                                                         }
                                                     }
                                                 }
@@ -10402,7 +10402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0010x1xxxxxxxxxx
                                                              cpyfmrt.  */
-                                                          return 3144;
+                                                          return 3149;
                                                         }
                                                       else
                                                         {
@@ -10410,7 +10410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1010x1xxxxxxxxxx
                                                              cpyfmrtrn.  */
-                                                          return 3150;
+                                                          return 3155;
                                                         }
                                                     }
                                                   else
@@ -10421,7 +10421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0110x1xxxxxxxxxx
                                                              cpyfmrtwn.  */
-                                                          return 3147;
+                                                          return 3152;
                                                         }
                                                       else
                                                         {
@@ -10429,7 +10429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1110x1xxxxxxxxxx
                                                              cpyfmrtn.  */
-                                                          return 3153;
+                                                          return 3158;
                                                         }
                                                     }
                                                 }
@@ -10446,7 +10446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0001x1xxxxxxxxxx
                                                              cpyfmwt.  */
-                                                          return 3132;
+                                                          return 3137;
                                                         }
                                                       else
                                                         {
@@ -10454,7 +10454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1001x1xxxxxxxxxx
                                                              cpyfmwtrn.  */
-                                                          return 3138;
+                                                          return 3143;
                                                         }
                                                     }
                                                   else
@@ -10465,7 +10465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0101x1xxxxxxxxxx
                                                              cpyfmwtwn.  */
-                                                          return 3135;
+                                                          return 3140;
                                                         }
                                                       else
                                                         {
@@ -10473,7 +10473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1101x1xxxxxxxxxx
                                                              cpyfmwtn.  */
-                                                          return 3141;
+                                                          return 3146;
                                                         }
                                                     }
                                                 }
@@ -10487,7 +10487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0011x1xxxxxxxxxx
                                                              cpyfmt.  */
-                                                          return 3156;
+                                                          return 3161;
                                                         }
                                                       else
                                                         {
@@ -10495,7 +10495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1011x1xxxxxxxxxx
                                                              cpyfmtrn.  */
-                                                          return 3162;
+                                                          return 3167;
                                                         }
                                                     }
                                                   else
@@ -10506,7 +10506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx0111x1xxxxxxxxxx
                                                              cpyfmtwn.  */
-                                                          return 3159;
+                                                          return 3164;
                                                         }
                                                       else
                                                         {
@@ -10514,7 +10514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001010xxxxx1111x1xxxxxxxxxx
                                                              cpyfmtn.  */
-                                                          return 3165;
+                                                          return 3170;
                                                         }
                                                     }
                                                 }
@@ -10528,7 +10528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011001011xxxxxxxxxx1xxxxxxxxxx
                                                  rcwcaspl.  */
-                                              return 3260;
+                                              return 3265;
                                             }
                                           else
                                             {
@@ -10538,7 +10538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01011001011xxxxxxxxxx1xxxxxxxxxx
                                                      rcwscaspl.  */
-                                                  return 3268;
+                                                  return 3273;
                                                 }
                                               else
                                                 {
@@ -10699,7 +10699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011001101xxxxxxx1000xxxxxxxxxx
                                                              rcwswppa.  */
-                                                          return 3306;
+                                                          return 3311;
                                                         }
                                                       else
                                                         {
@@ -10707,7 +10707,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1011001101xxxxxxx1000xxxxxxxxxx
                                                              rcwsswppa.  */
-                                                          return 3314;
+                                                          return 3319;
                                                         }
                                                     }
                                                   else
@@ -10718,7 +10718,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011001111xxxxxxx1000xxxxxxxxxx
                                                              rcwswppal.  */
-                                                          return 3307;
+                                                          return 3312;
                                                         }
                                                       else
                                                         {
@@ -10726,7 +10726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1011001111xxxxxxx1000xxxxxxxxxx
                                                              rcwsswppal.  */
-                                                          return 3315;
+                                                          return 3320;
                                                         }
                                                     }
                                                 }
@@ -10764,7 +10764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001101xxxxx1x0100xxxxxxxxxx
                                                                  rcwclrpa.  */
-                                                              return 3274;
+                                                              return 3279;
                                                             }
                                                           else
                                                             {
@@ -10772,7 +10772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001101xxxxx1x0100xxxxxxxxxx
                                                                  rcwsclrpa.  */
-                                                              return 3282;
+                                                              return 3287;
                                                             }
                                                         }
                                                       else
@@ -10783,7 +10783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001111xxxxx1x0100xxxxxxxxxx
                                                                  rcwclrpal.  */
-                                                              return 3275;
+                                                              return 3280;
                                                             }
                                                           else
                                                             {
@@ -10791,7 +10791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001111xxxxx1x0100xxxxxxxxxx
                                                                  rcwsclrpal.  */
-                                                              return 3283;
+                                                              return 3288;
                                                             }
                                                         }
                                                     }
@@ -10827,7 +10827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001101xxxxx1x1100xxxxxxxxxx
                                                                  rcwsetpa.  */
-                                                              return 3290;
+                                                              return 3295;
                                                             }
                                                           else
                                                             {
@@ -10835,7 +10835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001101xxxxx1x1100xxxxxxxxxx
                                                                  rcwssetpa.  */
-                                                              return 3298;
+                                                              return 3303;
                                                             }
                                                         }
                                                       else
@@ -10846,7 +10846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x0011001111xxxxx1x1100xxxxxxxxxx
                                                                  rcwsetpal.  */
-                                                              return 3291;
+                                                              return 3296;
                                                             }
                                                           else
                                                             {
@@ -10854,7 +10854,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1011001111xxxxx1x1100xxxxxxxxxx
                                                                  rcwssetpal.  */
-                                                              return 3299;
+                                                              return 3304;
                                                             }
                                                         }
                                                     }
@@ -10893,7 +10893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001101xxxxxxxxx10xxxxxxxxxx
                                                      rcwcasa.  */
-                                                  return 3254;
+                                                  return 3259;
                                                 }
                                               else
                                                 {
@@ -10903,7 +10903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001101xxxxxxxxx10xxxxxxxxxx
                                                          rcwscasa.  */
-                                                      return 3262;
+                                                      return 3267;
                                                     }
                                                   else
                                                     {
@@ -10923,7 +10923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001111xxxxxxxxx10xxxxxxxxxx
                                                      rcwcasal.  */
-                                                  return 3255;
+                                                  return 3260;
                                                 }
                                               else
                                                 {
@@ -10933,7 +10933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001111xxxxxxxxx10xxxxxxxxxx
                                                          rcwscasal.  */
-                                                      return 3263;
+                                                      return 3268;
                                                     }
                                                   else
                                                     {
@@ -10966,7 +10966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0000x1xxxxxxxxxx
                                                              cpyfe.  */
-                                                          return 3121;
+                                                          return 3126;
                                                         }
                                                       else
                                                         {
@@ -10974,7 +10974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0000x1xxxxxxxxxx
                                                              setp.  */
-                                                          return 3215;
+                                                          return 3220;
                                                         }
                                                     }
                                                   else
@@ -10985,7 +10985,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1000x1xxxxxxxxxx
                                                              cpyfern.  */
-                                                          return 3127;
+                                                          return 3132;
                                                         }
                                                       else
                                                         {
@@ -10993,7 +10993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1000x1xxxxxxxxxx
                                                              sete.  */
-                                                          return 3217;
+                                                          return 3222;
                                                         }
                                                     }
                                                 }
@@ -11007,7 +11007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0100x1xxxxxxxxxx
                                                              cpyfewn.  */
-                                                          return 3124;
+                                                          return 3129;
                                                         }
                                                       else
                                                         {
@@ -11015,7 +11015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0100x1xxxxxxxxxx
                                                              setm.  */
-                                                          return 3216;
+                                                          return 3221;
                                                         }
                                                     }
                                                   else
@@ -11024,7 +11024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1100x1xxxxxxxxxx
                                                          cpyfen.  */
-                                                      return 3130;
+                                                      return 3135;
                                                     }
                                                 }
                                             }
@@ -11040,7 +11040,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0010x1xxxxxxxxxx
                                                              cpyfert.  */
-                                                          return 3145;
+                                                          return 3150;
                                                         }
                                                       else
                                                         {
@@ -11048,7 +11048,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0010x1xxxxxxxxxx
                                                              setpn.  */
-                                                          return 3221;
+                                                          return 3226;
                                                         }
                                                     }
                                                   else
@@ -11059,7 +11059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1010x1xxxxxxxxxx
                                                              cpyfertrn.  */
-                                                          return 3151;
+                                                          return 3156;
                                                         }
                                                       else
                                                         {
@@ -11067,7 +11067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1010x1xxxxxxxxxx
                                                              seten.  */
-                                                          return 3223;
+                                                          return 3228;
                                                         }
                                                     }
                                                 }
@@ -11081,7 +11081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0110x1xxxxxxxxxx
                                                              cpyfertwn.  */
-                                                          return 3148;
+                                                          return 3153;
                                                         }
                                                       else
                                                         {
@@ -11089,7 +11089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0110x1xxxxxxxxxx
                                                              setmn.  */
-                                                          return 3222;
+                                                          return 3227;
                                                         }
                                                     }
                                                   else
@@ -11098,7 +11098,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1110x1xxxxxxxxxx
                                                          cpyfertn.  */
-                                                      return 3154;
+                                                      return 3159;
                                                     }
                                                 }
                                             }
@@ -11117,7 +11117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0001x1xxxxxxxxxx
                                                              cpyfewt.  */
-                                                          return 3133;
+                                                          return 3138;
                                                         }
                                                       else
                                                         {
@@ -11125,7 +11125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0001x1xxxxxxxxxx
                                                              setpt.  */
-                                                          return 3218;
+                                                          return 3223;
                                                         }
                                                     }
                                                   else
@@ -11136,7 +11136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1001x1xxxxxxxxxx
                                                              cpyfewtrn.  */
-                                                          return 3139;
+                                                          return 3144;
                                                         }
                                                       else
                                                         {
@@ -11144,7 +11144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1001x1xxxxxxxxxx
                                                              setet.  */
-                                                          return 3220;
+                                                          return 3225;
                                                         }
                                                     }
                                                 }
@@ -11158,7 +11158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0101x1xxxxxxxxxx
                                                              cpyfewtwn.  */
-                                                          return 3136;
+                                                          return 3141;
                                                         }
                                                       else
                                                         {
@@ -11166,7 +11166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0101x1xxxxxxxxxx
                                                              setmt.  */
-                                                          return 3219;
+                                                          return 3224;
                                                         }
                                                     }
                                                   else
@@ -11175,7 +11175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1101x1xxxxxxxxxx
                                                          cpyfewtn.  */
-                                                      return 3142;
+                                                      return 3147;
                                                     }
                                                 }
                                             }
@@ -11191,7 +11191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0011x1xxxxxxxxxx
                                                              cpyfet.  */
-                                                          return 3157;
+                                                          return 3162;
                                                         }
                                                       else
                                                         {
@@ -11199,7 +11199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0011x1xxxxxxxxxx
                                                              setptn.  */
-                                                          return 3224;
+                                                          return 3229;
                                                         }
                                                     }
                                                   else
@@ -11210,7 +11210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx1011x1xxxxxxxxxx
                                                              cpyfetrn.  */
-                                                          return 3163;
+                                                          return 3168;
                                                         }
                                                       else
                                                         {
@@ -11218,7 +11218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx1011x1xxxxxxxxxx
                                                              setetn.  */
-                                                          return 3226;
+                                                          return 3231;
                                                         }
                                                     }
                                                 }
@@ -11232,7 +11232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001100xxxxx0111x1xxxxxxxxxx
                                                              cpyfetwn.  */
-                                                          return 3160;
+                                                          return 3165;
                                                         }
                                                       else
                                                         {
@@ -11240,7 +11240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx011001110xxxxx0111x1xxxxxxxxxx
                                                              setmtn.  */
-                                                          return 3225;
+                                                          return 3230;
                                                         }
                                                     }
                                                   else
@@ -11249,7 +11249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0110011x0xxxxx1111x1xxxxxxxxxx
                                                          cpyfetn.  */
-                                                      return 3166;
+                                                      return 3171;
                                                     }
                                                 }
                                             }
@@ -11265,7 +11265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011001101xxxxxxxxxx1xxxxxxxxxx
                                                  rcwcaspa.  */
-                                              return 3258;
+                                              return 3263;
                                             }
                                           else
                                             {
@@ -11275,7 +11275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01011001101xxxxxxxxxx1xxxxxxxxxx
                                                      rcwscaspa.  */
-                                                  return 3266;
+                                                  return 3271;
                                                 }
                                               else
                                                 {
@@ -11295,7 +11295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011001111xxxxxxxxxx1xxxxxxxxxx
                                                  rcwcaspal.  */
-                                              return 3259;
+                                              return 3264;
                                             }
                                           else
                                             {
@@ -11305,7 +11305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01011001111xxxxxxxxxx1xxxxxxxxxx
                                                      rcwscaspal.  */
-                                                  return 3267;
+                                                  return 3272;
                                                 }
                                               else
                                                 {
@@ -11577,7 +11577,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0x11010000xxxxxxx1xxxxxxxxxxxxx
                                              addpt.  */
-                                          return 3504;
+                                          return 3509;
                                         }
                                       else
                                         {
@@ -11585,7 +11585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x1x11010000xxxxxxx1xxxxxxxxxxxxx
                                              subpt.  */
-                                          return 3505;
+                                          return 3510;
                                         }
                                     }
                                 }
@@ -11743,7 +11743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1x11010110xxxx0x01000xxxxxxxxxx
                                                                  abs.  */
-                                                              return 3244;
+                                                              return 3249;
                                                             }
                                                           else
                                                             {
@@ -11761,7 +11761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11010110xxxxxx11000xxxxxxxxxx
                                                          smax.  */
-                                                      return 3247;
+                                                      return 3252;
                                                     }
                                                 }
                                             }
@@ -11934,7 +11934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11010110xxxxxx11010xxxxxxxxxx
                                                          smin.  */
-                                                      return 3249;
+                                                      return 3254;
                                                     }
                                                 }
                                             }
@@ -11950,7 +11950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11010110xxxx0x00110xxxxxxxxxx
                                                              ctz.  */
-                                                          return 3246;
+                                                          return 3251;
                                                         }
                                                       else
                                                         {
@@ -12056,7 +12056,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11010x10xxxxxx11001xxxxxxxxxx
                                                      umax.  */
-                                                  return 3248;
+                                                  return 3253;
                                                 }
                                             }
                                         }
@@ -12185,7 +12185,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11010x10xxxxxx11011xxxxxxxxxx
                                                      umin.  */
-                                                  return 3250;
+                                                  return 3255;
                                                 }
                                             }
                                         }
@@ -12201,7 +12201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11010x10xxxx0x00111xxxxxxxxxx
                                                          cnt.  */
-                                                      return 3245;
+                                                      return 3250;
                                                     }
                                                   else
                                                     {
@@ -12503,7 +12503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
                                  maddpt.  */
-                              return 3506;
+                              return 3511;
                             }
                           else
                             {
@@ -12511,7 +12511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
                                  msubpt.  */
-                              return 3507;
+                              return 3512;
                             }
                         }
                     }
@@ -12596,7 +12596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000100000xxxxxxxxxxxxx
                                                                      addpt.  */
-                                                                  return 3508;
+                                                                  return 3513;
                                                                 }
                                                               else
                                                                 {
@@ -12703,7 +12703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000101000xxxxxxxxxxxxx
                                                                      subpt.  */
-                                                                  return 3510;
+                                                                  return 3515;
                                                                 }
                                                               else
                                                                 {
@@ -12908,7 +12908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000010xxxxxxxxxx
                                                              addpt.  */
-                                                          return 3509;
+                                                          return 3514;
                                                         }
                                                       else
                                                         {
@@ -12949,7 +12949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000011xxxxxxxxxx
                                                              subpt.  */
-                                                          return 3511;
+                                                          return 3516;
                                                         }
                                                       else
                                                         {
@@ -14607,7 +14607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110100xxxxxxxxxx
                                                              mlapt.  */
-                                                          return 3513;
+                                                          return 3518;
                                                         }
                                                     }
                                                   else
@@ -14637,7 +14637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110110xxxxxxxxxx
                                                              madpt.  */
-                                                          return 3512;
+                                                          return 3517;
                                                         }
                                                     }
                                                 }
@@ -14945,7 +14945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx00x100001xxxxxxxxxxxxx
                                                                  smaxqv.  */
-                                                              return 3414;
+                                                              return 3419;
                                                             }
                                                           else
                                                             {
@@ -14953,7 +14953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx01x100001xxxxxxxxxxxxx
                                                                  orqv.  */
-                                                              return 3425;
+                                                              return 3430;
                                                             }
                                                         }
                                                       else
@@ -14964,7 +14964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0101001xxxxxxxxxxxxx
                                                                  addqv.  */
-                                                              return 3412;
+                                                              return 3417;
                                                             }
                                                           else
                                                             {
@@ -14974,7 +14974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001101001xxxxxxxxxxxxx
                                                                      umaxqv.  */
-                                                                  return 3416;
+                                                                  return 3421;
                                                                 }
                                                               else
                                                                 {
@@ -14982,7 +14982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011101001xxxxxxxxxxxxx
                                                                      eorqv.  */
-                                                                  return 3418;
+                                                                  return 3423;
                                                                 }
                                                             }
                                                         }
@@ -15019,7 +15019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx00x110001xxxxxxxxxxxxx
                                                                  sminqv.  */
-                                                              return 3415;
+                                                              return 3420;
                                                             }
                                                           else
                                                             {
@@ -15027,7 +15027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx01x110001xxxxxxxxxxxxx
                                                                  andqv.  */
-                                                              return 3413;
+                                                              return 3418;
                                                             }
                                                         }
                                                     }
@@ -15047,7 +15047,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx111001xxxxxxxxxxxxx
                                                              uminqv.  */
-                                                          return 3417;
+                                                          return 3422;
                                                         }
                                                     }
                                                 }
@@ -15791,7 +15791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      110001x0x00xxxxx101xxxxxxxxxxxxx
                                                      ld1q.  */
-                                                  return 3449;
+                                                  return 3454;
                                                 }
                                               else
                                                 {
@@ -16805,7 +16805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x00xxxxxxxxxx
                                                          zipq1.  */
-                                                      return 3431;
+                                                      return 3436;
                                                     }
                                                   else
                                                     {
@@ -16815,7 +16815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx111010xxxxxxxxxx
                                                              uzpq1.  */
-                                                          return 3429;
+                                                          return 3434;
                                                         }
                                                       else
                                                         {
@@ -16823,7 +16823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx111110xxxxxxxxxx
                                                              tblq.  */
-                                                          return 3426;
+                                                          return 3431;
                                                         }
                                                     }
                                                 }
@@ -16835,7 +16835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x01xxxxxxxxxx
                                                          zipq2.  */
-                                                      return 3432;
+                                                      return 3437;
                                                     }
                                                   else
                                                     {
@@ -16843,7 +16843,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x11xxxxxxxxxx
                                                          uzpq2.  */
-                                                      return 3430;
+                                                      return 3435;
                                                     }
                                                 }
                                             }
@@ -17323,7 +17323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x0x00xxxxx000xxxxxxxxxxxxx
                                                      st3q.  */
-                                                  return 3458;
+                                                  return 3463;
                                                 }
                                               else
                                                 {
@@ -17333,7 +17333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0010xxxxx000xxxxxxxxxxxxx
                                                          st2q.  */
-                                                      return 3457;
+                                                      return 3462;
                                                     }
                                                   else
                                                     {
@@ -17341,7 +17341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0110xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3459;
+                                                      return 3464;
                                                     }
                                                 }
                                             }
@@ -17788,7 +17788,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0xx0x0000101xxxxxxxxxxxxx
                                                                  faddqv.  */
-                                                              return 3419;
+                                                              return 3424;
                                                             }
                                                           else
                                                             {
@@ -17805,7 +17805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx100101xxxxxxxxxxxxx
                                                              fmaxnmqv.  */
-                                                          return 3420;
+                                                          return 3425;
                                                         }
                                                     }
                                                   else
@@ -17846,7 +17846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx110101xxxxxxxxxxxxx
                                                              fmaxqv.  */
-                                                          return 3421;
+                                                          return 3426;
                                                         }
                                                     }
                                                 }
@@ -17868,7 +17868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx101101xxxxxxxxxxxxx
                                                              fminnmqv.  */
-                                                          return 3422;
+                                                          return 3427;
                                                         }
                                                     }
                                                   else
@@ -17887,7 +17887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx111101xxxxxxxxxxxxx
                                                              fminqv.  */
-                                                          return 3423;
+                                                          return 3428;
                                                         }
                                                     }
                                                 }
@@ -18007,7 +18007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x0xx01xxxx111xxxxxxxxxxxxx
                                                      ld2q.  */
-                                                  return 3450;
+                                                  return 3455;
                                                 }
                                             }
                                         }
@@ -18143,7 +18143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101001x0xx1xxxxx100xxxxxxxxxxxxx
                                                  ld2q.  */
-                                              return 3453;
+                                              return 3458;
                                             }
                                         }
                                       else
@@ -18259,7 +18259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x00x1xxxxx000x10xxxxxxxxxx
                                                              bfmla.  */
-                                                          return 3327;
+                                                          return 3332;
                                                         }
                                                     }
                                                   else
@@ -18278,7 +18278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x00x1xxxxx000x11xxxxxxxxxx
                                                              bfmls.  */
-                                                          return 3328;
+                                                          return 3333;
                                                         }
                                                     }
                                                 }
@@ -18288,7 +18288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x00x1xxxxx000xxxxxxxxxxxxx
                                                      st2q.  */
-                                                  return 3460;
+                                                  return 3465;
                                                 }
                                             }
                                           else
@@ -18331,7 +18331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0101xxxxx000xxxxxxxxxxxxx
                                                          st3q.  */
-                                                      return 3461;
+                                                      return 3466;
                                                     }
                                                 }
                                               else
@@ -18372,7 +18372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0111xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3462;
+                                                      return 3467;
                                                     }
                                                 }
                                             }
@@ -18401,7 +18401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0001xxxxx0100x1xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3549;
+                                                              return 3554;
                                                             }
                                                         }
                                                       else
@@ -18410,7 +18410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0001xxxxx0101xxxxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3551;
+                                                          return 3556;
                                                         }
                                                     }
                                                   else
@@ -18451,7 +18451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx0101xxxxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3561;
+                                                          return 3566;
                                                         }
                                                     }
                                                   else
@@ -18484,7 +18484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0011xxxxx010xx1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3547;
+                                                          return 3552;
                                                         }
                                                     }
                                                   else
@@ -18555,7 +18555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11001x0001xxxxx100010xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3552;
+                                                              return 3557;
                                                             }
                                                         }
                                                       else
@@ -18564,7 +18564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x11001x0001xxxxx1000x1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3548;
+                                                          return 3553;
                                                         }
                                                     }
                                                   else
@@ -18573,7 +18573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1100xxxxxxxxxxxx
                                                          fmlallbb.  */
-                                                      return 3553;
+                                                      return 3558;
                                                     }
                                                 }
                                               else
@@ -18582,7 +18582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0001xxxxx1x01xxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3554;
+                                                  return 3559;
                                                 }
                                             }
                                           else
@@ -18609,7 +18609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x0101xxxxx100010xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3550;
+                                                                  return 3555;
                                                                 }
                                                             }
                                                           else
@@ -18627,7 +18627,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx1100xxxxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3557;
+                                                          return 3562;
                                                         }
                                                     }
                                                   else
@@ -18636,7 +18636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0101xxxxx1x01xxxxxxxxxxxx
                                                          fmlalt.  */
-                                                      return 3560;
+                                                      return 3565;
                                                     }
                                                 }
                                               else
@@ -18669,7 +18669,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0011xxxxx100xx1xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3546;
+                                                      return 3551;
                                                     }
                                                 }
                                               else
@@ -18678,7 +18678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0011xxxxx110xxxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3555;
+                                                  return 3560;
                                                 }
                                             }
                                           else
@@ -18710,7 +18710,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx110xxxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3559;
+                                                      return 3564;
                                                     }
                                                 }
                                               else
@@ -18991,7 +18991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0xx1xxxxx001x10xxxxxxxxxx
                                                          bfmul.  */
-                                                      return 3332;
+                                                      return 3337;
                                                     }
                                                 }
                                               else
@@ -19009,7 +19009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x0xx1xxxxx001xxxxxxxxxxxxx
                                                  st1q.  */
-                                              return 3456;
+                                              return 3461;
                                             }
                                         }
                                       else
@@ -19024,7 +19024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1010xxxxxxxxxxxx
                                                          fmlalltb.  */
-                                                      return 3556;
+                                                      return 3561;
                                                     }
                                                   else
                                                     {
@@ -19032,7 +19032,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1011xxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3558;
+                                                      return 3563;
                                                     }
                                                 }
                                               else
@@ -19202,21 +19202,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00010xxxx111xxxxxxxxxxxxx
-                                                         st1b.  */
-                                                      return 1974;
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0001xxxxx111xx0xxxxxxxxxx
+                                                             fmmla.  */
+                                                          return 3121;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0001xxxxx111xx1xxxxxxxxxx
+                                                             fmmla.  */
+                                                          return 3119;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00011xxxx111xxxxxxxxxxxxx
-                                                         st2b.  */
-                                                      return 2013;
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x00010xxxx111xxxxxxxxxxxxx
+                                                             st1b.  */
+                                                          return 1974;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x00011xxxx111xxxxxxxxxxxxx
+                                                             st2b.  */
+                                                          return 2013;
+                                                        }
                                                     }
                                                 }
                                               else
@@ -19256,11 +19278,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 31) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         011001x0011xxxxx111xxxxxxxxxxxxx
-                                                         bfmmla.  */
-                                                      return 3102;
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0011xxxxx111xx0xxxxxxxxxx
+                                                             fmmla.  */
+                                                          return 3123;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0011xxxxx111xx1xxxxxxxxxx
+                                                             bfmmla.  */
+                                                          return 3102;
+                                                        }
                                                     }
                                                   else
                                                     {
@@ -19750,7 +19783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      000001x1001010x0001110xxxxxxxxxx
                                                                                      pmov.  */
-                                                                                  return 3433;
+                                                                                  return 3438;
                                                                                 }
                                                                               else
                                                                                 {
@@ -19758,7 +19791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      000001x1001011x0001110xxxxxxxxxx
                                                                                      pmov.  */
-                                                                                  return 3434;
+                                                                                  return 3439;
                                                                                 }
                                                                             }
                                                                           else
@@ -19767,7 +19800,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x101101xx0001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3435;
+                                                                              return 3440;
                                                                             }
                                                                         }
                                                                       else
@@ -19776,7 +19809,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              000001x11x101xx0001110xxxxxxxxxx
                                                                              pmov.  */
-                                                                          return 3436;
+                                                                          return 3441;
                                                                         }
                                                                     }
                                                                   else
@@ -19822,7 +19855,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x1001x10x1001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3437;
+                                                                              return 3442;
                                                                             }
                                                                           else
                                                                             {
@@ -19830,7 +19863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x1001x11x1001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3438;
+                                                                              return 3443;
                                                                             }
                                                                         }
                                                                       else
@@ -19839,7 +19872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              000001x1011x1xx1001110xxxxxxxxxx
                                                                              pmov.  */
-                                                                          return 3439;
+                                                                          return 3444;
                                                                         }
                                                                     }
                                                                   else
@@ -19848,7 +19881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          000001x11x1x1xx1001110xxxxxxxxxx
                                                                          pmov.  */
-                                                                      return 3440;
+                                                                      return 3445;
                                                                     }
                                                                 }
                                                             }
@@ -19867,7 +19900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1x01xxxxx001001xxxxxxxxxx
                                                                  dupq.  */
-                                                              return 3424;
+                                                              return 3429;
                                                             }
                                                           else
                                                             {
@@ -19875,7 +19908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1x11xxxxx001001xxxxxxxxxx
                                                                  extq.  */
-                                                              return 3428;
+                                                              return 3433;
                                                             }
                                                         }
                                                       else
@@ -19884,7 +19917,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x1xx1xxxxx001101xxxxxxxxxx
                                                              tbxq.  */
-                                                          return 3427;
+                                                          return 3432;
                                                         }
                                                     }
                                                   else
@@ -21487,7 +21520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101100xxxxxxxxxx
                                                              luti2.  */
-                                                          return 3518;
+                                                          return 3523;
                                                         }
                                                     }
                                                   else
@@ -21496,7 +21529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x10xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3519;
+                                                      return 3524;
                                                     }
                                                 }
                                               else
@@ -21509,7 +21542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101001xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3520;
+                                                          return 3525;
                                                         }
                                                       else
                                                         {
@@ -21517,7 +21550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101101xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3521;
+                                                          return 3526;
                                                         }
                                                     }
                                                   else
@@ -21526,7 +21559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x11xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3522;
+                                                      return 3527;
                                                     }
                                                 }
                                             }
@@ -22434,7 +22467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10x01xxxx001xxxxxxxxxxxxx
                                                          ld1w.  */
-                                                      return 3443;
+                                                      return 3448;
                                                     }
                                                   else
                                                     {
@@ -22442,7 +22475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11x01xxxx001xxxxxxxxxxxxx
                                                          ld1d.  */
-                                                      return 3441;
+                                                      return 3446;
                                                     }
                                                 }
                                             }
@@ -22499,7 +22532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x00xxxxxxxxxx
                                                                              f1cvt.  */
-                                                                          return 3480;
+                                                                          return 3485;
                                                                         }
                                                                       else
                                                                         {
@@ -22507,7 +22540,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x10xxxxxxxxxx
                                                                              bf1cvt.  */
-                                                                          return 3476;
+                                                                          return 3481;
                                                                         }
                                                                     }
                                                                   else
@@ -22518,7 +22551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x01xxxxxxxxxx
                                                                              f2cvt.  */
-                                                                          return 3481;
+                                                                          return 3486;
                                                                         }
                                                                       else
                                                                         {
@@ -22526,7 +22559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x11xxxxxxxxxx
                                                                              bf2cvt.  */
-                                                                          return 3477;
+                                                                          return 3482;
                                                                         }
                                                                     }
                                                                 }
@@ -22571,7 +22604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x00xxxxxxxxxx
                                                                          fcvtn.  */
-                                                                      return 3485;
+                                                                      return 3490;
                                                                     }
                                                                   else
                                                                     {
@@ -22579,7 +22612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x10xxxxxxxxxx
                                                                          bfcvtn.  */
-                                                                      return 3484;
+                                                                      return 3489;
                                                                     }
                                                                 }
                                                               else
@@ -22590,7 +22623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x01xxxxxxxxxx
                                                                          fcvtnb.  */
-                                                                      return 3486;
+                                                                      return 3491;
                                                                     }
                                                                   else
                                                                     {
@@ -22598,7 +22631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x11xxxxxxxxxx
                                                                          fcvtnt.  */
-                                                                      return 3487;
+                                                                      return 3492;
                                                                     }
                                                                 }
                                                             }
@@ -22659,7 +22692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x00xxxxxxxxxx
                                                                          f1cvtlt.  */
-                                                                      return 3482;
+                                                                      return 3487;
                                                                     }
                                                                   else
                                                                     {
@@ -22667,7 +22700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x10xxxxxxxxxx
                                                                          bf1cvtlt.  */
-                                                                      return 3478;
+                                                                      return 3483;
                                                                     }
                                                                 }
                                                               else
@@ -22678,7 +22711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x01xxxxxxxxxx
                                                                          f2cvtlt.  */
-                                                                      return 3483;
+                                                                      return 3488;
                                                                     }
                                                                   else
                                                                     {
@@ -22686,7 +22719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x11xxxxxxxxxx
                                                                          bf2cvtlt.  */
-                                                                      return 3479;
+                                                                      return 3484;
                                                                     }
                                                                 }
                                                             }
@@ -23510,7 +23543,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x100xxxxxx010xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 3448;
+                                                  return 3453;
                                                 }
                                               else
                                                 {
@@ -23539,7 +23572,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1110xxxxx010xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 3446;
+                                                      return 3451;
                                                     }
                                                 }
                                               else
@@ -23722,7 +23755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x0xxxxx100xxxxxxxxxxxxx
                                                      ld1w.  */
-                                                  return 3444;
+                                                  return 3449;
                                                 }
                                               else
                                                 {
@@ -23730,7 +23763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x0xxxxx100xxxxxxxxxxxxx
                                                      ld1d.  */
-                                                  return 3442;
+                                                  return 3447;
                                                 }
                                             }
                                         }
@@ -24056,7 +24089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10x01xxxx111xxxxxxxxxxxxx
                                                          ld3q.  */
-                                                      return 3451;
+                                                      return 3456;
                                                     }
                                                   else
                                                     {
@@ -24064,7 +24097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11x01xxxx111xxxxxxxxxxxxx
                                                          ld4q.  */
-                                                      return 3452;
+                                                      return 3457;
                                                     }
                                                 }
                                             }
@@ -24958,7 +24991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1x000xxxx111xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 3447;
+                                                      return 3452;
                                                     }
                                                   else
                                                     {
@@ -24976,7 +25009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x11100xxxx111xxxxxxxxxxxxx
                                                              st1d.  */
-                                                          return 3445;
+                                                          return 3450;
                                                         }
                                                     }
                                                 }
@@ -25259,7 +25292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x1xxxxx100xxxxxxxxxxxxx
                                                      ld3q.  */
-                                                  return 3454;
+                                                  return 3459;
                                                 }
                                               else
                                                 {
@@ -25267,7 +25300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x1xxxxx100xxxxxxxxxxxxx
                                                      ld4q.  */
-                                                  return 3455;
+                                                  return 3460;
                                                 }
                                             }
                                           else
@@ -25972,7 +26005,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x1010100xxxxxxxxxxxxxxxxxxx1xxxx
                                      bc.c.  */
-                                  return 3239;
+                                  return 3244;
                                 }
                               else
                                 {
@@ -26881,7 +26914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0000x1xxxxxxxxxx
                                                          cpyp.  */
-                                                      return 3167;
+                                                      return 3172;
                                                     }
                                                   else
                                                     {
@@ -26889,7 +26922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0000x1xxxxxxxxxx
                                                          cpye.  */
-                                                      return 3169;
+                                                      return 3174;
                                                     }
                                                 }
                                               else
@@ -26900,7 +26933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1000x1xxxxxxxxxx
                                                          cpyprn.  */
-                                                      return 3173;
+                                                      return 3178;
                                                     }
                                                   else
                                                     {
@@ -26908,7 +26941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1000x1xxxxxxxxxx
                                                          cpyern.  */
-                                                      return 3175;
+                                                      return 3180;
                                                     }
                                                 }
                                             }
@@ -26922,7 +26955,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0100x1xxxxxxxxxx
                                                          cpypwn.  */
-                                                      return 3170;
+                                                      return 3175;
                                                     }
                                                   else
                                                     {
@@ -26930,7 +26963,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0100x1xxxxxxxxxx
                                                          cpyewn.  */
-                                                      return 3172;
+                                                      return 3177;
                                                     }
                                                 }
                                               else
@@ -26941,7 +26974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1100x1xxxxxxxxxx
                                                          cpypn.  */
-                                                      return 3176;
+                                                      return 3181;
                                                     }
                                                   else
                                                     {
@@ -26949,7 +26982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1100x1xxxxxxxxxx
                                                          cpyen.  */
-                                                      return 3178;
+                                                      return 3183;
                                                     }
                                                 }
                                             }
@@ -26966,7 +26999,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0010x1xxxxxxxxxx
                                                          cpyprt.  */
-                                                      return 3191;
+                                                      return 3196;
                                                     }
                                                   else
                                                     {
@@ -26974,7 +27007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0010x1xxxxxxxxxx
                                                          cpyert.  */
-                                                      return 3193;
+                                                      return 3198;
                                                     }
                                                 }
                                               else
@@ -26985,7 +27018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1010x1xxxxxxxxxx
                                                          cpyprtrn.  */
-                                                      return 3197;
+                                                      return 3202;
                                                     }
                                                   else
                                                     {
@@ -26993,7 +27026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1010x1xxxxxxxxxx
                                                          cpyertrn.  */
-                                                      return 3199;
+                                                      return 3204;
                                                     }
                                                 }
                                             }
@@ -27007,7 +27040,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0110x1xxxxxxxxxx
                                                          cpyprtwn.  */
-                                                      return 3194;
+                                                      return 3199;
                                                     }
                                                   else
                                                     {
@@ -27015,7 +27048,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0110x1xxxxxxxxxx
                                                          cpyertwn.  */
-                                                      return 3196;
+                                                      return 3201;
                                                     }
                                                 }
                                               else
@@ -27026,7 +27059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1110x1xxxxxxxxxx
                                                          cpyprtn.  */
-                                                      return 3200;
+                                                      return 3205;
                                                     }
                                                   else
                                                     {
@@ -27034,7 +27067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1110x1xxxxxxxxxx
                                                          cpyertn.  */
-                                                      return 3202;
+                                                      return 3207;
                                                     }
                                                 }
                                             }
@@ -27054,7 +27087,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0001x1xxxxxxxxxx
                                                          cpypwt.  */
-                                                      return 3179;
+                                                      return 3184;
                                                     }
                                                   else
                                                     {
@@ -27062,7 +27095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0001x1xxxxxxxxxx
                                                          cpyewt.  */
-                                                      return 3181;
+                                                      return 3186;
                                                     }
                                                 }
                                               else
@@ -27073,7 +27106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1001x1xxxxxxxxxx
                                                          cpypwtrn.  */
-                                                      return 3185;
+                                                      return 3190;
                                                     }
                                                   else
                                                     {
@@ -27081,7 +27114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1001x1xxxxxxxxxx
                                                          cpyewtrn.  */
-                                                      return 3187;
+                                                      return 3192;
                                                     }
                                                 }
                                             }
@@ -27095,7 +27128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0101x1xxxxxxxxxx
                                                          cpypwtwn.  */
-                                                      return 3182;
+                                                      return 3187;
                                                     }
                                                   else
                                                     {
@@ -27103,7 +27136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0101x1xxxxxxxxxx
                                                          cpyewtwn.  */
-                                                      return 3184;
+                                                      return 3189;
                                                     }
                                                 }
                                               else
@@ -27114,7 +27147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1101x1xxxxxxxxxx
                                                          cpypwtn.  */
-                                                      return 3188;
+                                                      return 3193;
                                                     }
                                                   else
                                                     {
@@ -27122,7 +27155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1101x1xxxxxxxxxx
                                                          cpyewtn.  */
-                                                      return 3190;
+                                                      return 3195;
                                                     }
                                                 }
                                             }
@@ -27139,7 +27172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0011x1xxxxxxxxxx
                                                          cpypt.  */
-                                                      return 3203;
+                                                      return 3208;
                                                     }
                                                   else
                                                     {
@@ -27147,7 +27180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0011x1xxxxxxxxxx
                                                          cpyet.  */
-                                                      return 3205;
+                                                      return 3210;
                                                     }
                                                 }
                                               else
@@ -27158,7 +27191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1011x1xxxxxxxxxx
                                                          cpyptrn.  */
-                                                      return 3209;
+                                                      return 3214;
                                                     }
                                                   else
                                                     {
@@ -27166,7 +27199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1011x1xxxxxxxxxx
                                                          cpyetrn.  */
-                                                      return 3211;
+                                                      return 3216;
                                                     }
                                                 }
                                             }
@@ -27180,7 +27213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx0111x1xxxxxxxxxx
                                                          cpyptwn.  */
-                                                      return 3206;
+                                                      return 3211;
                                                     }
                                                   else
                                                     {
@@ -27188,7 +27221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx0111x1xxxxxxxxxx
                                                          cpyetwn.  */
-                                                      return 3208;
+                                                      return 3213;
                                                     }
                                                 }
                                               else
@@ -27199,7 +27232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110100xxxxxx1111x1xxxxxxxxxx
                                                          cpyptn.  */
-                                                      return 3212;
+                                                      return 3217;
                                                     }
                                                   else
                                                     {
@@ -27207,7 +27240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110110xxxxxx1111x1xxxxxxxxxx
                                                          cpyetn.  */
-                                                      return 3214;
+                                                      return 3219;
                                                     }
                                                 }
                                             }
@@ -27252,7 +27285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0000x1xxxxxxxxxx
                                                          cpym.  */
-                                                      return 3168;
+                                                      return 3173;
                                                     }
                                                   else
                                                     {
@@ -27260,7 +27293,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0000x1xxxxxxxxxx
                                                          setgp.  */
-                                                      return 3227;
+                                                      return 3232;
                                                     }
                                                 }
                                               else
@@ -27271,7 +27304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx1000x1xxxxxxxxxx
                                                          cpymrn.  */
-                                                      return 3174;
+                                                      return 3179;
                                                     }
                                                   else
                                                     {
@@ -27279,7 +27312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx1000x1xxxxxxxxxx
                                                          setge.  */
-                                                      return 3229;
+                                                      return 3234;
                                                     }
                                                 }
                                             }
@@ -27293,7 +27326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0100x1xxxxxxxxxx
                                                          cpymwn.  */
-                                                      return 3171;
+                                                      return 3176;
                                                     }
                                                   else
                                                     {
@@ -27301,7 +27334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0100x1xxxxxxxxxx
                                                          setgm.  */
-                                                      return 3228;
+                                                      return 3233;
                                                     }
                                                 }
                                               else
@@ -27310,7 +27343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx011101x1xxxxxx1100x1xxxxxxxxxx
                                                      cpymn.  */
-                                                  return 3177;
+                                                  return 3182;
                                                 }
                                             }
                                         }
@@ -27326,7 +27359,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0010x1xxxxxxxxxx
                                                          cpymrt.  */
-                                                      return 3192;
+                                                      return 3197;
                                                     }
                                                   else
                                                     {
@@ -27334,7 +27367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0010x1xxxxxxxxxx
                                                          setgpn.  */
-                                                      return 3233;
+                                                      return 3238;
                                                     }
                                                 }
                                               else
@@ -27345,7 +27378,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx1010x1xxxxxxxxxx
                                                          cpymrtrn.  */
-                                                      return 3198;
+                                                      return 3203;
                                                     }
                                                   else
                                                     {
@@ -27353,7 +27386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx1010x1xxxxxxxxxx
                                                          setgen.  */
-                                                      return 3235;
+                                                      return 3240;
                                                     }
                                                 }
                                             }
@@ -27367,7 +27400,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0110x1xxxxxxxxxx
                                                          cpymrtwn.  */
-                                                      return 3195;
+                                                      return 3200;
                                                     }
                                                   else
                                                     {
@@ -27375,7 +27408,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0110x1xxxxxxxxxx
                                                          setgmn.  */
-                                                      return 3234;
+                                                      return 3239;
                                                     }
                                                 }
                                               else
@@ -27384,7 +27417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx011101x1xxxxxx1110x1xxxxxxxxxx
                                                      cpymrtn.  */
-                                                  return 3201;
+                                                  return 3206;
                                                 }
                                             }
                                         }
@@ -27403,7 +27436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0001x1xxxxxxxxxx
                                                          cpymwt.  */
-                                                      return 3180;
+                                                      return 3185;
                                                     }
                                                   else
                                                     {
@@ -27411,7 +27444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0001x1xxxxxxxxxx
                                                          setgpt.  */
-                                                      return 3230;
+                                                      return 3235;
                                                     }
                                                 }
                                               else
@@ -27422,7 +27455,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx1001x1xxxxxxxxxx
                                                          cpymwtrn.  */
-                                                      return 3186;
+                                                      return 3191;
                                                     }
                                                   else
                                                     {
@@ -27430,7 +27463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx1001x1xxxxxxxxxx
                                                          setget.  */
-                                                      return 3232;
+                                                      return 3237;
                                                     }
                                                 }
                                             }
@@ -27444,7 +27477,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0101x1xxxxxxxxxx
                                                          cpymwtwn.  */
-                                                      return 3183;
+                                                      return 3188;
                                                     }
                                                   else
                                                     {
@@ -27452,7 +27485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0101x1xxxxxxxxxx
                                                          setgmt.  */
-                                                      return 3231;
+                                                      return 3236;
                                                     }
                                                 }
                                               else
@@ -27461,7 +27494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx011101x1xxxxxx1101x1xxxxxxxxxx
                                                      cpymwtn.  */
-                                                  return 3189;
+                                                  return 3194;
                                                 }
                                             }
                                         }
@@ -27477,7 +27510,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0011x1xxxxxxxxxx
                                                          cpymt.  */
-                                                      return 3204;
+                                                      return 3209;
                                                     }
                                                   else
                                                     {
@@ -27485,7 +27518,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0011x1xxxxxxxxxx
                                                          setgptn.  */
-                                                      return 3236;
+                                                      return 3241;
                                                     }
                                                 }
                                               else
@@ -27496,7 +27529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx1011x1xxxxxxxxxx
                                                          cpymtrn.  */
-                                                      return 3210;
+                                                      return 3215;
                                                     }
                                                   else
                                                     {
@@ -27504,7 +27537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx1011x1xxxxxxxxxx
                                                          setgetn.  */
-                                                      return 3238;
+                                                      return 3243;
                                                     }
                                                 }
                                             }
@@ -27518,7 +27551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110101xxxxxx0111x1xxxxxxxxxx
                                                          cpymtwn.  */
-                                                      return 3207;
+                                                      return 3212;
                                                     }
                                                   else
                                                     {
@@ -27526,7 +27559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx01110111xxxxxx0111x1xxxxxxxxxx
                                                          setgmtn.  */
-                                                      return 3237;
+                                                      return 3242;
                                                     }
                                                 }
                                               else
@@ -27535,7 +27568,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx011101x1xxxxxx1111x1xxxxxxxxxx
                                                      cpymtn.  */
-                                                  return 3213;
+                                                  return 3218;
                                                 }
                                             }
                                         }
@@ -27596,7 +27629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110100xxxxxxxx100xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3514;
+                                                      return 3519;
                                                     }
                                                 }
                                             }
@@ -27610,7 +27643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx000xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3516;
+                                                      return 3521;
                                                     }
                                                   else
                                                     {
@@ -27618,7 +27651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx100xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3517;
+                                                      return 3522;
                                                     }
                                                 }
                                               else
@@ -27627,7 +27660,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      0x001110110xxxxxxxxx00xxxxxxxxxx
                                                      luti2.  */
-                                                  return 3515;
+                                                  return 3520;
                                                 }
                                             }
                                         }
@@ -27743,7 +27776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3538;
+                                                              return 3543;
                                                             }
                                                           else
                                                             {
@@ -27751,7 +27784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlalltb.  */
-                                                              return 3540;
+                                                              return 3545;
                                                             }
                                                         }
                                                       else
@@ -27762,7 +27795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlallbt.  */
-                                                              return 3539;
+                                                              return 3544;
                                                             }
                                                           else
                                                             {
@@ -27770,7 +27803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlalltt.  */
-                                                              return 3541;
+                                                              return 3546;
                                                             }
                                                         }
                                                     }
@@ -27858,7 +27891,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn.  */
-                                                              return 3471;
+                                                              return 3476;
                                                             }
                                                           else
                                                             {
@@ -27866,7 +27899,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn2.  */
-                                                              return 3472;
+                                                              return 3477;
                                                             }
                                                         }
                                                       else
@@ -27875,7 +27908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x10xxxxxx11101xxxxxxxxxx
                                                              fcvtn.  */
-                                                          return 3473;
+                                                          return 3478;
                                                         }
                                                     }
                                                 }
@@ -28018,7 +28051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x00xxxxxx11111xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3530;
+                                                          return 3535;
                                                         }
                                                       else
                                                         {
@@ -28028,7 +28061,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x001110010xxxxxx11111xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3532;
+                                                              return 3537;
                                                             }
                                                           else
                                                             {
@@ -28038,7 +28071,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3534;
+                                                                  return 3539;
                                                                 }
                                                               else
                                                                 {
@@ -28046,7 +28079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalt.  */
-                                                                  return 3535;
+                                                                  return 3540;
                                                                 }
                                                             }
                                                         }
@@ -28320,7 +28353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx101110110xxxxx0x1111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3474;
+                                                          return 3479;
                                                         }
                                                     }
                                                 }
@@ -28395,11 +28428,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 12) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xx101110xx0xxxxx1x1011xxxxxxxxxx
-                                                     bfmmla.  */
-                                                  return 3111;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110000xxxxx1x1011xxxxxxxxxx
+                                                             fmmla.  */
+                                                          return 3122;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110100xxxxx1x1011xxxxxxxxxx
+                                                             fmmla.  */
+                                                          return 3120;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110x10xxxxx1x1011xxxxxxxxxx
+                                                         bfmmla.  */
+                                                      return 3111;
+                                                    }
                                                 }
                                               else
                                                 {
@@ -29712,7 +29767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl.  */
-                                                                      return 3467;
+                                                                      return 3472;
                                                                     }
                                                                   else
                                                                     {
@@ -29720,7 +29775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl2.  */
-                                                                      return 3468;
+                                                                      return 3473;
                                                                     }
                                                                 }
                                                               else
@@ -29731,7 +29786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl.  */
-                                                                      return 3463;
+                                                                      return 3468;
                                                                     }
                                                                   else
                                                                     {
@@ -29739,7 +29794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl2.  */
-                                                                      return 3464;
+                                                                      return 3469;
                                                                     }
                                                                 }
                                                             }
@@ -29753,7 +29808,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl.  */
-                                                                      return 3469;
+                                                                      return 3474;
                                                                     }
                                                                   else
                                                                     {
@@ -29761,7 +29816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl2.  */
-                                                                      return 3470;
+                                                                      return 3475;
                                                                     }
                                                                 }
                                                               else
@@ -29772,7 +29827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl.  */
-                                                                      return 3465;
+                                                                      return 3470;
                                                                     }
                                                                   else
                                                                     {
@@ -29780,7 +29835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl2.  */
-                                                                      return 3466;
+                                                                      return 3471;
                                                                     }
                                                                 }
                                                             }
@@ -31779,7 +31834,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx1011101x1xxxxx111111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3475;
+                                                          return 3480;
                                                         }
                                                     }
                                                 }
@@ -33627,7 +33682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111100xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3531;
+                                                      return 3536;
                                                     }
                                                   else
                                                     {
@@ -33657,7 +33712,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111101xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3533;
+                                                      return 3538;
                                                     }
                                                   else
                                                     {
@@ -33667,7 +33722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x000111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3536;
+                                                          return 3541;
                                                         }
                                                       else
                                                         {
@@ -33675,7 +33730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x100111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3537;
+                                                          return 3542;
                                                         }
                                                     }
                                                 }
@@ -34217,7 +34272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x010111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlallbb.  */
-                                                          return 3542;
+                                                          return 3547;
                                                         }
                                                       else
                                                         {
@@ -34225,7 +34280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x110111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3544;
+                                                          return 3549;
                                                         }
                                                     }
                                                   else
@@ -34256,7 +34311,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x0101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlallbt.  */
-                                                      return 3543;
+                                                      return 3548;
                                                     }
                                                   else
                                                     {
@@ -34264,7 +34319,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3545;
+                                                      return 3550;
                                                     }
                                                 }
                                             }
@@ -34986,56 +35041,56 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
   int value;
   switch (key)
     {
-    case 2558: value = 3349; break;    /* fclamp --> bfclamp.  */
-    case 3349: return NULL;            /* bfclamp --> NULL.  */
-    case 2559: value = 3350; break;    /* fclamp --> bfclamp.  */
-    case 3350: return NULL;            /* bfclamp --> NULL.  */
-    case 2572: value = 3333; break;    /* fmax --> bfmax.  */
-    case 3333: return NULL;            /* bfmax --> NULL.  */
-    case 3011: value = 3500; break;    /* bfscale --> fscale.  */
-    case 3500: return NULL;            /* fscale --> NULL.  */
-    case 2576: value = 3337; break;    /* fmaxnm --> bfmaxnm.  */
-    case 3337: return NULL;            /* bfmaxnm --> NULL.  */
-    case 2580: value = 3341; break;    /* fmin --> bfmin.  */
-    case 3341: return NULL;            /* bfmin --> NULL.  */
-    case 2584: value = 3345; break;    /* fminnm --> bfminnm.  */
-    case 3345: return NULL;            /* bfminnm --> NULL.  */
-    case 2574: value = 3335; break;    /* fmax --> bfmax.  */
-    case 3335: return NULL;            /* bfmax --> NULL.  */
-    case 3013: value = 3502; break;    /* bfscale --> fscale.  */
-    case 3502: return NULL;            /* fscale --> NULL.  */
-    case 2578: value = 3339; break;    /* fmaxnm --> bfmaxnm.  */
-    case 3339: return NULL;            /* bfmaxnm --> NULL.  */
-    case 2582: value = 3343; break;    /* fmin --> bfmin.  */
-    case 3343: return NULL;            /* bfmin --> NULL.  */
-    case 2586: value = 3347; break;    /* fminnm --> bfminnm.  */
-    case 3347: return NULL;            /* bfminnm --> NULL.  */
-    case 2573: value = 3334; break;    /* fmax --> bfmax.  */
-    case 3334: return NULL;            /* bfmax --> NULL.  */
-    case 3012: value = 3501; break;    /* bfscale --> fscale.  */
-    case 3501: return NULL;            /* fscale --> NULL.  */
-    case 2575: value = 3336; break;    /* fmax --> bfmax.  */
-    case 3336: return NULL;            /* bfmax --> NULL.  */
-    case 3014: value = 3503; break;    /* bfscale --> fscale.  */
-    case 3503: return NULL;            /* fscale --> NULL.  */
-    case 2577: value = 3338; break;    /* fmaxnm --> bfmaxnm.  */
-    case 3338: return NULL;            /* bfmaxnm --> NULL.  */
-    case 2579: value = 3340; break;    /* fmaxnm --> bfmaxnm.  */
-    case 3340: return NULL;            /* bfmaxnm --> NULL.  */
-    case 2581: value = 3342; break;    /* fmin --> bfmin.  */
-    case 3342: return NULL;            /* bfmin --> NULL.  */
-    case 2583: value = 3344; break;    /* fmin --> bfmin.  */
-    case 3344: return NULL;            /* bfmin --> NULL.  */
-    case 2585: value = 3346; break;    /* fminnm --> bfminnm.  */
-    case 3346: return NULL;            /* bfminnm --> NULL.  */
-    case 2587: value = 3348; break;    /* fminnm --> bfminnm.  */
-    case 3348: return NULL;            /* bfminnm --> NULL.  */
+    case 2558: value = 3354; break;    /* fclamp --> bfclamp.  */
+    case 3354: return NULL;            /* bfclamp --> NULL.  */
+    case 2559: value = 3355; break;    /* fclamp --> bfclamp.  */
+    case 3355: return NULL;            /* bfclamp --> NULL.  */
+    case 2572: value = 3338; break;    /* fmax --> bfmax.  */
+    case 3338: return NULL;            /* bfmax --> NULL.  */
+    case 3011: value = 3505; break;    /* bfscale --> fscale.  */
+    case 3505: return NULL;            /* fscale --> NULL.  */
+    case 2576: value = 3342; break;    /* fmaxnm --> bfmaxnm.  */
+    case 3342: return NULL;            /* bfmaxnm --> NULL.  */
+    case 2580: value = 3346; break;    /* fmin --> bfmin.  */
+    case 3346: return NULL;            /* bfmin --> NULL.  */
+    case 2584: value = 3350; break;    /* fminnm --> bfminnm.  */
+    case 3350: return NULL;            /* bfminnm --> NULL.  */
+    case 2574: value = 3340; break;    /* fmax --> bfmax.  */
+    case 3340: return NULL;            /* bfmax --> NULL.  */
+    case 3013: value = 3507; break;    /* bfscale --> fscale.  */
+    case 3507: return NULL;            /* fscale --> NULL.  */
+    case 2578: value = 3344; break;    /* fmaxnm --> bfmaxnm.  */
+    case 3344: return NULL;            /* bfmaxnm --> NULL.  */
+    case 2582: value = 3348; break;    /* fmin --> bfmin.  */
+    case 3348: return NULL;            /* bfmin --> NULL.  */
+    case 2586: value = 3352; break;    /* fminnm --> bfminnm.  */
+    case 3352: return NULL;            /* bfminnm --> NULL.  */
+    case 2573: value = 3339; break;    /* fmax --> bfmax.  */
+    case 3339: return NULL;            /* bfmax --> NULL.  */
+    case 3012: value = 3506; break;    /* bfscale --> fscale.  */
+    case 3506: return NULL;            /* fscale --> NULL.  */
+    case 2575: value = 3341; break;    /* fmax --> bfmax.  */
+    case 3341: return NULL;            /* bfmax --> NULL.  */
+    case 3014: value = 3508; break;    /* bfscale --> fscale.  */
+    case 3508: return NULL;            /* fscale --> NULL.  */
+    case 2577: value = 3343; break;    /* fmaxnm --> bfmaxnm.  */
+    case 3343: return NULL;            /* bfmaxnm --> NULL.  */
+    case 2579: value = 3345; break;    /* fmaxnm --> bfmaxnm.  */
+    case 3345: return NULL;            /* bfmaxnm --> NULL.  */
+    case 2581: value = 3347; break;    /* fmin --> bfmin.  */
+    case 3347: return NULL;            /* bfmin --> NULL.  */
+    case 2583: value = 3349; break;    /* fmin --> bfmin.  */
+    case 3349: return NULL;            /* bfmin --> NULL.  */
+    case 2585: value = 3351; break;    /* fminnm --> bfminnm.  */
+    case 3351: return NULL;            /* bfminnm --> NULL.  */
+    case 2587: value = 3353; break;    /* fminnm --> bfminnm.  */
+    case 3353: return NULL;            /* bfminnm --> NULL.  */
     case 12: value = 19; break;        /* add --> addg.  */
-    case 19: value = 3240; break;      /* addg --> smax.  */
-    case 3240: value = 3241; break;    /* smax --> umax.  */
-    case 3241: value = 3242; break;    /* umax --> smin.  */
-    case 3242: value = 3243; break;    /* smin --> umin.  */
-    case 3243: return NULL;            /* umin --> NULL.  */
+    case 19: value = 3245; break;      /* addg --> smax.  */
+    case 3245: value = 3246; break;    /* smax --> umax.  */
+    case 3246: value = 3247; break;    /* umax --> smin.  */
+    case 3247: value = 3248; break;    /* smin --> umin.  */
+    case 3248: return NULL;            /* umin --> NULL.  */
     case 16: value = 20; break;        /* sub --> subg.  */
     case 20: return NULL;              /* subg --> NULL.  */
     case 1023: value = 1027; break;    /* stnp --> stp.  */
@@ -35046,32 +35101,32 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 1028: return NULL;            /* ldp --> NULL.  */
     case 964: value = 2494; break;     /* prfm --> rprfm.  */
     case 2494: return NULL;            /* rprfm --> NULL.  */
-    case 2501: value = 3326; break;    /* fclamp --> bfclamp.  */
-    case 3326: return NULL;            /* bfclamp --> NULL.  */
-    case 1497: value = 3329; break;    /* fadd --> bfadd.  */
-    case 3329: return NULL;            /* bfadd --> NULL.  */
-    case 1564: value = 3330; break;    /* fmul --> bfmul.  */
-    case 3330: return NULL;            /* bfmul --> NULL.  */
-    case 1590: value = 3331; break;    /* fsub --> bfsub.  */
-    case 3331: return NULL;            /* bfsub --> NULL.  */
-    case 1555: value = 3322; break;    /* fmla --> bfmla.  */
-    case 3322: return NULL;            /* bfmla --> NULL.  */
-    case 1559: value = 3323; break;    /* fmls --> bfmls.  */
-    case 3323: return NULL;            /* bfmls --> NULL.  */
-    case 1498: value = 3317; break;    /* fadd --> bfadd.  */
-    case 3317: return NULL;            /* bfadd --> NULL.  */
-    case 1545: value = 3319; break;    /* fmaxnm --> bfmaxnm.  */
-    case 3319: return NULL;            /* bfmaxnm --> NULL.  */
-    case 1565: value = 3324; break;    /* fmul --> bfmul.  */
-    case 3324: return NULL;            /* bfmul --> NULL.  */
-    case 1543: value = 3318; break;    /* fmax --> bfmax.  */
-    case 3318: return NULL;            /* bfmax --> NULL.  */
-    case 1591: value = 3325; break;    /* fsub --> bfsub.  */
-    case 3325: return NULL;            /* bfsub --> NULL.  */
-    case 1551: value = 3321; break;    /* fminnm --> bfminnm.  */
-    case 3321: return NULL;            /* bfminnm --> NULL.  */
-    case 1549: value = 3320; break;    /* fmin --> bfmin.  */
-    case 3320: return NULL;            /* bfmin --> NULL.  */
+    case 2501: value = 3331; break;    /* fclamp --> bfclamp.  */
+    case 3331: return NULL;            /* bfclamp --> NULL.  */
+    case 1497: value = 3334; break;    /* fadd --> bfadd.  */
+    case 3334: return NULL;            /* bfadd --> NULL.  */
+    case 1564: value = 3335; break;    /* fmul --> bfmul.  */
+    case 3335: return NULL;            /* bfmul --> NULL.  */
+    case 1590: value = 3336; break;    /* fsub --> bfsub.  */
+    case 3336: return NULL;            /* bfsub --> NULL.  */
+    case 1555: value = 3327; break;    /* fmla --> bfmla.  */
+    case 3327: return NULL;            /* bfmla --> NULL.  */
+    case 1559: value = 3328; break;    /* fmls --> bfmls.  */
+    case 3328: return NULL;            /* bfmls --> NULL.  */
+    case 1498: value = 3322; break;    /* fadd --> bfadd.  */
+    case 3322: return NULL;            /* bfadd --> NULL.  */
+    case 1545: value = 3324; break;    /* fmaxnm --> bfmaxnm.  */
+    case 3324: return NULL;            /* bfmaxnm --> NULL.  */
+    case 1565: value = 3329; break;    /* fmul --> bfmul.  */
+    case 3329: return NULL;            /* bfmul --> NULL.  */
+    case 1543: value = 3323; break;    /* fmax --> bfmax.  */
+    case 3323: return NULL;            /* bfmax --> NULL.  */
+    case 1591: value = 3330; break;    /* fsub --> bfsub.  */
+    case 3330: return NULL;            /* bfsub --> NULL.  */
+    case 1551: value = 3326; break;    /* fminnm --> bfminnm.  */
+    case 3326: return NULL;            /* bfminnm --> NULL.  */
+    case 1549: value = 3325; break;    /* fmin --> bfmin.  */
+    case 3325: return NULL;            /* bfmin --> NULL.  */
     case 1588: value = 3010; break;    /* fscale --> bfscale.  */
     case 3010: return NULL;            /* bfscale --> NULL.  */
     case 863: value = 864; break;      /* xaflag --> axflag.  */
@@ -35420,10 +35475,10 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
     case 1188: value = 1237; break;    /* lduminl --> stuminl.  */
     case 1268: value = 1269; break;    /* movn --> mov.  */
     case 1270: value = 1271; break;    /* movz --> mov.  */
-    case 1285: value = 3251; break;    /* hint --> clrbhb.  */
+    case 1285: value = 3256; break;    /* hint --> clrbhb.  */
     case 1305: value = 1309; break;    /* dsb --> pssbb.  */
     case 1306: value = 1306; break;    /* dsb --> dsb.  */
-    case 1324: value = 3252; break;    /* sys --> trcit.  */
+    case 1324: value = 3257; break;    /* sys --> trcit.  */
     case 1325: value = 1330; break;    /* sysp --> tlbip.  */
     case 1331: value = 1331; break;    /* wfet --> wfet.  */
     case 1332: value = 1332; break;    /* wfit --> wfit.  */
@@ -35611,7 +35666,7 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
     case 1237: value = 1188; break;    /* stuminl --> lduminl.  */
     case 1269: value = 1268; break;    /* mov --> movn.  */
     case 1271: value = 1270; break;    /* mov --> movz.  */
-    case 3251: value = 1351; break;    /* clrbhb --> autibsp.  */
+    case 3256: value = 1351; break;    /* clrbhb --> autibsp.  */
     case 1351: value = 1350; break;    /* autibsp --> autibz.  */
     case 1350: value = 1349; break;    /* autibz --> autiasp.  */
     case 1349: value = 1348; break;    /* autiasp --> autiaz.  */
@@ -35642,7 +35697,7 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
     case 1309: value = 1308; break;    /* pssbb --> ssbb.  */
     case 1308: value = 1307; break;    /* ssbb --> dfb.  */
     case 1307: value = 1305; break;    /* dfb --> dsb.  */
-    case 3252: value = 1337; break;    /* trcit --> brb.  */
+    case 3257: value = 1337; break;    /* trcit --> brb.  */
     case 1337: value = 1336; break;    /* brb --> cosp.  */
     case 1336: value = 1335; break;    /* cosp --> cpp.  */
     case 1335: value = 1334; break;    /* cpp --> dvp.  */
index 1942af78618d83fbf70fc9f8b9c0f3f01e302687..b34fcca2de14c6356034422979eda708b15fe4f3 100644 (file)
@@ -2850,6 +2850,16 @@ static const aarch64_feature_set aarch64_feature_sme2p1 =
   AARCH64_FEATURE (SME2p1);
 static const aarch64_feature_set aarch64_feature_sve2p1 =
   AARCH64_FEATURE (SVE2p1);
+static const aarch64_feature_set aarch64_feature_sve_f16f32mm =
+  AARCH64_FEATURE (SVE_F16F32MM);
+static const aarch64_feature_set aarch64_feature_f8f32mm =
+  AARCH64_FEATURE (F8F32MM);
+static const aarch64_feature_set aarch64_feature_f8f32mm_sve2 =
+  AARCH64_FEATURES (2, SVE2, F8F32MM);
+static const aarch64_feature_set aarch64_feature_f8f16mm =
+  AARCH64_FEATURE (F8F16MM);
+static const aarch64_feature_set aarch64_feature_f8f16mm_sve2 =
+  AARCH64_FEATURES (2, SVE2, F8F16MM);
 static const aarch64_feature_set aarch64_feature_rcpc3 =
   AARCH64_FEATURE (RCPC3);
 static const aarch64_feature_set aarch64_feature_cpa =
@@ -2977,6 +2987,11 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
 #define SME_B16B16  &aarch64_feature_sme_b16b16
 #define SME2p1  &aarch64_feature_sme2p1
 #define SVE2p1  &aarch64_feature_sve2p1
+#define SVE_F16F32MM &aarch64_feature_sve_f16f32mm
+#define F8F32MM  &aarch64_feature_f8f32mm
+#define F8F32MM_SVE2  &aarch64_feature_f8f32mm_sve2
+#define F8F16MM  &aarch64_feature_f8f16mm
+#define F8F16MM_SVE2  &aarch64_feature_f8f16mm_sve2
 #define RCPC3    &aarch64_feature_rcpc3
 #define CPA      &aarch64_feature_cpa
 #define CPA_SVE   &aarch64_feature_cpa_sve
@@ -3079,6 +3094,16 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
 #define SME2p1_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
   { NAME, OPCODE, MASK, CLASS, OP, SME2p1, OPS, QUALS, \
     FLAGS | F_STRICT, 0, TIED, NULL }
+#define SVE_F16F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, OP, SVE_F16F32MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, OP, F8F32MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F32MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, OP, F8F32MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F16MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, OP, F8F16MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F16MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, OP, F8F16MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define SVE2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \
   { NAME, OPCODE, MASK, CLASS, OP, SVE2, OPS, QUALS, \
     FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL }
@@ -6594,6 +6619,15 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   BFLOAT16_INSN ("bfmlalt", 0x4fc0f000, 0xffc0f400, bfloat16, OP3 (Vd, Vn, Em16), QL_V3BFML4S, 0),
   BFLOAT16_INSN ("bfmlalb", 0x0fc0f000, 0xffc0f400, bfloat16, OP3 (Vd, Vn, Em16), QL_V3BFML4S, 0),
 
+  /* SVE_F16F32 Matrix Multiply-Accumulate. */
+  SVE_F16F32MM_INSN ("fmmla", 0x6420e400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0),
+  /* F8F32 Matrix Multiply-Accumulate. */
+  F8F32MM_INSN ("fmmla", 0x6e80ec00, 0xffe0fc00, asimdmisc, 0, OP3 (Vd, Vn, Vm), QL_V3FMLL4S, 0),
+  F8F32MM_SVE2_INSN ("fmmla", 0x6420e000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0),
+  /* F8F16 Matrix Multiply-Accumulate. */
+  F8F16MM_INSN ("fmmla", 0x6e00ec00, 0xffe0fc00, asimdmisc, 0, OP3 (Vd, Vn, Vm), QL_V3FML8H, 0),
+  F8F16MM_SVE2_INSN ("fmmla", 0x6460e000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_H_B, 0),
+
   /* cpyfp cpyfprn cpyfpwn cpyfpn
      cpyfm cpyfmrn cpyfmwn cpyfmn
      cpyfe cpyfern cpyfewn cpyfen