]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Add support for FEAT_SME_F16F16 fcvt and fcvtl instructions.
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Fri, 10 Jan 2025 14:07:19 +0000 (14:07 +0000)
committerSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Fri, 10 Jan 2025 14:08:21 +0000 (14:08 +0000)
This patch adds support for FEAT_SME_F16F16 instructions fcvt and fcvtl,
which are available on passing command line flags +sme-f16f16 and the
spec is available here[1].
[1]: https://developer.arm.com/documentation/ddi0602/2024-06/SME-Instructions?lang=en

gas/testsuite/gas/aarch64/sme-f16f16-4-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme-f16f16-4-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme-f16f16-4-bad.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme-f16f16-4.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme-f16f16-4.s [new file with mode: 0644]
opcodes/aarch64-dis-2.c
opcodes/aarch64-tbl.h

diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.d b/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.d
new file mode 100644 (file)
index 0000000..2ff075c
--- /dev/null
@@ -0,0 +1,4 @@
+#name: Test of invalid FEAT_SME_F16F16 fcvt and fcvtl instructions.
+#as: -march=armv8-a+sme-f16f16
+#source: sme-f16f16-4-bad.s
+#error_output: sme-f16f16-4-bad.l
diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.l b/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.l
new file mode 100644 (file)
index 0000000..95d1b36
--- /dev/null
@@ -0,0 +1,27 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `fcvt { ?z0.d-z1.d ?},z0.h'
+.*: Info:    did you mean this\?
+.*: Info:      fcvt { ?z0.s-z1.s ?}, z0.h
+.*: Error: start register out of range at operand 1 -- `fcvt { ?z29.s-z30.s ?},z0.h'
+.*: Error: operand mismatch -- `fcvt { ?z0.s-z1.s ?},z31.d'
+.*: Info:    did you mean this\?
+.*: Info:      fcvt { ?z0.s-z1.s ?}, z31.h
+.*: Error: start register out of range at operand 1 -- `fcvt { ?z15.s-z16.s ?},z31.h'
+.*: Error: operand mismatch -- `fcvt { ?z14.s-z15.s ?},z15.b'
+.*: Info:    did you mean this\?
+.*: Info:      fcvt { ?z14.s-z15.s ?}, z15.h
+.*: Error: type mismatch in vector register list at operand 1 -- `fcvt { ?z6.s,z7.b ?},z7.h'
+.*: Error: missing type suffix at operand 1 -- `fcvt { ?z2-z3 ?},z3.h'
+.*: Error: operand mismatch -- `fcvtl { ?z0.d-z1.d ?},z0.h'
+.*: Info:    did you mean this\?
+.*: Info:      fcvtl { ?z0.s-z1.s ?}, z0.h
+.*: Error: start register out of range at operand 1 -- `fcvtl { ?z29.s-z30.s ?},z0.h'
+.*: Error: operand mismatch -- `fcvtl { ?z0.s-z1.s ?},z31.d'
+.*: Info:    did you mean this\?
+.*: Info:      fcvtl { ?z0.s-z1.s ?}, z31.h
+.*: Error: start register out of range at operand 1 -- `fcvtl { ?z15.s-z16.s ?},z31.h'
+.*: Error: operand mismatch -- `fcvtl { ?z14.s-z15.s ?},z15.b'
+.*: Info:    did you mean this\?
+.*: Info:      fcvtl { ?z14.s-z15.s ?}, z15.h
+.*: Error: type mismatch in vector register list at operand 1 -- `fcvtl { ?z6.s,z7.b ?},z7.h'
+.*: Error: missing type suffix at operand 1 -- `fcvtl { ?z2-z3 ?},z3.h'
diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.s b/gas/testsuite/gas/aarch64/sme-f16f16-4-bad.s
new file mode 100644 (file)
index 0000000..046a7de
--- /dev/null
@@ -0,0 +1,18 @@
+/*  FCVT (widening).  */
+fcvt {z0.d - z1.d}, z0.h
+fcvt {z29.s - z30.s}, z0.h
+fcvt {z0.s - z1.s}, z31.d
+fcvt {z15.s - z16.s}, z31.h
+fcvt {z14.s - z15.s}, z15.b
+fcvt {z6.s, z7.b}, z7.h
+fcvt {z2 - z3}, z3.h
+
+/* FCVTL.  */
+fcvtl {z0.d - z1.d}, z0.h
+fcvtl {z29.s - z30.s}, z0.h
+fcvtl {z0.s - z1.s}, z31.d
+fcvtl {z15.s - z16.s}, z31.h
+fcvtl {z14.s - z15.s}, z15.b
+fcvtl {z6.s, z7.b}, z7.h
+fcvtl {z2 - z3}, z3.h
+
diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-4.d b/gas/testsuite/gas/aarch64/sme-f16f16-4.d
new file mode 100644 (file)
index 0000000..2fcfb2c
--- /dev/null
@@ -0,0 +1,24 @@
+#name: Test of FEAT_SME_F16F16 fcvt and fcvtl instructions.
+#as: -march=armv8-a+sme-f16f16
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:    c1a0e000        fcvt    { ?z0.s-z1.s ?}, z0.h
+.*:    c1a0e01e        fcvt    { ?z30.s-z31.s ?}, z0.h
+.*:    c1a0e3e0        fcvt    { ?z0.s-z1.s ?}, z31.h
+.*:    c1a0e3fe        fcvt    { ?z30.s-z31.s ?}, z31.h
+.*:    c1a0e1ee        fcvt    { ?z14.s-z15.s ?}, z15.h
+.*:    c1a0e0e6        fcvt    { ?z6.s-z7.s ?}, z7.h
+.*:    c1a0e062        fcvt    { ?z2.s-z3.s ?}, z3.h
+.*:    c1a0e001        fcvtl   { ?z0.s-z1.s ?}, z0.h
+.*:    c1a0e01f        fcvtl   { ?z30.s-z31.s ?}, z0.h
+.*:    c1a0e3e1        fcvtl   { ?z0.s-z1.s ?}, z31.h
+.*:    c1a0e3ff        fcvtl   { ?z30.s-z31.s ?}, z31.h
+.*:    c1a0e1ef        fcvtl   { ?z14.s-z15.s ?}, z15.h
+.*:    c1a0e0e7        fcvtl   { ?z6.s-z7.s ?}, z7.h
+.*:    c1a0e063        fcvtl   { ?z2.s-z3.s ?}, z3.h
diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-4.s b/gas/testsuite/gas/aarch64/sme-f16f16-4.s
new file mode 100644 (file)
index 0000000..26e76c6
--- /dev/null
@@ -0,0 +1,17 @@
+/*  FCVT (widening).  */
+fcvt {z0.s - z1.s}, z0.h
+fcvt {z30.s - z31.s}, z0.h
+fcvt {z0.s - z1.s}, z31.h
+fcvt {z30.s - z31.s}, z31.h
+fcvt {z14.s - z15.s}, z15.h
+fcvt {z6.s - z7.s}, z7.h
+fcvt {z2.s - z3.s}, z3.h
+
+/* FCVTL.  */
+fcvtl {z0.s - z1.s}, z0.h
+fcvtl {z30.s - z31.s}, z0.h
+fcvtl {z0.s - z1.s}, z31.h
+fcvtl {z30.s - z31.s}, z31.h
+fcvtl {z14.s - z15.s}, z15.h
+fcvtl {z6.s - z7.s}, z7.h
+fcvtl {z2.s - z3.s}, z3.h
index ad4e8a9624d2d249a11299c1cc3ce0056f3eb3b3..611c934848522b359b310743b6e014c28f919f9f 100644 (file)
@@ -271,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000000x000101x00xxxxxxxxxxxxxx
                                                                  luti4.  */
-                                                              return 3442;
+                                                              return 3444;
                                                             }
                                                           else
                                                             {
@@ -310,7 +310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x1000000xx01101x00xxxxxxxxxxxxxx
                                                              luti4.  */
-                                                          return 3443;
+                                                          return 3445;
                                                         }
                                                       else
                                                         {
@@ -542,7 +542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000000010011x1xxxx00xxxxxxxxxx
                                                                      movt.  */
-                                                                  return 3444;
+                                                                  return 3446;
                                                                 }
                                                             }
                                                           else
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx00xxx
                                                  fmopa.  */
-                                              return 3510;
+                                              return 3512;
                                             }
                                           else
                                             {
@@ -1374,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx000000101xxxxxxxxxxxxxxxx01xxx
                                                  fmopa.  */
-                                              return 3509;
+                                              return 3511;
                                             }
                                         }
                                       else
@@ -1722,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xx0000010001xxxx1xx0xxxxx1000xxx
                                                                      fmlall.  */
-                                                                  return 3503;
+                                                                  return 3505;
                                                                 }
                                                             }
                                                         }
@@ -1772,7 +1772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000010001xxxx1xx1xxxxx100xxxx
                                                                  fdot.  */
-                                                              return 3488;
+                                                              return 3490;
                                                             }
                                                         }
                                                     }
@@ -2179,7 +2179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10000011001xxxxxxx0xxxxxx100xxx
                                                                  fmlall.  */
-                                                              return 3502;
+                                                              return 3504;
                                                             }
                                                         }
                                                     }
@@ -2284,7 +2284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx10xxxx
                                                              fmlal.  */
-                                                          return 3495;
+                                                          return 3497;
                                                         }
                                                     }
                                                 }
@@ -2468,7 +2468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x10000011001xxxxxxx1xxxxxx11xxxx
                                                              fmlal.  */
-                                                          return 3494;
+                                                          return 3496;
                                                         }
                                                     }
                                                 }
@@ -2510,7 +2510,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx0000010100xxxxxxxxxxxxxxxx0xxx
                                                  fmlall.  */
-                                              return 3501;
+                                              return 3503;
                                             }
                                           else
                                             {
@@ -2878,7 +2878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx0xx0xxxxxx111xxx
                                                              fdot.  */
-                                                          return 3481;
+                                                          return 3483;
                                                         }
                                                       else
                                                         {
@@ -2947,7 +2947,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx000010101xxxx1xx0xxxxxx001xxx
                                                              fdot.  */
-                                                          return 3482;
+                                                          return 3484;
                                                         }
                                                       else
                                                         {
@@ -3026,7 +3026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xx0000011100xxxxxxx0xxxxxxx0xxxx
                                                      fmlal.  */
-                                                  return 3493;
+                                                  return 3495;
                                                 }
                                               else
                                                 {
@@ -3081,7 +3081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xx0000011101xxxx0xx01xxxxx00xxxx
                                                                  fvdotb.  */
-                                                              return 3512;
+                                                              return 3514;
                                                             }
                                                           else
                                                             {
@@ -3099,7 +3099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx0xxxxxx10xxxx
                                                          fdot.  */
-                                                      return 3487;
+                                                      return 3489;
                                                     }
                                                 }
                                             }
@@ -3173,7 +3173,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx0000011101xxxxxxx1xxxxxx10xxxx
                                                          fvdot.  */
-                                                      return 3511;
+                                                      return 3513;
                                                     }
                                                 }
                                             }
@@ -3253,7 +3253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx000001110xxxxx0xx01xxxxxx1xxxx
                                                          fvdott.  */
-                                                      return 3513;
+                                                      return 3515;
                                                     }
                                                   else
                                                     {
@@ -3430,7 +3430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx00xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3507;
+                                                                              return 3509;
                                                                             }
                                                                           else
                                                                             {
@@ -3438,7 +3438,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x10000011x1xxxx10xx000xxxx10000x
                                                                                  fmlall.  */
-                                                                              return 3508;
+                                                                              return 3510;
                                                                             }
                                                                         }
                                                                     }
@@ -3493,7 +3493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3505;
+                                                                  return 3507;
                                                                 }
                                                               else
                                                                 {
@@ -3501,7 +3501,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx000xxxxx00x1x
                                                                      fmlall.  */
-                                                                  return 3506;
+                                                                  return 3508;
                                                                 }
                                                             }
                                                         }
@@ -3555,7 +3555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3491;
+                                                                      return 3493;
                                                                     }
                                                                   else
                                                                     {
@@ -3563,7 +3563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx100xxx
                                                                          fdot.  */
-                                                                      return 3492;
+                                                                      return 3494;
                                                                     }
                                                                 }
                                                             }
@@ -3625,7 +3625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx00xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3499;
+                                                                              return 3501;
                                                                             }
                                                                           else
                                                                             {
@@ -3633,7 +3633,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxxx10xx010xxxx1000xx
                                                                                  fmlal.  */
-                                                                              return 3500;
+                                                                              return 3502;
                                                                             }
                                                                         }
                                                                     }
@@ -3688,7 +3688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx10xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3497;
+                                                                  return 3499;
                                                                 }
                                                               else
                                                                 {
@@ -3696,7 +3696,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx010xxxxx001xx
                                                                      fmlal.  */
-                                                                  return 3498;
+                                                                  return 3500;
                                                                 }
                                                             }
                                                         }
@@ -3765,7 +3765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x1000001xx11xxxx0xx001xxxxx000xx
                                                                      fmlall.  */
-                                                                  return 3504;
+                                                                  return 3506;
                                                                 }
                                                             }
                                                           else
@@ -3848,7 +3848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x1000001xx11xxxx0xx011xxxxx00xxx
                                                                  fmlal.  */
-                                                              return 3496;
+                                                              return 3498;
                                                             }
                                                         }
                                                       else
@@ -3881,7 +3881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x10000011x10x1x00xx111xxxxx00xxx
                                                                              fadd.  */
-                                                                          return 3445;
+                                                                          return 3447;
                                                                         }
                                                                     }
                                                                   else
@@ -3900,7 +3900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x10000011x10x1x10xx111xxxxx00xxx
                                                                              fadd.  */
-                                                                          return 3446;
+                                                                          return 3448;
                                                                         }
                                                                     }
                                                                 }
@@ -4036,7 +4036,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx00xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3485;
+                                                                      return 3487;
                                                                     }
                                                                   else
                                                                     {
@@ -4044,7 +4044,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x10000011x1xxxx10xx100xxxx110xxx
                                                                          fdot.  */
-                                                                      return 3486;
+                                                                      return 3488;
                                                                     }
                                                                 }
                                                             }
@@ -4337,7 +4337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x10xxxx0xx100xxxxx01xxx
                                                                      fdot.  */
-                                                                  return 3489;
+                                                                  return 3491;
                                                                 }
                                                               else
                                                                 {
@@ -4345,7 +4345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x11xxxx0xx100xxxxx01xxx
                                                                      fdot.  */
-                                                                  return 3490;
+                                                                  return 3492;
                                                                 }
                                                             }
                                                           else
@@ -4648,7 +4648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x10000011x10x1x00xx111xxxxx01xxx
                                                                              fsub.  */
-                                                                          return 3447;
+                                                                          return 3449;
                                                                         }
                                                                     }
                                                                   else
@@ -4667,7 +4667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              x10000011x10x1x10xx111xxxxx01xxx
                                                                              fsub.  */
-                                                                          return 3448;
+                                                                          return 3450;
                                                                         }
                                                                     }
                                                                 }
@@ -4741,7 +4741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x10xxxx0xx100xxxxx11xxx
                                                                      fdot.  */
-                                                                  return 3483;
+                                                                  return 3485;
                                                                 }
                                                               else
                                                                 {
@@ -4749,7 +4749,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      x10000010x11xxxx0xx100xxxxx11xxx
                                                                      fdot.  */
-                                                                  return 3484;
+                                                                  return 3486;
                                                                 }
                                                             }
                                                           else
@@ -5304,7 +5304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx101000xx1x0xxxx0
                                                                          fscale.  */
-                                                                      return 3419;
+                                                                      return 3421;
                                                                     }
                                                                 }
                                                               else
@@ -5397,50 +5397,94 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               if (((word >> 17) & 0x1) == 0)
                                                                 {
-                                                                  if (((word >> 5) & 0x1) == 0)
+                                                                  if (((word >> 18) & 0x1) == 0)
                                                                     {
-                                                                      if (((word >> 18) & 0x1) == 0)
+                                                                      if (((word >> 19) & 0x1) == 0)
                                                                         {
-                                                                          if (((word >> 19) & 0x1) == 0)
+                                                                          if (((word >> 22) & 0x1) == 0)
                                                                             {
-                                                                              if (((word >> 22) & 0x1) == 0)
+                                                                              if (((word >> 23) & 0x1) == 0)
                                                                                 {
-                                                                                  /* 33222222222211111111110000000000
-                                                                                     10987654321098765432109876543210
-                                                                                     x1000001x01x0000111000xxxx0xxxxx
-                                                                                     fcvt.  */
-                                                                                  return 2534;
+                                                                                  if (((word >> 5) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001001x0000111000xxxx0xxxxx
+                                                                                         fcvt.  */
+                                                                                      return 2534;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001001x0000111000xxxx1xxxxx
+                                                                                         fcvtn.  */
+                                                                                      return 2535;
+                                                                                    }
                                                                                 }
                                                                               else
                                                                                 {
-                                                                                  /* 33222222222211111111110000000000
-                                                                                     10987654321098765432109876543210
-                                                                                     x1000001x11x0000111000xxxx0xxxxx
-                                                                                     bfcvt.  */
-                                                                                  return 2502;
+                                                                                  if (((word >> 0) & 0x1) == 0)
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001101x0000111000xxxxxxxxx0
+                                                                                         fcvt.  */
+                                                                                      return 3339;
+                                                                                    }
+                                                                                  else
+                                                                                    {
+                                                                                      /* 33222222222211111111110000000000
+                                                                                         10987654321098765432109876543210
+                                                                                         x1000001101x0000111000xxxxxxxxx1
+                                                                                         fcvtl.  */
+                                                                                      return 3340;
+                                                                                    }
                                                                                 }
                                                                             }
                                                                           else
                                                                             {
-                                                                              if (((word >> 20) & 0x1) == 0)
+                                                                              if (((word >> 5) & 0x1) == 0)
                                                                                 {
                                                                                   /* 33222222222211111111110000000000
                                                                                      10987654321098765432109876543210
-                                                                                     x1000001xx101000111000xxxx0xxxxx
-                                                                                     frintn.  */
-                                                                                  return 2594;
+                                                                                     x1000001x11x0000111000xxxx0xxxxx
+                                                                                     bfcvt.  */
+                                                                                  return 2502;
                                                                                 }
                                                                               else
                                                                                 {
                                                                                   /* 33222222222211111111110000000000
                                                                                      10987654321098765432109876543210
-                                                                                     x1000001xx111000111000xxxx0xxxxx
-                                                                                     frintn.  */
-                                                                                  return 2595;
+                                                                                     x1000001x11x0000111000xxxx1xxxxx
+                                                                                     bfcvtn.  */
+                                                                                  return 2503;
                                                                                 }
                                                                             }
                                                                         }
                                                                       else
+                                                                        {
+                                                                          if (((word >> 20) & 0x1) == 0)
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx101000111000xxxxxxxxxx
+                                                                                 frintn.  */
+                                                                              return 2594;
+                                                                            }
+                                                                          else
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 x1000001xx111000111000xxxxxxxxxx
+                                                                                 frintn.  */
+                                                                              return 2595;
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      if (((word >> 5) & 0x1) == 0)
                                                                         {
                                                                           if (((word >> 19) & 0x1) == 0)
                                                                             {
@@ -5452,7 +5496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x0100100111000xxxx0xxxxx
                                                                                          fcvt.  */
-                                                                                      return 3416;
+                                                                                      return 3418;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5460,7 +5504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x1000001x1100100111000xxxx0xxxxx
                                                                                          bfcvt.  */
-                                                                                      return 3411;
+                                                                                      return 3413;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5469,7 +5513,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      x1000001xx110100111000xxxx0xxxxx
                                                                                      fcvt.  */
-                                                                                  return 3417;
+                                                                                  return 3419;
                                                                                 }
                                                                             }
                                                                           else
@@ -5492,35 +5536,13 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                 }
                                                                             }
                                                                         }
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      if (((word >> 18) & 0x1) == 0)
-                                                                        {
-                                                                          if (((word >> 22) & 0x1) == 0)
-                                                                            {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001x01xx000111000xxxx1xxxxx
-                                                                                 fcvtn.  */
-                                                                              return 2535;
-                                                                            }
-                                                                          else
-                                                                            {
-                                                                              /* 33222222222211111111110000000000
-                                                                                 10987654321098765432109876543210
-                                                                                 x1000001x11xx000111000xxxx1xxxxx
-                                                                                 bfcvtn.  */
-                                                                              return 2503;
-                                                                            }
-                                                                        }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                              x1000001xx1xx100111000xxxx1xxxxx
                                                                              fcvtn.  */
-                                                                          return 3418;
+                                                                          return 3420;
                                                                         }
                                                                     }
                                                                 }
@@ -5603,7 +5625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010010x110111000xxxxxxxxx0
                                                                                          f1cvt.  */
-                                                                                      return 3412;
+                                                                                      return 3414;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5611,7 +5633,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011010x110111000xxxxxxxxx0
                                                                                          f2cvt.  */
-                                                                                      return 3413;
+                                                                                      return 3415;
                                                                                     }
                                                                                 }
                                                                               else
@@ -5622,7 +5644,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000010110x110111000xxxxxxxxx0
                                                                                          bf1cvt.  */
-                                                                                      return 3407;
+                                                                                      return 3409;
                                                                                     }
                                                                                   else
                                                                                     {
@@ -5630,7 +5652,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                          10987654321098765432109876543210
                                                                                          x10000011110x110111000xxxxxxxxx0
                                                                                          bf2cvt.  */
-                                                                                      return 3408;
+                                                                                      return 3410;
                                                                                     }
                                                                                 }
                                                                             }
@@ -5665,7 +5687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001001xxx10111000xxxxxxxxx1
                                                                                  f1cvtl.  */
-                                                                              return 3414;
+                                                                              return 3416;
                                                                             }
                                                                           else
                                                                             {
@@ -5673,7 +5695,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001101xxx10111000xxxxxxxxx1
                                                                                  f2cvtl.  */
-                                                                              return 3415;
+                                                                              return 3417;
                                                                             }
                                                                         }
                                                                       else
@@ -5684,7 +5706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001011xxx10111000xxxxxxxxx1
                                                                                  bf1cvtl.  */
-                                                                              return 3409;
+                                                                              return 3411;
                                                                             }
                                                                           else
                                                                             {
@@ -5692,7 +5714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  x1000001111xxx10111000xxxxxxxxx1
                                                                                  bf2cvtl.  */
-                                                                              return 3410;
+                                                                              return 3412;
                                                                             }
                                                                         }
                                                                     }
@@ -5961,7 +5983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1100xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3421;
+                                                                      return 3423;
                                                                     }
                                                                 }
                                                               else
@@ -6137,7 +6159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1010xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3420;
+                                                                      return 3422;
                                                                     }
                                                                   else
                                                                     {
@@ -6145,7 +6167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1000001xx1xxxxx1x1110xx100xxxx0
                                                                          fscale.  */
-                                                                      return 3422;
+                                                                      return 3424;
                                                                     }
                                                                 }
                                                             }
@@ -11313,7 +11335,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0x11010000xxxxxxx1xxxxxxxxxxxxx
                                              addpt.  */
-                                          return 3423;
+                                          return 3425;
                                         }
                                       else
                                         {
@@ -11321,7 +11343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x1x11010000xxxxxxx1xxxxxxxxxxxxx
                                              subpt.  */
-                                          return 3424;
+                                          return 3426;
                                         }
                                     }
                                 }
@@ -12239,7 +12261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
                                  maddpt.  */
-                              return 3425;
+                              return 3427;
                             }
                           else
                             {
@@ -12247,7 +12269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
                                  msubpt.  */
-                              return 3426;
+                              return 3428;
                             }
                         }
                     }
@@ -12332,7 +12354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000100000xxxxxxxxxxxxx
                                                                      addpt.  */
-                                                                  return 3427;
+                                                                  return 3429;
                                                                 }
                                                               else
                                                                 {
@@ -12439,7 +12461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000101000xxxxxxxxxxxxx
                                                                      subpt.  */
-                                                                  return 3429;
+                                                                  return 3431;
                                                                 }
                                                               else
                                                                 {
@@ -12644,7 +12666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000010xxxxxxxxxx
                                                              addpt.  */
-                                                          return 3428;
+                                                          return 3430;
                                                         }
                                                       else
                                                         {
@@ -12685,7 +12707,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000011xxxxxxxxxx
                                                              subpt.  */
-                                                          return 3430;
+                                                          return 3432;
                                                         }
                                                       else
                                                         {
@@ -14343,7 +14365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110100xxxxxxxxxx
                                                              mlapt.  */
-                                                          return 3432;
+                                                          return 3434;
                                                         }
                                                     }
                                                   else
@@ -14373,7 +14395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx110110xxxxxxxxxx
                                                              madpt.  */
-                                                          return 3431;
+                                                          return 3433;
                                                         }
                                                     }
                                                 }
@@ -14681,7 +14703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx00x100001xxxxxxxxxxxxx
                                                                  smaxqv.  */
-                                                              return 3341;
+                                                              return 3343;
                                                             }
                                                           else
                                                             {
@@ -14689,7 +14711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx01x100001xxxxxxxxxxxxx
                                                                  orqv.  */
-                                                              return 3352;
+                                                              return 3354;
                                                             }
                                                         }
                                                       else
@@ -14700,7 +14722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0101001xxxxxxxxxxxxx
                                                                  addqv.  */
-                                                              return 3339;
+                                                              return 3341;
                                                             }
                                                           else
                                                             {
@@ -14710,7 +14732,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001101001xxxxxxxxxxxxx
                                                                      umaxqv.  */
-                                                                  return 3343;
+                                                                  return 3345;
                                                                 }
                                                               else
                                                                 {
@@ -14718,7 +14740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011101001xxxxxxxxxxxxx
                                                                      eorqv.  */
-                                                                  return 3345;
+                                                                  return 3347;
                                                                 }
                                                             }
                                                         }
@@ -14755,7 +14777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx00x110001xxxxxxxxxxxxx
                                                                  sminqv.  */
-                                                              return 3342;
+                                                              return 3344;
                                                             }
                                                           else
                                                             {
@@ -14763,7 +14785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx01x110001xxxxxxxxxxxxx
                                                                  andqv.  */
-                                                              return 3340;
+                                                              return 3342;
                                                             }
                                                         }
                                                     }
@@ -14783,7 +14805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx111001xxxxxxxxxxxxx
                                                              uminqv.  */
-                                                          return 3344;
+                                                          return 3346;
                                                         }
                                                     }
                                                 }
@@ -15527,7 +15549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      110001x0x00xxxxx101xxxxxxxxxxxxx
                                                      ld1q.  */
-                                                  return 3368;
+                                                  return 3370;
                                                 }
                                               else
                                                 {
@@ -16541,7 +16563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x00xxxxxxxxxx
                                                          zipq1.  */
-                                                      return 3358;
+                                                      return 3360;
                                                     }
                                                   else
                                                     {
@@ -16551,7 +16573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx111010xxxxxxxxxx
                                                              uzpq1.  */
-                                                          return 3356;
+                                                          return 3358;
                                                         }
                                                       else
                                                         {
@@ -16559,7 +16581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx111110xxxxxxxxxx
                                                              tblq.  */
-                                                          return 3353;
+                                                          return 3355;
                                                         }
                                                     }
                                                 }
@@ -16571,7 +16593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x01xxxxxxxxxx
                                                          zipq2.  */
-                                                      return 3359;
+                                                      return 3361;
                                                     }
                                                   else
                                                     {
@@ -16579,7 +16601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx111x11xxxxxxxxxx
                                                          uzpq2.  */
-                                                      return 3357;
+                                                      return 3359;
                                                     }
                                                 }
                                             }
@@ -17059,7 +17081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x0x00xxxxx000xxxxxxxxxxxxx
                                                      st3q.  */
-                                                  return 3377;
+                                                  return 3379;
                                                 }
                                               else
                                                 {
@@ -17069,7 +17091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0010xxxxx000xxxxxxxxxxxxx
                                                          st2q.  */
-                                                      return 3376;
+                                                      return 3378;
                                                     }
                                                   else
                                                     {
@@ -17077,7 +17099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0110xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3378;
+                                                      return 3380;
                                                     }
                                                 }
                                             }
@@ -17524,7 +17546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0xx0x0000101xxxxxxxxxxxxx
                                                                  faddqv.  */
-                                                              return 3346;
+                                                              return 3348;
                                                             }
                                                           else
                                                             {
@@ -17541,7 +17563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx100101xxxxxxxxxxxxx
                                                              fmaxnmqv.  */
-                                                          return 3347;
+                                                          return 3349;
                                                         }
                                                     }
                                                   else
@@ -17582,7 +17604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx110101xxxxxxxxxxxxx
                                                              fmaxqv.  */
-                                                          return 3348;
+                                                          return 3350;
                                                         }
                                                     }
                                                 }
@@ -17604,7 +17626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx101101xxxxxxxxxxxxx
                                                              fminnmqv.  */
-                                                          return 3349;
+                                                          return 3351;
                                                         }
                                                     }
                                                   else
@@ -17623,7 +17645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0xx0xx111101xxxxxxxxxxxxx
                                                              fminqv.  */
-                                                          return 3350;
+                                                          return 3352;
                                                         }
                                                     }
                                                 }
@@ -17743,7 +17765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x0xx01xxxx111xxxxxxxxxxxxx
                                                      ld2q.  */
-                                                  return 3369;
+                                                  return 3371;
                                                 }
                                             }
                                         }
@@ -17879,7 +17901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101001x0xx1xxxxx100xxxxxxxxxxxxx
                                                  ld2q.  */
-                                              return 3372;
+                                              return 3374;
                                             }
                                         }
                                       else
@@ -18024,7 +18046,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x00x1xxxxx000xxxxxxxxxxxxx
                                                      st2q.  */
-                                                  return 3379;
+                                                  return 3381;
                                                 }
                                             }
                                           else
@@ -18067,7 +18089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0101xxxxx000xxxxxxxxxxxxx
                                                          st3q.  */
-                                                      return 3380;
+                                                      return 3382;
                                                     }
                                                 }
                                               else
@@ -18108,7 +18130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0111xxxxx000xxxxxxxxxxxxx
                                                          st4q.  */
-                                                      return 3381;
+                                                      return 3383;
                                                     }
                                                 }
                                             }
@@ -18137,7 +18159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x0001xxxxx0100x1xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3468;
+                                                              return 3470;
                                                             }
                                                         }
                                                       else
@@ -18146,7 +18168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0001xxxxx0101xxxxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3470;
+                                                          return 3472;
                                                         }
                                                     }
                                                   else
@@ -18187,7 +18209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx0101xxxxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3480;
+                                                          return 3482;
                                                         }
                                                     }
                                                   else
@@ -18220,7 +18242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0011xxxxx010xx1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3466;
+                                                          return 3468;
                                                         }
                                                     }
                                                   else
@@ -18291,7 +18313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11001x0001xxxxx100010xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3471;
+                                                              return 3473;
                                                             }
                                                         }
                                                       else
@@ -18300,7 +18322,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x11001x0001xxxxx1000x1xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3467;
+                                                          return 3469;
                                                         }
                                                     }
                                                   else
@@ -18309,7 +18331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1100xxxxxxxxxxxx
                                                          fmlallbb.  */
-                                                      return 3472;
+                                                      return 3474;
                                                     }
                                                 }
                                               else
@@ -18318,7 +18340,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0001xxxxx1x01xxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3473;
+                                                  return 3475;
                                                 }
                                             }
                                           else
@@ -18345,7 +18367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x0101xxxxx100010xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3469;
+                                                                  return 3471;
                                                                 }
                                                             }
                                                           else
@@ -18363,7 +18385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x0101xxxxx1100xxxxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3476;
+                                                          return 3478;
                                                         }
                                                     }
                                                   else
@@ -18372,7 +18394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0101xxxxx1x01xxxxxxxxxxxx
                                                          fmlalt.  */
-                                                      return 3479;
+                                                      return 3481;
                                                     }
                                                 }
                                               else
@@ -18405,7 +18427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0011xxxxx100xx1xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3465;
+                                                      return 3467;
                                                     }
                                                 }
                                               else
@@ -18414,7 +18436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x11001x0011xxxxx110xxxxxxxxxxxxx
                                                      fmlallbt.  */
-                                                  return 3474;
+                                                  return 3476;
                                                 }
                                             }
                                           else
@@ -18446,7 +18468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x0111xxxxx110xxxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3478;
+                                                      return 3480;
                                                     }
                                                 }
                                               else
@@ -18745,7 +18767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x0xx1xxxxx001xxxxxxxxxxxxx
                                                  st1q.  */
-                                              return 3375;
+                                              return 3377;
                                             }
                                         }
                                       else
@@ -18760,7 +18782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1010xxxxxxxxxxxx
                                                          fmlalltb.  */
-                                                      return 3475;
+                                                      return 3477;
                                                     }
                                                   else
                                                     {
@@ -18768,7 +18790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x11001x0001xxxxx1011xxxxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3477;
+                                                      return 3479;
                                                     }
                                                 }
                                               else
@@ -19486,7 +19508,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      000001x1001010x0001110xxxxxxxxxx
                                                                                      pmov.  */
-                                                                                  return 3360;
+                                                                                  return 3362;
                                                                                 }
                                                                               else
                                                                                 {
@@ -19494,7 +19516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                      10987654321098765432109876543210
                                                                                      000001x1001011x0001110xxxxxxxxxx
                                                                                      pmov.  */
-                                                                                  return 3361;
+                                                                                  return 3363;
                                                                                 }
                                                                             }
                                                                           else
@@ -19503,7 +19525,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x101101xx0001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3362;
+                                                                              return 3364;
                                                                             }
                                                                         }
                                                                       else
@@ -19512,7 +19534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              000001x11x101xx0001110xxxxxxxxxx
                                                                              pmov.  */
-                                                                          return 3363;
+                                                                          return 3365;
                                                                         }
                                                                     }
                                                                   else
@@ -19558,7 +19580,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x1001x10x1001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3364;
+                                                                              return 3366;
                                                                             }
                                                                           else
                                                                             {
@@ -19566,7 +19588,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                                  10987654321098765432109876543210
                                                                                  000001x1001x11x1001110xxxxxxxxxx
                                                                                  pmov.  */
-                                                                              return 3365;
+                                                                              return 3367;
                                                                             }
                                                                         }
                                                                       else
@@ -19575,7 +19597,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              000001x1011x1xx1001110xxxxxxxxxx
                                                                              pmov.  */
-                                                                          return 3366;
+                                                                          return 3368;
                                                                         }
                                                                     }
                                                                   else
@@ -19584,7 +19606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          000001x11x1x1xx1001110xxxxxxxxxx
                                                                          pmov.  */
-                                                                      return 3367;
+                                                                      return 3369;
                                                                     }
                                                                 }
                                                             }
@@ -19603,7 +19625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1x01xxxxx001001xxxxxxxxxx
                                                                  dupq.  */
-                                                              return 3351;
+                                                              return 3353;
                                                             }
                                                           else
                                                             {
@@ -19611,7 +19633,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1x11xxxxx001001xxxxxxxxxx
                                                                  extq.  */
-                                                              return 3355;
+                                                              return 3357;
                                                             }
                                                         }
                                                       else
@@ -19620,7 +19642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x1xx1xxxxx001101xxxxxxxxxx
                                                              tbxq.  */
-                                                          return 3354;
+                                                          return 3356;
                                                         }
                                                     }
                                                   else
@@ -21223,7 +21245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101100xxxxxxxxxx
                                                              luti2.  */
-                                                          return 3437;
+                                                          return 3439;
                                                         }
                                                     }
                                                   else
@@ -21232,7 +21254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x10xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3438;
+                                                      return 3440;
                                                     }
                                                 }
                                               else
@@ -21245,7 +21267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101001xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3439;
+                                                          return 3441;
                                                         }
                                                       else
                                                         {
@@ -21253,7 +21275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx101101xxxxxxxxxx
                                                              luti4.  */
-                                                          return 3440;
+                                                          return 3442;
                                                         }
                                                     }
                                                   else
@@ -21262,7 +21284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx1xxxxx101x11xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3441;
+                                                      return 3443;
                                                     }
                                                 }
                                             }
@@ -22213,7 +22235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x00xxxxxxxxxx
                                                                              f1cvt.  */
-                                                                          return 3399;
+                                                                          return 3401;
                                                                         }
                                                                       else
                                                                         {
@@ -22221,7 +22243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x10xxxxxxxxxx
                                                                              bf1cvt.  */
-                                                                          return 3395;
+                                                                          return 3397;
                                                                         }
                                                                     }
                                                                   else
@@ -22232,7 +22254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x01xxxxxxxxxx
                                                                              f2cvt.  */
-                                                                          return 3400;
+                                                                          return 3402;
                                                                         }
                                                                       else
                                                                         {
@@ -22240,7 +22262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x1xx001000001x11xxxxxxxxxx
                                                                              bf2cvt.  */
-                                                                          return 3396;
+                                                                          return 3398;
                                                                         }
                                                                     }
                                                                 }
@@ -22285,7 +22307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x00xxxxxxxxxx
                                                                          fcvtn.  */
-                                                                      return 3404;
+                                                                      return 3406;
                                                                     }
                                                                   else
                                                                     {
@@ -22293,7 +22315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x10xxxxxxxxxx
                                                                          bfcvtn.  */
-                                                                      return 3403;
+                                                                      return 3405;
                                                                     }
                                                                 }
                                                               else
@@ -22304,7 +22326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x01xxxxxxxxxx
                                                                          fcvtnb.  */
-                                                                      return 3405;
+                                                                      return 3407;
                                                                     }
                                                                   else
                                                                     {
@@ -22312,7 +22334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1010001x11xxxxxxxxxx
                                                                          fcvtnt.  */
-                                                                      return 3406;
+                                                                      return 3408;
                                                                     }
                                                                 }
                                                             }
@@ -22373,7 +22395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x00xxxxxxxxxx
                                                                          f1cvtlt.  */
-                                                                      return 3401;
+                                                                      return 3403;
                                                                     }
                                                                   else
                                                                     {
@@ -22381,7 +22403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x10xxxxxxxxxx
                                                                          bf1cvtlt.  */
-                                                                      return 3397;
+                                                                      return 3399;
                                                                     }
                                                                 }
                                                               else
@@ -22392,7 +22414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x01xxxxxxxxxx
                                                                          f2cvtlt.  */
-                                                                      return 3402;
+                                                                      return 3404;
                                                                     }
                                                                   else
                                                                     {
@@ -22400,7 +22422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1xx0x1001001x11xxxxxxxxxx
                                                                          bf2cvtlt.  */
-                                                                      return 3398;
+                                                                      return 3400;
                                                                     }
                                                                 }
                                                             }
@@ -23726,7 +23748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10x01xxxx111xxxxxxxxxxxxx
                                                          ld3q.  */
-                                                      return 3370;
+                                                      return 3372;
                                                     }
                                                   else
                                                     {
@@ -23734,7 +23756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11x01xxxx111xxxxxxxxxxxxx
                                                          ld4q.  */
-                                                      return 3371;
+                                                      return 3373;
                                                     }
                                                 }
                                             }
@@ -24907,7 +24929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x1xxxxx100xxxxxxxxxxxxx
                                                      ld3q.  */
-                                                  return 3373;
+                                                  return 3375;
                                                 }
                                               else
                                                 {
@@ -24915,7 +24937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x1xxxxx100xxxxxxxxxxxxx
                                                      ld4q.  */
-                                                  return 3374;
+                                                  return 3376;
                                                 }
                                             }
                                           else
@@ -26980,7 +27002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110100xxxxxxxx100xxxxxxxxxx
                                                          luti2.  */
-                                                      return 3433;
+                                                      return 3435;
                                                     }
                                                 }
                                             }
@@ -26994,7 +27016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx000xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3435;
+                                                      return 3437;
                                                     }
                                                   else
                                                     {
@@ -27002,7 +27024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110010xxxxxxxx100xxxxxxxxxx
                                                          luti4.  */
-                                                      return 3436;
+                                                      return 3438;
                                                     }
                                                 }
                                               else
@@ -27011,7 +27033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      0x001110110xxxxxxxxx00xxxxxxxxxx
                                                      luti2.  */
-                                                  return 3434;
+                                                  return 3436;
                                                 }
                                             }
                                         }
@@ -27127,7 +27149,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlallbb.  */
-                                                              return 3457;
+                                                              return 3459;
                                                             }
                                                           else
                                                             {
@@ -27135,7 +27157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx10001xxxxxxxxxx
                                                                  fmlalltb.  */
-                                                              return 3459;
+                                                              return 3461;
                                                             }
                                                         }
                                                       else
@@ -27146,7 +27168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlallbt.  */
-                                                              return 3458;
+                                                              return 3460;
                                                             }
                                                           else
                                                             {
@@ -27154,7 +27176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x10xxxxxx10001xxxxxxxxxx
                                                                  fmlalltt.  */
-                                                              return 3460;
+                                                              return 3462;
                                                             }
                                                         }
                                                     }
@@ -27242,7 +27264,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn.  */
-                                                              return 3390;
+                                                              return 3392;
                                                             }
                                                           else
                                                             {
@@ -27250,7 +27272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01001110x00xxxxxx11101xxxxxxxxxx
                                                                  fcvtn2.  */
-                                                              return 3391;
+                                                              return 3393;
                                                             }
                                                         }
                                                       else
@@ -27259,7 +27281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x10xxxxxx11101xxxxxxxxxx
                                                              fcvtn.  */
-                                                          return 3392;
+                                                          return 3394;
                                                         }
                                                     }
                                                 }
@@ -27402,7 +27424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              0x001110x00xxxxxx11111xxxxxxxxxx
                                                              fdot.  */
-                                                          return 3449;
+                                                          return 3451;
                                                         }
                                                       else
                                                         {
@@ -27412,7 +27434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x001110010xxxxxx11111xxxxxxxxxx
                                                                  fdot.  */
-                                                              return 3451;
+                                                              return 3453;
                                                             }
                                                           else
                                                             {
@@ -27422,7 +27444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalb.  */
-                                                                  return 3453;
+                                                                  return 3455;
                                                                 }
                                                               else
                                                                 {
@@ -27430,7 +27452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01001110110xxxxxx11111xxxxxxxxxx
                                                                      fmlalt.  */
-                                                                  return 3454;
+                                                                  return 3456;
                                                                 }
                                                             }
                                                         }
@@ -27704,7 +27726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx101110110xxxxx0x1111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3393;
+                                                          return 3395;
                                                         }
                                                     }
                                                 }
@@ -29096,7 +29118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl.  */
-                                                                      return 3386;
+                                                                      return 3388;
                                                                     }
                                                                   else
                                                                     {
@@ -29104,7 +29126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110001xxxx1011110xxxxxxxxxx
                                                                          f1cvtl2.  */
-                                                                      return 3387;
+                                                                      return 3389;
                                                                     }
                                                                 }
                                                               else
@@ -29115,7 +29137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl.  */
-                                                                      return 3382;
+                                                                      return 3384;
                                                                     }
                                                                   else
                                                                     {
@@ -29123,7 +29145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110101xxxx1011110xxxxxxxxxx
                                                                          bf1cvtl2.  */
-                                                                      return 3383;
+                                                                      return 3385;
                                                                     }
                                                                 }
                                                             }
@@ -29137,7 +29159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl.  */
-                                                                      return 3388;
+                                                                      return 3390;
                                                                     }
                                                                   else
                                                                     {
@@ -29145,7 +29167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110011xxxx1011110xxxxxxxxxx
                                                                          f2cvtl2.  */
-                                                                      return 3389;
+                                                                      return 3391;
                                                                     }
                                                                 }
                                                               else
@@ -29156,7 +29178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x0101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl.  */
-                                                                      return 3384;
+                                                                      return 3386;
                                                                     }
                                                                   else
                                                                     {
@@ -29164,7 +29186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          x1101110111xxxx1011110xxxxxxxxxx
                                                                          bf2cvtl2.  */
-                                                                      return 3385;
+                                                                      return 3387;
                                                                     }
                                                                 }
                                                             }
@@ -31163,7 +31185,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xx1011101x1xxxxx111111xxxxxxxxxx
                                                              fscale.  */
-                                                          return 3394;
+                                                          return 3396;
                                                         }
                                                     }
                                                 }
@@ -32879,7 +32901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111100xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3450;
+                                                      return 3452;
                                                     }
                                                   else
                                                     {
@@ -32909,7 +32931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx00111101xxxxxx0000x0xxxxxxxxxx
                                                          fdot.  */
-                                                      return 3452;
+                                                      return 3454;
                                                     }
                                                   else
                                                     {
@@ -32919,7 +32941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x000111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalb.  */
-                                                          return 3455;
+                                                          return 3457;
                                                         }
                                                       else
                                                         {
@@ -32927,7 +32949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x100111111xxxxxx0000x0xxxxxxxxxx
                                                              fmlalt.  */
-                                                          return 3456;
+                                                          return 3458;
                                                         }
                                                     }
                                                 }
@@ -33469,7 +33491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x010111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlallbb.  */
-                                                          return 3461;
+                                                          return 3463;
                                                         }
                                                       else
                                                         {
@@ -33477,7 +33499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x110111100xxxxxx1000x0xxxxxxxxxx
                                                              fmlalltb.  */
-                                                          return 3463;
+                                                          return 3465;
                                                         }
                                                     }
                                                   else
@@ -33508,7 +33530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x0101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlallbt.  */
-                                                      return 3462;
+                                                      return 3464;
                                                     }
                                                   else
                                                     {
@@ -33516,7 +33538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x1101111x1xxxxxx1000x0xxxxxxxxxx
                                                          fmlalltt.  */
-                                                      return 3464;
+                                                      return 3466;
                                                     }
                                                 }
                                             }
index f96165cc34dff2e27004ccb994749217723ac495..f7dea8f416c1976174e1087ff86af4ca8940a7c3 100644 (file)
 {                                                       \
   QLF3(S_S,P_M,S_H),                                    \
 }
+#define OP_SVE_SH                                      \
+{                                                      \
+  QLF2(S_S,S_H),                                       \
+}
 #define OP_SVE_SHH                                      \
 {                                                       \
   QLF3(S_S,S_H,S_H),                                    \
@@ -6711,6 +6715,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   SME_F16F16_INSN("fmls", 0xc1301c08, 0xfff09c18, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SVE_ZnxN, SME_Zm), OP_SVE_HHH, F_OD (4), 0),
   SME_F16F16_INSN("fmls", 0xc1a01018, 0xffe19c38, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zmx2), OP_SVE_HHH, F_OD (2), 0),
   SME_F16F16_INSN("fmls", 0xc1a11018, 0xffe39c78, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zmx4), OP_SVE_HHH, F_OD (4), 0),
+  SME_F16F16_INSN("fcvt", 0xc1a0e000, 0xfffffc01, sme_misc, 0, OP2 (SME_Zdnx2, SVE_Zn), OP_SVE_SH, F_OD (2), 0),
+  SME_F16F16_INSN("fcvtl", 0xc1a0e001, 0xfffffc01, sme_misc, 0, OP2 (SME_Zdnx2, SVE_Zn), OP_SVE_SH, F_OD (2), 0),
 
 /* SVE2p1 Instructions.  */
   SVE2p1_INSN("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),