[gas][aarch64][SVE2] Fix pmull{t,b} requirement on SVE2-AES
authorMatthew Malcomson <matthew.malcomson@arm.com>
Mon, 1 Jul 2019 14:17:22 +0000 (15:17 +0100)
committerMatthew Malcomson <matthew.malcomson@arm.com>
Mon, 1 Jul 2019 14:17:22 +0000 (15:17 +0100)
I had mistakenly given all variants of the new SVE2 instructions
pmull{t,b} a dependency on the feature +sve2-aes.

Only the variant specifying .Q -> .D  sizes should have that
restriction.

This patch fixes that mistake and updates the testsuite to have extra
tests (matching the given set of tests per line in aarch64-tbl.h that
the rest of the SVE2 tests follow).

We also add a line in the documentation of the command line to clarify
how to enable `pmull{t,b}` of this larger size.  This is needed because
all other instructions gated under the `sve2-aes` architecture extension
are marked in the instruction documentation by an `HaveSVE2AES` check
while pmull{t,b} is gated under the `HaveSVE2PMULL128` check.

Regtested targeting aarch64-linux.

gas/ChangeLog:

2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>

* testsuite/gas/aarch64/illegal-sve2-aes.d: Update tests.
* testsuite/gas/aarch64/illegal-sve2.l: Update tests.
* doc/c-aarch64.texi: Add special note of pmull{t,b}
instructions under the sve2-aes architecture extension.
* testsuite/gas/aarch64/illegal-sve2.s: Add small size
pmull{t,b} instructions.
* testsuite/gas/aarch64/sve2.d: Add small size pmull{t,b}
disassembly.
* testsuite/gas/aarch64/sve2.s: Add small size pmull{t,b}
instructions.

include/ChangeLog:

2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>

* opcode/aarch64.h (enum aarch64_insn_class): sve_size_013
renamed to sve_size_13.

opcodes/ChangeLog:

2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>

* aarch64-asm.c (aarch64_encode_variant_using_iclass): Use new
sve_size_13 icode to account for variant behaviour of
pmull{t,b}.
* aarch64-dis-2.c: Regenerate.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Use new
sve_size_13 icode to account for variant behaviour of
pmull{t,b}.
* aarch64-tbl.h (OP_SVE_VVV_HD_BS): Add new qualifier.
(OP_SVE_VVV_Q_D): Add new qualifier.
(OP_SVE_VVV_QHD_DBS): Remove now unused qualifier.
(struct aarch64_opcode): Split pmull{t,b} into those requiring
AES and those not.

14 files changed:
gas/ChangeLog
gas/doc/c-aarch64.texi
gas/testsuite/gas/aarch64/illegal-sve2-aes.d
gas/testsuite/gas/aarch64/illegal-sve2.l
gas/testsuite/gas/aarch64/illegal-sve2.s
gas/testsuite/gas/aarch64/sve2.d
gas/testsuite/gas/aarch64/sve2.s
include/ChangeLog
include/opcode/aarch64.h
opcodes/ChangeLog
opcodes/aarch64-asm.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-dis.c
opcodes/aarch64-tbl.h

index 8bf427ec4c66c3aa420b29436afabf041492f054..8209cd07daa06d7ac295660fa7ebca761ca96b95 100644 (file)
@@ -1,3 +1,16 @@
+2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       * testsuite/gas/aarch64/illegal-sve2-aes.d: Update tests.
+       * testsuite/gas/aarch64/illegal-sve2.l: Update tests.
+       * doc/c-aarch64.texi: Add special note of pmull{t,b}
+       instructions under the sve2-aes architecture extension.
+       * testsuite/gas/aarch64/illegal-sve2.s: Add small size
+       pmull{t,b} instructions.
+       * testsuite/gas/aarch64/sve2.d: Add small size pmull{t,b}
+       disassembly.
+       * testsuite/gas/aarch64/sve2.s: Add small size pmull{t,b}
+       instructions.
+
 2019-07-01  Nick Clifton  <nickc@redhat.com>
 
        PR 24738
index e6630610010744b75fb2b6a3a2cb008d08c9c97a..6844f5980214919bec6d1a37b76d0a69ebb12983 100644 (file)
@@ -203,7 +203,8 @@ automatically cause those extensions to be disabled.
 @item @code{sve2-sm4} @tab ARMv8-A @tab No
  @tab Enable SVE2 SM4 Extension.
 @item @code{sve2-aes} @tab ARMv8-A @tab No
- @tab Enable SVE2 AES Extension.
+ @tab Enable SVE2 AES Extension.  This also enables the .Q->.B form of the
+ @code{pmullt} and @code{pmullb} instructions.
 @item @code{sve2-sha3} @tab ARMv8-A @tab No
  @tab Enable SVE2 SHA3 Extension.
 @end multitable
index 8e6daa2c3509a143067dcf8d90c1b3db8aed321f..926db22e4d2b38823d9f9d2328f1052f6397d05c 100644 (file)
@@ -12,9 +12,5 @@
 #error: [^ :]+:[0-9]+: Error: selected processor does not support `aesmc z0\.b,z0\.b'
 #error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullb z17\.q,z21\.d,z27\.d'
 #error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullb z0\.q,z0\.d,z0\.d'
-#error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullb z0\.h,z0\.b,z0\.b'
-#error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullb z0\.d,z0\.s,z0\.s'
 #error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullt z17\.q,z21\.d,z27\.d'
 #error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullt z0\.q,z0\.d,z0\.d'
-#error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullt z0\.h,z0\.b,z0\.b'
-#error: [^ :]+:[0-9]+: Error: selected processor does not support `pmullt z0\.d,z0\.s,z0\.s'
index 7d93a0902632f8c7f119fb6c3b41e40b703b1664..01c68479c4c7fd7afd07d68f74487b33130addba 100644 (file)
 [^ :]+:[0-9]+: Error: operand mismatch -- `pmullb z0\.d,z0\.d,z0\.d'
 [^ :]+:[0-9]+: Info:    did you mean this\?
 [^ :]+:[0-9]+: Info:           pmullb z0\.q, z0\.d, z0\.d
-[^ :]+:[0-9]+: Info:    other valid variant\(s\):
-[^ :]+:[0-9]+: Info:           pmullb z0\.h, z0\.b, z0\.b
-[^ :]+:[0-9]+: Info:           pmullb z0\.d, z0\.s, z0\.s
+[^ :]+:[0-9]+: Error: operand 1 must be an SVE vector register -- `pmullb z32\.h,z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand 2 must be an SVE vector register -- `pmullb z0\.h,z32\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand 3 must be an SVE vector register -- `pmullb z0\.h,z0\.b,z32\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `pmullb z0\.b,z0\.b,z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:           pmullb z0\.q, z0\.d, z0\.d
 [^ :]+:[0-9]+: Error: operand 1 must be an SVE vector register -- `pmullt z32\.q,z0\.d,z0\.d'
 [^ :]+:[0-9]+: Error: operand 2 must be an SVE vector register -- `pmullt z0\.q,z32\.d,z0\.d'
 [^ :]+:[0-9]+: Error: operand 3 must be an SVE vector register -- `pmullt z0\.q,z0\.d,z32\.d'
 [^ :]+:[0-9]+: Error: operand mismatch -- `pmullt z0\.d,z0\.d,z0\.d'
 [^ :]+:[0-9]+: Info:    did you mean this\?
 [^ :]+:[0-9]+: Info:           pmullt z0\.q, z0\.d, z0\.d
-[^ :]+:[0-9]+: Info:    other valid variant\(s\):
-[^ :]+:[0-9]+: Info:           pmullt z0\.h, z0\.b, z0\.b
-[^ :]+:[0-9]+: Info:           pmullt z0\.d, z0\.s, z0\.s
+[^ :]+:[0-9]+: Error: operand 1 must be an SVE vector register -- `pmullt z32\.h,z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand 2 must be an SVE vector register -- `pmullt z0\.h,z32\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand 3 must be an SVE vector register -- `pmullt z0\.h,z0\.b,z32\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `pmullt z0\.b,z0\.b,z0\.b'
+[^ :]+:[0-9]+: Info:    did you mean this\?
+[^ :]+:[0-9]+: Info:           pmullt z0\.q, z0\.d, z0\.d
 [^ :]+:[0-9]+: Error: operand mismatch -- `raddhnb z0\.h,z0\.h,z0\.h'
 [^ :]+:[0-9]+: Info:    did you mean this\?
 [^ :]+:[0-9]+: Info:           raddhnb z0\.b, z0\.h, z0\.h
index c6c408c196821cae34bf03442d915e9b87d1ac53..c963a5c2710876df39c641ad908859585cec0dc1 100644 (file)
@@ -519,11 +519,21 @@ pmullb z0.q, z32.d, z0.d
 pmullb z0.q, z0.d, z32.d
 pmullb z0.d, z0.d, z0.d
 
+pmullb z32.h, z0.b, z0.b
+pmullb z0.h, z32.b, z0.b
+pmullb z0.h, z0.b, z32.b
+pmullb z0.b, z0.b, z0.b
+
 pmullt z32.q, z0.d, z0.d
 pmullt z0.q, z32.d, z0.d
 pmullt z0.q, z0.d, z32.d
 pmullt z0.d, z0.d, z0.d
 
+pmullt z32.h, z0.b, z0.b
+pmullt z0.h, z32.b, z0.b
+pmullt z0.h, z0.b, z32.b
+pmullt z0.b, z0.b, z0.b
+
 raddhnb z0.h, z0.h, z0.h
 raddhnb z32.b, z0.h, z0.h
 raddhnb z0.b, z32.h, z0.h
index efa9b270ff49b16fcd544ff8236461ca852204d4..5324583020fda14912f799ac15a41ab5dfebc1ab 100644 (file)
@@ -264,10 +264,12 @@ Disassembly of section \.text:
  *[0-9a-f]+:   04206400        pmul    z0\.b, z0\.b, z0\.b
  *[0-9a-f]+:   451b6ab1        pmullb  z17\.q, z21\.d, z27\.d
  *[0-9a-f]+:   45006800        pmullb  z0\.q, z0\.d, z0\.d
+ *[0-9a-f]+:   455b6ab1        pmullb  z17\.h, z21\.b, z27\.b
  *[0-9a-f]+:   45406800        pmullb  z0\.h, z0\.b, z0\.b
  *[0-9a-f]+:   45c06800        pmullb  z0\.d, z0\.s, z0\.s
  *[0-9a-f]+:   451b6eb1        pmullt  z17\.q, z21\.d, z27\.d
  *[0-9a-f]+:   45006c00        pmullt  z0\.q, z0\.d, z0\.d
+ *[0-9a-f]+:   455b6eb1        pmullt  z17\.h, z21\.b, z27\.b
  *[0-9a-f]+:   45406c00        pmullt  z0\.h, z0\.b, z0\.b
  *[0-9a-f]+:   45c06c00        pmullt  z0\.d, z0\.s, z0\.s
  *[0-9a-f]+:   457b6ab1        raddhnb z17\.b, z21\.h, z27\.h
index 13d2e2a2421a3c71e2a2faa403dccc510e1d4f1f..9417a0d27b1c6fc2b962f196c62706536a929a3c 100644 (file)
@@ -338,11 +338,15 @@ pmul z0.b, z0.b, z0.b
 
 pmullb z17.q, z21.d, z27.d
 pmullb z0.q, z0.d, z0.d
+
+pmullb z17.h, z21.b, z27.b
 pmullb z0.h, z0.b, z0.b
 pmullb z0.d, z0.s, z0.s
 
 pmullt z17.q, z21.d, z27.d
 pmullt z0.q, z0.d, z0.d
+
+pmullt z17.h, z21.b, z27.b
 pmullt z0.h, z0.b, z0.b
 pmullt z0.d, z0.s, z0.s
 
index 81b667066856334456f40ecb279d11d698e5f1b4..5ef479aa0fd5ec0068a12dd47ce851f1a87181f8 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       * opcode/aarch64.h (enum aarch64_insn_class): sve_size_013
+       renamed to sve_size_13.
+
 2019-06-19  Nick Alcock <nick.alcock@oracle.com>
 
        * ctf.h (ctf_slice_t): Make cts_offset and cts_bits unsigned
index a4520da8d150f4ff638bb0c2c7529d94ef4d150e..d0bbe01be6cd4084054a5646107d2bc6ad82bd07 100644 (file)
@@ -599,7 +599,7 @@ enum aarch64_insn_class
   sve_size_sd,
   sve_size_bh,
   sve_size_sd2,
-  sve_size_013,
+  sve_size_13,
   sve_shift_tsz_hsd,
   sve_shift_tsz_bhsd,
   sve_size_tsz_bhs,
index 314ef7f9e4ee38a232553fda6deef98ba6fda467..6f5fcdd0b3a0700f84055df89607dc198358b716 100644 (file)
@@ -1,3 +1,18 @@
+2019-07-01  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       * aarch64-asm.c (aarch64_encode_variant_using_iclass): Use new
+       sve_size_13 icode to account for variant behaviour of
+       pmull{t,b}.
+       * aarch64-dis-2.c: Regenerate.
+       * aarch64-dis.c (aarch64_decode_variant_using_iclass): Use new
+       sve_size_13 icode to account for variant behaviour of
+       pmull{t,b}.
+       * aarch64-tbl.h (OP_SVE_VVV_HD_BS): Add new qualifier.
+       (OP_SVE_VVV_Q_D): Add new qualifier.
+       (OP_SVE_VVV_QHD_DBS): Remove now unused qualifier.
+       (struct aarch64_opcode): Split pmull{t,b} into those requiring
+       AES and those not.
+
 2019-07-01  Jan Beulich  <jbeulich@suse.com>
 
        * opcodes/i386-gen.c (operand_type_init): Remove
index afb0e5b4d2ad0e62307e97858062f8599169248e..67ebad687cc7473842e258858c0838dd5459cf2e 100644 (file)
@@ -1679,8 +1679,8 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst)
                     0, 2, FLD_SVE_tszl_19, FLD_SVE_sz);
       break;
 
-    case sve_size_013:
-      variant = aarch64_get_variant (inst);
+    case sve_size_13:
+      variant = aarch64_get_variant (inst) + 1;
       if (variant == 2)
          variant = 3;
       insert_field (FLD_size, &inst->value, variant, 0);
index f86077dd0004c9309200d9b9177696fcea8c4f3c..17edc76dcd00434eb0ea287b2d9375dac7c72ae1 100644 (file)
@@ -2368,7 +2368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurb.  */
-                                                      return 2375;
+                                                      return 2377;
                                                     }
                                                   else
                                                     {
@@ -2376,7 +2376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2383;
+                                                      return 2385;
                                                     }
                                                 }
                                               else
@@ -2387,7 +2387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlurh.  */
-                                                      return 2379;
+                                                      return 2381;
                                                     }
                                                   else
                                                     {
@@ -2395,7 +2395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001000xxxxxxxxx00xxxxxxxxxx
                                                          stlur.  */
-                                                      return 2386;
+                                                      return 2388;
                                                     }
                                                 }
                                             }
@@ -2475,7 +2475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurb.  */
-                                                      return 2376;
+                                                      return 2378;
                                                     }
                                                   else
                                                     {
@@ -2483,7 +2483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2384;
+                                                      return 2386;
                                                     }
                                                 }
                                               else
@@ -2494,7 +2494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapurh.  */
-                                                      return 2380;
+                                                      return 2382;
                                                     }
                                                   else
                                                     {
@@ -2502,7 +2502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          11011001010xxxxxxxxx00xxxxxxxxxx
                                                          ldapur.  */
-                                                      return 2387;
+                                                      return 2389;
                                                     }
                                                 }
                                             }
@@ -2585,7 +2585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursb.  */
-                                                      return 2378;
+                                                      return 2380;
                                                     }
                                                   else
                                                     {
@@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          10011001100xxxxxxxxx00xxxxxxxxxx
                                                          ldapursw.  */
-                                                      return 2385;
+                                                      return 2387;
                                                     }
                                                 }
                                               else
@@ -2602,7 +2602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001100xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2382;
+                                                  return 2384;
                                                 }
                                             }
                                           else
@@ -2613,7 +2613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursb.  */
-                                                  return 2377;
+                                                  return 2379;
                                                 }
                                               else
                                                 {
@@ -2621,7 +2621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1011001110xxxxxxxxx00xxxxxxxxxx
                                                      ldapursh.  */
-                                                  return 2381;
+                                                  return 2383;
                                                 }
                                             }
                                         }
@@ -3107,7 +3107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx0xx10xxxxxxxxxx
                                              setf8.  */
-                                          return 2373;
+                                          return 2375;
                                         }
                                       else
                                         {
@@ -3115,7 +3115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx1xx10xxxxxxxxxx
                                              setf16.  */
-                                          return 2374;
+                                          return 2376;
                                         }
                                     }
                                   else
@@ -3261,7 +3261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010000xxxxxxxxx01xxxxxxxxxx
                                              rmif.  */
-                                          return 2372;
+                                          return 2374;
                                         }
                                       else
                                         {
@@ -4042,7 +4042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx000010xxxxxxxxxx
                                                              sqdmlalbt.  */
-                                                          return 2164;
+                                                          return 2166;
                                                         }
                                                     }
                                                   else
@@ -4061,7 +4061,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx000011xxxxxxxxxx
                                                              sqdmlslbt.  */
-                                                          return 2171;
+                                                          return 2173;
                                                         }
                                                     }
                                                 }
@@ -4196,7 +4196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x00x1xxxxx000x00xxxxxxxxxx
                                                              sqrdmlah.  */
-                                                          return 2189;
+                                                          return 2191;
                                                         }
                                                       else
                                                         {
@@ -4215,7 +4215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x00x1xxxxx000x01xxxxxxxxxx
                                                              sqrdmlsh.  */
-                                                          return 2193;
+                                                          return 2195;
                                                         }
                                                       else
                                                         {
@@ -4271,7 +4271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0101xxxxx000100xxxxxxxxxx
                                                                      sqrdmlah.  */
-                                                                  return 2190;
+                                                                  return 2192;
                                                                 }
                                                               else
                                                                 {
@@ -4279,7 +4279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0111xxxxx000100xxxxxxxxxx
                                                                      sqrdmlah.  */
-                                                                  return 2191;
+                                                                  return 2193;
                                                                 }
                                                             }
                                                         }
@@ -4334,7 +4334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0101xxxxx000101xxxxxxxxxx
                                                                      sqrdmlsh.  */
-                                                                  return 2194;
+                                                                  return 2196;
                                                                 }
                                                               else
                                                                 {
@@ -4342,7 +4342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0111xxxxx000101xxxxxxxxxx
                                                                      sqrdmlsh.  */
-                                                                  return 2195;
+                                                                  return 2197;
                                                                 }
                                                             }
                                                         }
@@ -4417,7 +4417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx010000100xxxxxxxxxxxxx
                                                                      shadd.  */
-                                                                  return 2130;
+                                                                  return 2132;
                                                                 }
                                                             }
                                                         }
@@ -4429,7 +4429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx001000100xxxxxxxxxxxxx
                                                                  sqshl.  */
-                                                              return 2208;
+                                                              return 2210;
                                                             }
                                                           else
                                                             {
@@ -4447,7 +4447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx011000100xxxxxxxxxxxxx
                                                                      sqadd.  */
-                                                                  return 2159;
+                                                                  return 2161;
                                                                 }
                                                             }
                                                         }
@@ -4480,7 +4480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx010100100xxxxxxxxxxxxx
                                                                      srhadd.  */
-                                                                  return 2221;
+                                                                  return 2223;
                                                                 }
                                                             }
                                                         }
@@ -4494,7 +4494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001100100xxxxxxxxxxxxx
                                                                      srshr.  */
-                                                                  return 2225;
+                                                                  return 2227;
                                                                 }
                                                               else
                                                                 {
@@ -4502,7 +4502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx001100100xxxxxxxxxxxxx
                                                                      sqshlr.  */
-                                                                  return 2209;
+                                                                  return 2211;
                                                                 }
                                                             }
                                                           else
@@ -4511,7 +4511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx011100100xxxxxxxxxxxxx
                                                                  suqadd.  */
-                                                              return 2245;
+                                                              return 2247;
                                                             }
                                                         }
                                                     }
@@ -4528,7 +4528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx000010100xxxxxxxxxxxxx
                                                                  srshl.  */
-                                                              return 2223;
+                                                              return 2225;
                                                             }
                                                           else
                                                             {
@@ -4536,7 +4536,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx010010100xxxxxxxxxxxxx
                                                                  shsub.  */
-                                                              return 2133;
+                                                              return 2135;
                                                             }
                                                         }
                                                       else
@@ -4547,7 +4547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx001010100xxxxxxxxxxxxx
                                                                  sqrshl.  */
-                                                              return 2201;
+                                                              return 2203;
                                                             }
                                                           else
                                                             {
@@ -4555,7 +4555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx011010100xxxxxxxxxxxxx
                                                                  sqsub.  */
-                                                              return 2215;
+                                                              return 2217;
                                                             }
                                                         }
                                                     }
@@ -4571,7 +4571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000110100xxxxxxxxxxxxx
                                                                      sqshl.  */
-                                                                  return 2207;
+                                                                  return 2209;
                                                                 }
                                                               else
                                                                 {
@@ -4579,7 +4579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx000110100xxxxxxxxxxxxx
                                                                      srshlr.  */
-                                                                  return 2224;
+                                                                  return 2226;
                                                                 }
                                                             }
                                                           else
@@ -4588,7 +4588,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx010110100xxxxxxxxxxxxx
                                                                  shsubr.  */
-                                                              return 2134;
+                                                              return 2136;
                                                             }
                                                         }
                                                       else
@@ -4599,7 +4599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx001110100xxxxxxxxxxxxx
                                                                  sqrshlr.  */
-                                                              return 2202;
+                                                              return 2204;
                                                             }
                                                           else
                                                             {
@@ -4607,7 +4607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx011110100xxxxxxxxxxxxx
                                                                  sqsubr.  */
-                                                              return 2216;
+                                                              return 2218;
                                                             }
                                                         }
                                                     }
@@ -4645,7 +4645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx010001100xxxxxxxxxxxxx
                                                                      uhadd.  */
-                                                                  return 2258;
+                                                                  return 2260;
                                                                 }
                                                             }
                                                         }
@@ -4657,7 +4657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx001001100xxxxxxxxxxxxx
                                                                  uqshl.  */
-                                                              return 2288;
+                                                              return 2290;
                                                             }
                                                           else
                                                             {
@@ -4675,7 +4675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx011001100xxxxxxxxxxxxx
                                                                      uqadd.  */
-                                                                  return 2282;
+                                                                  return 2284;
                                                                 }
                                                             }
                                                         }
@@ -4698,7 +4698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx0x0101100xxxxxxxxxxxxx
                                                                  urhadd.  */
-                                                              return 2297;
+                                                              return 2299;
                                                             }
                                                         }
                                                       else
@@ -4711,7 +4711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001101100xxxxxxxxxxxxx
                                                                      urshr.  */
-                                                                  return 2300;
+                                                                  return 2302;
                                                                 }
                                                               else
                                                                 {
@@ -4719,7 +4719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx001101100xxxxxxxxxxxxx
                                                                      uqshlr.  */
-                                                                  return 2289;
+                                                                  return 2291;
                                                                 }
                                                             }
                                                           else
@@ -4728,7 +4728,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx011101100xxxxxxxxxxxxx
                                                                  usqadd.  */
-                                                              return 2305;
+                                                              return 2307;
                                                             }
                                                         }
                                                     }
@@ -4755,7 +4755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx000011100xxxxxxxxxxxxx
                                                                      urshl.  */
-                                                                  return 2298;
+                                                                  return 2300;
                                                                 }
                                                             }
                                                           else
@@ -4774,7 +4774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx010011100xxxxxxxxxxxxx
                                                                      uhsub.  */
-                                                                  return 2259;
+                                                                  return 2261;
                                                                 }
                                                             }
                                                         }
@@ -4786,7 +4786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx001011100xxxxxxxxxxxxx
                                                                  uqrshl.  */
-                                                              return 2283;
+                                                              return 2285;
                                                             }
                                                           else
                                                             {
@@ -4804,7 +4804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx011011100xxxxxxxxxxxxx
                                                                      uqsub.  */
-                                                                  return 2292;
+                                                                  return 2294;
                                                                 }
                                                             }
                                                         }
@@ -4821,7 +4821,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000111100xxxxxxxxxxxxx
                                                                      uqshl.  */
-                                                                  return 2287;
+                                                                  return 2289;
                                                                 }
                                                               else
                                                                 {
@@ -4829,7 +4829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx000111100xxxxxxxxxxxxx
                                                                      urshlr.  */
-                                                                  return 2299;
+                                                                  return 2301;
                                                                 }
                                                             }
                                                           else
@@ -4848,7 +4848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx010111100xxxxxxxxxxxxx
                                                                      uhsubr.  */
-                                                                  return 2260;
+                                                                  return 2262;
                                                                 }
                                                             }
                                                         }
@@ -4862,7 +4862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001111100xxxxxxxxxxxxx
                                                                      sqshlu.  */
-                                                                  return 2210;
+                                                                  return 2212;
                                                                 }
                                                               else
                                                                 {
@@ -4870,7 +4870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx001111100xxxxxxxxxxxxx
                                                                      uqrshlr.  */
-                                                                  return 2284;
+                                                                  return 2286;
                                                                 }
                                                             }
                                                           else
@@ -4879,7 +4879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  0x0001x0xx011111100xxxxxxxxxxxxx
                                                                  uqsubr.  */
-                                                              return 2293;
+                                                              return 2295;
                                                             }
                                                         }
                                                     }
@@ -4908,7 +4908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x01xxxxx1000x0xxxxxxxxxx
                                                              smlalb.  */
-                                                          return 2138;
+                                                          return 2140;
                                                         }
                                                       else
                                                         {
@@ -4916,7 +4916,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x11xxxxx1000x0xxxxxxxxxx
                                                              smlalb.  */
-                                                          return 2139;
+                                                          return 2141;
                                                         }
                                                     }
                                                 }
@@ -4938,7 +4938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x01xxxxx1001x0xxxxxxxxxx
                                                              umlalb.  */
-                                                          return 2263;
+                                                          return 2265;
                                                         }
                                                       else
                                                         {
@@ -4946,7 +4946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x11xxxxx1001x0xxxxxxxxxx
                                                              umlalb.  */
-                                                          return 2264;
+                                                          return 2266;
                                                         }
                                                     }
                                                 }
@@ -4982,7 +4982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x01xxxxx1000x1xxxxxxxxxx
                                                              smlalt.  */
-                                                          return 2141;
+                                                          return 2143;
                                                         }
                                                       else
                                                         {
@@ -4990,7 +4990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x11xxxxx1000x1xxxxxxxxxx
                                                              smlalt.  */
-                                                          return 2142;
+                                                          return 2144;
                                                         }
                                                     }
                                                 }
@@ -5023,7 +5023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x01xxxxx1001x1xxxxxxxxxx
                                                              umlalt.  */
-                                                          return 2266;
+                                                          return 2268;
                                                         }
                                                       else
                                                         {
@@ -5031,7 +5031,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0x11xxxxx1001x1xxxxxxxxxx
                                                              umlalt.  */
-                                                          return 2267;
+                                                          return 2269;
                                                         }
                                                     }
                                                 }
@@ -5219,7 +5219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010000xxxxxxxxxx
                                                              smlalb.  */
-                                                          return 2140;
+                                                          return 2142;
                                                         }
                                                       else
                                                         {
@@ -5227,7 +5227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010100xxxxxxxxxx
                                                              smlslb.  */
-                                                          return 2146;
+                                                          return 2148;
                                                         }
                                                     }
                                                   else
@@ -5238,7 +5238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010010xxxxxxxxxx
                                                              umlalb.  */
-                                                          return 2265;
+                                                          return 2267;
                                                         }
                                                       else
                                                         {
@@ -5246,7 +5246,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010110xxxxxxxxxx
                                                              umlslb.  */
-                                                          return 2271;
+                                                          return 2273;
                                                         }
                                                     }
                                                 }
@@ -5260,7 +5260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010001xxxxxxxxxx
                                                              smlalt.  */
-                                                          return 2143;
+                                                          return 2145;
                                                         }
                                                       else
                                                         {
@@ -5268,7 +5268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010101xxxxxxxxxx
                                                              smlslt.  */
-                                                          return 2149;
+                                                          return 2151;
                                                         }
                                                     }
                                                   else
@@ -5279,7 +5279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010011xxxxxxxxxx
                                                              umlalt.  */
-                                                          return 2268;
+                                                          return 2270;
                                                         }
                                                       else
                                                         {
@@ -5287,7 +5287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx010111xxxxxxxxxx
                                                              umlslt.  */
-                                                          return 2274;
+                                                          return 2276;
                                                         }
                                                     }
                                                 }
@@ -5795,7 +5795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1100x0xxxxxxxxxx
                                                                  smullb.  */
-                                                              return 2151;
+                                                              return 2153;
                                                             }
                                                           else
                                                             {
@@ -5803,7 +5803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1101x0xxxxxxxxxx
                                                                  umullb.  */
-                                                              return 2276;
+                                                              return 2278;
                                                             }
                                                         }
                                                       else
@@ -5814,7 +5814,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1100x1xxxxxxxxxx
                                                                  smullt.  */
-                                                              return 2154;
+                                                              return 2156;
                                                             }
                                                           else
                                                             {
@@ -5822,7 +5822,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1101x1xxxxxxxxxx
                                                                  umullt.  */
-                                                              return 2279;
+                                                              return 2281;
                                                             }
                                                         }
                                                     }
@@ -5858,7 +5858,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1100x0xxxxxxxxxx
                                                                  smullb.  */
-                                                              return 2152;
+                                                              return 2154;
                                                             }
                                                           else
                                                             {
@@ -5866,7 +5866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1101x0xxxxxxxxxx
                                                                  umullb.  */
-                                                              return 2277;
+                                                              return 2279;
                                                             }
                                                         }
                                                       else
@@ -5877,7 +5877,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1100x1xxxxxxxxxx
                                                                  smullt.  */
-                                                              return 2155;
+                                                              return 2157;
                                                             }
                                                           else
                                                             {
@@ -5885,7 +5885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1101x1xxxxxxxxxx
                                                                  umullt.  */
-                                                              return 2280;
+                                                              return 2282;
                                                             }
                                                         }
                                                     }
@@ -6059,7 +6059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      010001x0xx0xxxxx0011xxxxxxxxxxxx
                                                      sqrdcmlah.  */
-                                                  return 2188;
+                                                  return 2190;
                                                 }
                                             }
                                           else
@@ -6160,7 +6160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx001x01xxxxxxxxxx
                                                          xar.  */
-                                                      return 2321;
+                                                      return 2323;
                                                     }
                                                   else
                                                     {
@@ -6249,7 +6249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx0010x0xxxxxxxxxx
                                                                  sqdmlalb.  */
-                                                              return 2161;
+                                                              return 2163;
                                                             }
                                                           else
                                                             {
@@ -6257,7 +6257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx0010x0xxxxxxxxxx
                                                                  sqdmlalb.  */
-                                                              return 2162;
+                                                              return 2164;
                                                             }
                                                         }
                                                       else
@@ -6268,7 +6268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx0011x0xxxxxxxxxx
                                                                  sqdmlslb.  */
-                                                              return 2168;
+                                                              return 2170;
                                                             }
                                                           else
                                                             {
@@ -6276,7 +6276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx0011x0xxxxxxxxxx
                                                                  sqdmlslb.  */
-                                                              return 2169;
+                                                              return 2171;
                                                             }
                                                         }
                                                     }
@@ -6290,7 +6290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx0010x1xxxxxxxxxx
                                                                  sqdmlalt.  */
-                                                              return 2165;
+                                                              return 2167;
                                                             }
                                                           else
                                                             {
@@ -6298,7 +6298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx0010x1xxxxxxxxxx
                                                                  sqdmlalt.  */
-                                                              return 2166;
+                                                              return 2168;
                                                             }
                                                         }
                                                       else
@@ -6309,7 +6309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx0011x1xxxxxxxxxx
                                                                  sqdmlslt.  */
-                                                              return 2172;
+                                                              return 2174;
                                                             }
                                                           else
                                                             {
@@ -6317,7 +6317,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx0011x1xxxxxxxxxx
                                                                  sqdmlslt.  */
-                                                              return 2173;
+                                                              return 2175;
                                                             }
                                                         }
                                                     }
@@ -6648,7 +6648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx0x0000101xxxxxxxxxxxxx
                                                                  urecpe.  */
-                                                              return 2296;
+                                                              return 2298;
                                                             }
                                                           else
                                                             {
@@ -6656,7 +6656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx0x1000101xxxxxxxxxxxxx
                                                                  sqabs.  */
-                                                              return 2158;
+                                                              return 2160;
                                                             }
                                                         }
                                                       else
@@ -6667,7 +6667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx00x100101xxxxxxxxxxxxx
                                                                  sadalp.  */
-                                                              return 2122;
+                                                              return 2124;
                                                             }
                                                           else
                                                             {
@@ -6675,7 +6675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx01x100101xxxxxxxxxxxxx
                                                                  smaxp.  */
-                                                              return 2136;
+                                                              return 2138;
                                                             }
                                                         }
                                                     }
@@ -6685,7 +6685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxx10101xxxxxxxxxxxxx
                                                          sminp.  */
-                                                      return 2137;
+                                                      return 2139;
                                                     }
                                                 }
                                               else
@@ -6702,7 +6702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0xx000001101xxxxxxxxxxxxx
                                                                      ursqrte.  */
-                                                                  return 2301;
+                                                                  return 2303;
                                                                 }
                                                               else
                                                                 {
@@ -6719,7 +6719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx0x1001101xxxxxxxxxxxxx
                                                                  sqneg.  */
-                                                              return 2185;
+                                                              return 2187;
                                                             }
                                                         }
                                                       else
@@ -6730,7 +6730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx00x101101xxxxxxxxxxxxx
                                                                  uadalp.  */
-                                                              return 2253;
+                                                              return 2255;
                                                             }
                                                           else
                                                             {
@@ -6738,7 +6738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0xx01x101101xxxxxxxxxxxxx
                                                                  umaxp.  */
-                                                              return 2261;
+                                                              return 2263;
                                                             }
                                                         }
                                                     }
@@ -6748,7 +6748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxx11101xxxxxxxxxxxxx
                                                          uminp.  */
-                                                      return 2262;
+                                                      return 2264;
                                                     }
                                                 }
                                             }
@@ -6796,7 +6796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1010x0xxxxxxxxxx
                                                                  smlslb.  */
-                                                              return 2144;
+                                                              return 2146;
                                                             }
                                                           else
                                                             {
@@ -6804,7 +6804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1011x0xxxxxxxxxx
                                                                  umlslb.  */
-                                                              return 2269;
+                                                              return 2271;
                                                             }
                                                         }
                                                       else
@@ -6815,7 +6815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1010x1xxxxxxxxxx
                                                                  smlslt.  */
-                                                              return 2147;
+                                                              return 2149;
                                                             }
                                                           else
                                                             {
@@ -6823,7 +6823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1011x1xxxxxxxxxx
                                                                  umlslt.  */
-                                                              return 2272;
+                                                              return 2274;
                                                             }
                                                         }
                                                     }
@@ -6859,7 +6859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1010x0xxxxxxxxxx
                                                                  smlslb.  */
-                                                              return 2145;
+                                                              return 2147;
                                                             }
                                                           else
                                                             {
@@ -6867,7 +6867,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1011x0xxxxxxxxxx
                                                                  umlslb.  */
-                                                              return 2270;
+                                                              return 2272;
                                                             }
                                                         }
                                                       else
@@ -6878,7 +6878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1010x1xxxxxxxxxx
                                                                  smlslt.  */
-                                                              return 2148;
+                                                              return 2150;
                                                             }
                                                           else
                                                             {
@@ -6886,7 +6886,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1011x1xxxxxxxxxx
                                                                  umlslt.  */
-                                                              return 2273;
+                                                              return 2275;
                                                             }
                                                         }
                                                     }
@@ -6954,7 +6954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx011000xxxxxxxxxx
                                                              sqdmlalb.  */
-                                                          return 2163;
+                                                          return 2165;
                                                         }
                                                       else
                                                         {
@@ -6962,7 +6962,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx011100xxxxxxxxxx
                                                              sqrdmlah.  */
-                                                          return 2192;
+                                                          return 2194;
                                                         }
                                                     }
                                                   else
@@ -6971,7 +6971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx011x10xxxxxxxxxx
                                                          sqdmlslb.  */
-                                                      return 2170;
+                                                      return 2172;
                                                     }
                                                 }
                                               else
@@ -6984,7 +6984,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx011001xxxxxxxxxx
                                                              sqdmlalt.  */
-                                                          return 2167;
+                                                          return 2169;
                                                         }
                                                       else
                                                         {
@@ -6992,7 +6992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0xx0xxxxx011101xxxxxxxxxx
                                                              sqrdmlsh.  */
-                                                          return 2196;
+                                                          return 2198;
                                                         }
                                                     }
                                                   else
@@ -7001,7 +7001,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x0xx0xxxxx011x11xxxxxxxxxx
                                                          sqdmlslt.  */
-                                                      return 2174;
+                                                      return 2176;
                                                     }
                                                 }
                                             }
@@ -7050,7 +7050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx011100xxxxxxxxxx
                                                              sqdmulh.  */
-                                                          return 2178;
+                                                          return 2180;
                                                         }
                                                     }
                                                   else
@@ -7059,7 +7059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx011x10xxxxxxxxxx
                                                          smulh.  */
-                                                      return 2150;
+                                                      return 2152;
                                                     }
                                                 }
                                               else
@@ -7080,7 +7080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx011101xxxxxxxxxx
                                                              sqrdmulh.  */
-                                                          return 2200;
+                                                          return 2202;
                                                         }
                                                     }
                                                   else
@@ -7089,7 +7089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx011x11xxxxxxxxxx
                                                          umulh.  */
-                                                      return 2275;
+                                                      return 2277;
                                                     }
                                                 }
                                             }
@@ -7154,7 +7154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0101xxxxx0111xxxxxxxxxxxx
                                                              sqrdcmlah.  */
-                                                          return 2186;
+                                                          return 2188;
                                                         }
                                                       else
                                                         {
@@ -7162,7 +7162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x0111xxxxx0111xxxxxxxxxxxx
                                                              sqrdcmlah.  */
-                                                          return 2187;
+                                                          return 2189;
                                                         }
                                                     }
                                                 }
@@ -7795,7 +7795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x00x1xxxxx111x00xxxxxxxxxx
                                                              sqdmulh.  */
-                                                          return 2175;
+                                                          return 2177;
                                                         }
                                                       else
                                                         {
@@ -7812,7 +7812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x00x1xxxxx111xx1xxxxxxxxxx
                                                          sqrdmulh.  */
-                                                      return 2197;
+                                                      return 2199;
                                                     }
                                                 }
                                               else
@@ -7849,7 +7849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1110x0xxxxxxxxxx
                                                                  sqdmullb.  */
-                                                              return 2179;
+                                                              return 2181;
                                                             }
                                                           else
                                                             {
@@ -7859,7 +7859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0101xxxxx111100xxxxxxxxxx
                                                                      sqdmulh.  */
-                                                                  return 2176;
+                                                                  return 2178;
                                                                 }
                                                               else
                                                                 {
@@ -7879,7 +7879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1110x1xxxxxxxxxx
                                                                  sqdmullt.  */
-                                                              return 2182;
+                                                              return 2184;
                                                             }
                                                           else
                                                             {
@@ -7887,7 +7887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0101xxxxx1111x1xxxxxxxxxx
                                                                  sqrdmulh.  */
-                                                              return 2198;
+                                                              return 2200;
                                                             }
                                                         }
                                                     }
@@ -7912,7 +7912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1110x0xxxxxxxxxx
                                                                  sqdmullb.  */
-                                                              return 2180;
+                                                              return 2182;
                                                             }
                                                           else
                                                             {
@@ -7922,7 +7922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x0111xxxxx111100xxxxxxxxxx
                                                                      sqdmulh.  */
-                                                                  return 2177;
+                                                                  return 2179;
                                                                 }
                                                               else
                                                                 {
@@ -7942,7 +7942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1110x1xxxxxxxxxx
                                                                  sqdmullt.  */
-                                                              return 2183;
+                                                              return 2185;
                                                             }
                                                           else
                                                             {
@@ -7950,7 +7950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x0111xxxxx1111x1xxxxxxxxxx
                                                                  sqrdmulh.  */
-                                                              return 2199;
+                                                              return 2201;
                                                             }
                                                         }
                                                     }
@@ -8247,7 +8247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0000xxxxx001xxxxxxxxxxxxx
                                                          stnt1b.  */
-                                                      return 2237;
+                                                      return 2239;
                                                     }
                                                   else
                                                     {
@@ -8255,7 +8255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0100xxxxx001xxxxxxxxxxxxx
                                                          stnt1h.  */
-                                                      return 2240;
+                                                      return 2242;
                                                     }
                                                 }
                                               else
@@ -8266,7 +8266,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0010xxxxx001xxxxxxxxxxxxx
                                                          stnt1b.  */
-                                                      return 2236;
+                                                      return 2238;
                                                     }
                                                   else
                                                     {
@@ -8274,7 +8274,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x0110xxxxx001xxxxxxxxxxxxx
                                                          stnt1h.  */
-                                                      return 2239;
+                                                      return 2241;
                                                     }
                                                 }
                                             }
@@ -9829,7 +9829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x1xx1x1101100xxxxxxxxxxxxx
                                                                  splice.  */
-                                                              return 2157;
+                                                              return 2159;
                                                             }
                                                         }
                                                     }
@@ -9899,7 +9899,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x1xx1xxxxx001010xxxxxxxxxx
                                                              tbl.  */
-                                                          return 2246;
+                                                          return 2248;
                                                         }
                                                       else
                                                         {
@@ -9994,7 +9994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      000001x1xx1xxxxx001xx1xxxxxxxxxx
                                                      tbx.  */
-                                                  return 2247;
+                                                  return 2249;
                                                 }
                                             }
                                           else
@@ -10521,7 +10521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000000xxxxxxxxxx
                                                              saddlb.  */
-                                                          return 2123;
+                                                          return 2125;
                                                         }
                                                       else
                                                         {
@@ -10529,7 +10529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000100xxxxxxxxxx
                                                              ssublb.  */
-                                                          return 2230;
+                                                          return 2232;
                                                         }
                                                     }
                                                   else
@@ -10540,7 +10540,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000010xxxxxxxxxx
                                                              uaddlb.  */
-                                                          return 2254;
+                                                          return 2256;
                                                         }
                                                       else
                                                         {
@@ -10548,7 +10548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000110xxxxxxxxxx
                                                              usublb.  */
-                                                          return 2307;
+                                                          return 2309;
                                                         }
                                                     }
                                                 }
@@ -10562,7 +10562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000001xxxxxxxxxx
                                                              saddlt.  */
-                                                          return 2125;
+                                                          return 2127;
                                                         }
                                                       else
                                                         {
@@ -10570,7 +10570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000101xxxxxxxxxx
                                                              ssublt.  */
-                                                          return 2232;
+                                                          return 2234;
                                                         }
                                                     }
                                                   else
@@ -10581,7 +10581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000011xxxxxxxxxx
                                                              uaddlt.  */
-                                                          return 2255;
+                                                          return 2257;
                                                         }
                                                       else
                                                         {
@@ -10589,7 +10589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx000111xxxxxxxxxx
                                                              usublt.  */
-                                                          return 2308;
+                                                          return 2310;
                                                         }
                                                     }
                                                 }
@@ -10617,7 +10617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000000xxxxxxxxxx
                                                              sqshrunb.  */
-                                                          return 2213;
+                                                          return 2215;
                                                         }
                                                       else
                                                         {
@@ -10625,7 +10625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000100xxxxxxxxxx
                                                              shrnb.  */
-                                                          return 2131;
+                                                          return 2133;
                                                         }
                                                     }
                                                   else
@@ -10636,7 +10636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000010xxxxxxxxxx
                                                              sqrshrunb.  */
-                                                          return 2205;
+                                                          return 2207;
                                                         }
                                                       else
                                                         {
@@ -10644,7 +10644,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000110xxxxxxxxxx
                                                              rshrnb.  */
-                                                          return 2113;
+                                                          return 2115;
                                                         }
                                                     }
                                                 }
@@ -10658,7 +10658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000001xxxxxxxxxx
                                                              sqshrunt.  */
-                                                          return 2214;
+                                                          return 2216;
                                                         }
                                                       else
                                                         {
@@ -10666,7 +10666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000101xxxxxxxxxx
                                                              shrnt.  */
-                                                          return 2132;
+                                                          return 2134;
                                                         }
                                                     }
                                                   else
@@ -10677,7 +10677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000011xxxxxxxxxx
                                                              sqrshrunt.  */
-                                                          return 2206;
+                                                          return 2208;
                                                         }
                                                       else
                                                         {
@@ -10685,7 +10685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx000111xxxxxxxxxx
                                                              rshrnt.  */
-                                                          return 2114;
+                                                          return 2116;
                                                         }
                                                     }
                                                 }
@@ -10716,7 +10716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx100000xxxxxxxxxx
                                                              saddlbt.  */
-                                                          return 2124;
+                                                          return 2126;
                                                         }
                                                       else
                                                         {
@@ -10733,7 +10733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx100x10xxxxxxxxxx
                                                          ssublbt.  */
-                                                      return 2231;
+                                                      return 2233;
                                                     }
                                                 }
                                               else
@@ -10752,7 +10752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx100x11xxxxxxxxxx
                                                          ssubltb.  */
-                                                      return 2233;
+                                                      return 2235;
                                                     }
                                                 }
                                             }
@@ -10837,7 +10837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010000xxxxxxxxxx
                                                              saddwb.  */
-                                                          return 2126;
+                                                          return 2128;
                                                         }
                                                       else
                                                         {
@@ -10845,7 +10845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010100xxxxxxxxxx
                                                              ssubwb.  */
-                                                          return 2234;
+                                                          return 2236;
                                                         }
                                                     }
                                                   else
@@ -10856,7 +10856,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010010xxxxxxxxxx
                                                              uaddwb.  */
-                                                          return 2256;
+                                                          return 2258;
                                                         }
                                                       else
                                                         {
@@ -10864,7 +10864,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010110xxxxxxxxxx
                                                              usubwb.  */
-                                                          return 2309;
+                                                          return 2311;
                                                         }
                                                     }
                                                 }
@@ -10878,7 +10878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010001xxxxxxxxxx
                                                              saddwt.  */
-                                                          return 2127;
+                                                          return 2129;
                                                         }
                                                       else
                                                         {
@@ -10886,7 +10886,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010101xxxxxxxxxx
                                                              ssubwt.  */
-                                                          return 2235;
+                                                          return 2237;
                                                         }
                                                     }
                                                   else
@@ -10897,7 +10897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010011xxxxxxxxxx
                                                              uaddwt.  */
-                                                          return 2257;
+                                                          return 2259;
                                                         }
                                                       else
                                                         {
@@ -10905,7 +10905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx010111xxxxxxxxxx
                                                              usubwt.  */
-                                                          return 2310;
+                                                          return 2312;
                                                         }
                                                     }
                                                 }
@@ -10946,7 +10946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x10x1xxxxx010000xxxxxxxxxx
                                                                  sqxtnb.  */
-                                                              return 2217;
+                                                              return 2219;
                                                             }
                                                           else
                                                             {
@@ -10954,7 +10954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x10x1xxxxx010100xxxxxxxxxx
                                                                  sqxtunb.  */
-                                                              return 2219;
+                                                              return 2221;
                                                             }
                                                         }
                                                       else
@@ -10963,7 +10963,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x10x1xxxxx010x10xxxxxxxxxx
                                                              uqxtnb.  */
-                                                          return 2294;
+                                                          return 2296;
                                                         }
                                                     }
                                                   else
@@ -10976,7 +10976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x10x1xxxxx010001xxxxxxxxxx
                                                                  sqxtnt.  */
-                                                              return 2218;
+                                                              return 2220;
                                                             }
                                                           else
                                                             {
@@ -10984,7 +10984,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x10x1xxxxx010101xxxxxxxxxx
                                                                  sqxtunt.  */
-                                                              return 2220;
+                                                              return 2222;
                                                             }
                                                         }
                                                       else
@@ -10993,7 +10993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x10x1xxxxx010x11xxxxxxxxxx
                                                              uqxtnt.  */
-                                                          return 2295;
+                                                          return 2297;
                                                         }
                                                     }
                                                 }
@@ -11032,7 +11032,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx110000xxxxxxxxxx
                                                              sabalb.  */
-                                                          return 2118;
+                                                          return 2120;
                                                         }
                                                       else
                                                         {
@@ -11050,7 +11050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x11x0xxxxx110100xxxxxxxxxx
                                                                  sbclb.  */
-                                                              return 2128;
+                                                              return 2130;
                                                             }
                                                         }
                                                     }
@@ -11062,7 +11062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx110001xxxxxxxxxx
                                                              sabalt.  */
-                                                          return 2119;
+                                                          return 2121;
                                                         }
                                                       else
                                                         {
@@ -11080,7 +11080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x11x0xxxxx110101xxxxxxxxxx
                                                                  sbclt.  */
-                                                              return 2129;
+                                                              return 2131;
                                                             }
                                                         }
                                                     }
@@ -11095,7 +11095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx110010xxxxxxxxxx
                                                              uabalb.  */
-                                                          return 2249;
+                                                          return 2251;
                                                         }
                                                       else
                                                         {
@@ -11103,7 +11103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx110011xxxxxxxxxx
                                                              uabalt.  */
-                                                          return 2250;
+                                                          return 2252;
                                                         }
                                                     }
                                                   else
@@ -11122,7 +11122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxx111011xxxxxxxxxxx
                                                              sqcadd.  */
-                                                          return 2160;
+                                                          return 2162;
                                                         }
                                                     }
                                                 }
@@ -11242,7 +11242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx001x00xxxxxxxxxx
                                                          sabdlb.  */
-                                                      return 2120;
+                                                      return 2122;
                                                     }
                                                   else
                                                     {
@@ -11250,7 +11250,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx001x10xxxxxxxxxx
                                                          uabdlb.  */
-                                                      return 2251;
+                                                      return 2253;
                                                     }
                                                 }
                                               else
@@ -11261,7 +11261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx001x01xxxxxxxxxx
                                                          sabdlt.  */
-                                                      return 2121;
+                                                      return 2123;
                                                     }
                                                   else
                                                     {
@@ -11269,7 +11269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx001x11xxxxxxxxxx
                                                          uabdlt.  */
-                                                      return 2252;
+                                                      return 2254;
                                                     }
                                                 }
                                             }
@@ -11296,7 +11296,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001000xxxxxxxxxx
                                                              sqshrnb.  */
-                                                          return 2211;
+                                                          return 2213;
                                                         }
                                                       else
                                                         {
@@ -11304,7 +11304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001100xxxxxxxxxx
                                                              uqshrnb.  */
-                                                          return 2290;
+                                                          return 2292;
                                                         }
                                                     }
                                                   else
@@ -11315,7 +11315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001010xxxxxxxxxx
                                                              sqrshrnb.  */
-                                                          return 2203;
+                                                          return 2205;
                                                         }
                                                       else
                                                         {
@@ -11323,7 +11323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001110xxxxxxxxxx
                                                              uqrshrnb.  */
-                                                          return 2285;
+                                                          return 2287;
                                                         }
                                                     }
                                                 }
@@ -11337,7 +11337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001001xxxxxxxxxx
                                                              sqshrnt.  */
-                                                          return 2212;
+                                                          return 2214;
                                                         }
                                                       else
                                                         {
@@ -11345,7 +11345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001101xxxxxxxxxx
                                                              uqshrnt.  */
-                                                          return 2291;
+                                                          return 2293;
                                                         }
                                                     }
                                                   else
@@ -11356,7 +11356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001011xxxxxxxxxx
                                                              sqrshrnt.  */
-                                                          return 2204;
+                                                          return 2206;
                                                         }
                                                       else
                                                         {
@@ -11364,7 +11364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx001111xxxxxxxxxx
                                                              uqrshrnt.  */
-                                                          return 2286;
+                                                          return 2288;
                                                         }
                                                     }
                                                 }
@@ -11395,7 +11395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101000xxxxxxxxxx
                                                              sshllb.  */
-                                                          return 2227;
+                                                          return 2229;
                                                         }
                                                       else
                                                         {
@@ -11403,7 +11403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101100xxxxxxxxxx
                                                              bext.  */
-                                                          return 2332;
+                                                          return 2334;
                                                         }
                                                     }
                                                   else
@@ -11414,7 +11414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101010xxxxxxxxxx
                                                              ushllb.  */
-                                                          return 2303;
+                                                          return 2305;
                                                         }
                                                       else
                                                         {
@@ -11422,7 +11422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101110xxxxxxxxxx
                                                              bgrp.  */
-                                                          return 2333;
+                                                          return 2335;
                                                         }
                                                     }
                                                 }
@@ -11436,7 +11436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101001xxxxxxxxxx
                                                              sshllt.  */
-                                                          return 2228;
+                                                          return 2230;
                                                         }
                                                       else
                                                         {
@@ -11444,7 +11444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx101101xxxxxxxxxx
                                                              bdep.  */
-                                                          return 2331;
+                                                          return 2333;
                                                         }
                                                     }
                                                   else
@@ -11453,7 +11453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          010001x1xx0xxxxx101x11xxxxxxxxxx
                                                          ushllt.  */
-                                                      return 2304;
+                                                      return 2306;
                                                     }
                                                 }
                                             }
@@ -11516,7 +11516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011000xxxxxxxxxx
                                                              sqdmullb.  */
-                                                          return 2181;
+                                                          return 2183;
                                                         }
                                                       else
                                                         {
@@ -11524,18 +11524,29 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011100xxxxxxxxxx
                                                              smullb.  */
-                                                          return 2153;
+                                                          return 2155;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       if (((word >> 12) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             010001x1xx0xxxxx011010xxxxxxxxxx
-                                                             pmullb.  */
-                                                          return 2328;
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x00xxxxx011010xxxxxxxxxx
+                                                                 pmullb.  */
+                                                              return 2330;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x10xxxxx011010xxxxxxxxxx
+                                                                 pmullb.  */
+                                                              return 2111;
+                                                            }
                                                         }
                                                       else
                                                         {
@@ -11543,7 +11554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011110xxxxxxxxxx
                                                              umullb.  */
-                                                          return 2278;
+                                                          return 2280;
                                                         }
                                                     }
                                                 }
@@ -11557,7 +11568,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011001xxxxxxxxxx
                                                              sqdmullt.  */
-                                                          return 2184;
+                                                          return 2186;
                                                         }
                                                       else
                                                         {
@@ -11565,18 +11576,29 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011101xxxxxxxxxx
                                                              smullt.  */
-                                                          return 2156;
+                                                          return 2158;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       if (((word >> 12) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             010001x1xx0xxxxx011011xxxxxxxxxx
-                                                             pmullt.  */
-                                                          return 2329;
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x00xxxxx011011xxxxxxxxxx
+                                                                 pmullt.  */
+                                                              return 2331;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x10xxxxx011011xxxxxxxxxx
+                                                                 pmullt.  */
+                                                              return 2112;
+                                                            }
                                                         }
                                                       else
                                                         {
@@ -11584,7 +11606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx011111xxxxxxxxxx
                                                              umullt.  */
-                                                          return 2281;
+                                                          return 2283;
                                                         }
                                                     }
                                                 }
@@ -11631,7 +11653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011100xxxxxxxxxx
                                                              subhnb.  */
-                                                          return 2243;
+                                                          return 2245;
                                                         }
                                                     }
                                                   else
@@ -11642,7 +11664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011010xxxxxxxxxx
                                                              raddhnb.  */
-                                                          return 2111;
+                                                          return 2113;
                                                         }
                                                       else
                                                         {
@@ -11650,7 +11672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011110xxxxxxxxxx
                                                              rsubhnb.  */
-                                                          return 2115;
+                                                          return 2117;
                                                         }
                                                     }
                                                 }
@@ -11672,7 +11694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011101xxxxxxxxxx
                                                              subhnt.  */
-                                                          return 2244;
+                                                          return 2246;
                                                         }
                                                     }
                                                   else
@@ -11683,7 +11705,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011011xxxxxxxxxx
                                                              raddhnt.  */
-                                                          return 2112;
+                                                          return 2114;
                                                         }
                                                       else
                                                         {
@@ -11691,7 +11713,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx1xxxxx011111xxxxxxxxxx
                                                              rsubhnt.  */
-                                                          return 2116;
+                                                          return 2118;
                                                         }
                                                     }
                                                 }
@@ -11733,7 +11755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111000xxxxxxxxxx
                                                              ssra.  */
-                                                          return 2229;
+                                                          return 2231;
                                                         }
                                                       else
                                                         {
@@ -11741,7 +11763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111100xxxxxxxxxx
                                                              sri.  */
-                                                          return 2222;
+                                                          return 2224;
                                                         }
                                                     }
                                                   else
@@ -11752,7 +11774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111010xxxxxxxxxx
                                                              srsra.  */
-                                                          return 2226;
+                                                          return 2228;
                                                         }
                                                       else
                                                         {
@@ -11760,7 +11782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111110xxxxxxxxxx
                                                              saba.  */
-                                                          return 2117;
+                                                          return 2119;
                                                         }
                                                     }
                                                 }
@@ -11774,7 +11796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111001xxxxxxxxxx
                                                              usra.  */
-                                                          return 2306;
+                                                          return 2308;
                                                         }
                                                       else
                                                         {
@@ -11782,7 +11804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111101xxxxxxxxxx
                                                              sli.  */
-                                                          return 2135;
+                                                          return 2137;
                                                         }
                                                     }
                                                   else
@@ -11793,7 +11815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111011xxxxxxxxxx
                                                              ursra.  */
-                                                          return 2302;
+                                                          return 2304;
                                                         }
                                                       else
                                                         {
@@ -11801,7 +11823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              010001x1xx0xxxxx111111xxxxxxxxxx
                                                              uaba.  */
-                                                          return 2248;
+                                                          return 2250;
                                                         }
                                                     }
                                                 }
@@ -11868,7 +11890,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          010001x1001xxx001110x0xxxxxxxxxx
                                                                          aesmc.  */
-                                                                      return 2327;
+                                                                      return 2329;
                                                                     }
                                                                   else
                                                                     {
@@ -11876,7 +11898,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          010001x1001xxx101110x0xxxxxxxxxx
                                                                          aese.  */
-                                                                      return 2325;
+                                                                      return 2327;
                                                                     }
                                                                 }
                                                               else
@@ -11885,7 +11907,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x1001xxxx11110x0xxxxxxxxxx
                                                                      sm4e.  */
-                                                                  return 2322;
+                                                                  return 2324;
                                                                 }
                                                             }
                                                           else
@@ -11894,7 +11916,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x1001xxxxx1111x0xxxxxxxxxx
                                                                  sm4ekey.  */
-                                                              return 2323;
+                                                              return 2325;
                                                             }
                                                         }
                                                       else
@@ -11907,7 +11929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x1001xxx0x1110x1xxxxxxxxxx
                                                                      aesimc.  */
-                                                                  return 2326;
+                                                                  return 2328;
                                                                 }
                                                               else
                                                                 {
@@ -11915,7 +11937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      010001x1001xxx1x1110x1xxxxxxxxxx
                                                                      aesd.  */
-                                                                  return 2324;
+                                                                  return 2326;
                                                                 }
                                                             }
                                                           else
@@ -11924,7 +11946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  010001x1001xxxxx1111x1xxxxxxxxxx
                                                                  rax1.  */
-                                                              return 2330;
+                                                              return 2332;
                                                             }
                                                         }
                                                     }
@@ -12036,7 +12058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000000xxxxx0xxxx
                                                              whilege.  */
-                                                          return 2311;
+                                                          return 2313;
                                                         }
                                                       else
                                                         {
@@ -12044,7 +12066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000100xxxxx0xxxx
                                                              whilege.  */
-                                                          return 2312;
+                                                          return 2314;
                                                         }
                                                     }
                                                   else
@@ -12055,7 +12077,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000010xxxxx0xxxx
                                                              whilehs.  */
-                                                          return 2317;
+                                                          return 2319;
                                                         }
                                                       else
                                                         {
@@ -12063,7 +12085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000110xxxxx0xxxx
                                                              whilehs.  */
-                                                          return 2318;
+                                                          return 2320;
                                                         }
                                                     }
                                                 }
@@ -12121,7 +12143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000000xxxxx1xxxx
                                                              whilegt.  */
-                                                          return 2313;
+                                                          return 2315;
                                                         }
                                                       else
                                                         {
@@ -12129,7 +12151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000100xxxxx1xxxx
                                                              whilegt.  */
-                                                          return 2314;
+                                                          return 2316;
                                                         }
                                                     }
                                                   else
@@ -12140,7 +12162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000010xxxxx1xxxx
                                                              whilehi.  */
-                                                          return 2315;
+                                                          return 2317;
                                                         }
                                                       else
                                                         {
@@ -12148,7 +12170,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x01001x1xx1xxxxx000110xxxxx1xxxx
                                                              whilehi.  */
-                                                          return 2316;
+                                                          return 2318;
                                                         }
                                                     }
                                                 }
@@ -12490,7 +12512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1000xxxxx001xxxxxxxxxxxxx
                                                          stnt1w.  */
-                                                      return 2242;
+                                                      return 2244;
                                                     }
                                                   else
                                                     {
@@ -12498,7 +12520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1100xxxxx001xxxxxxxxxxxxx
                                                          stnt1d.  */
-                                                      return 2238;
+                                                      return 2240;
                                                     }
                                                 }
                                               else
@@ -12507,7 +12529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1x10xxxxx001xxxxxxxxxxxxx
                                                      stnt1w.  */
-                                                  return 2241;
+                                                  return 2243;
                                                 }
                                             }
                                         }
@@ -12532,7 +12554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1xx1xxxxx0011xxxxxxx0xxxx
                                                      whilewr.  */
-                                                  return 2320;
+                                                  return 2322;
                                                 }
                                             }
                                           else
@@ -12551,7 +12573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1xx1xxxxx0011xxxxxxx1xxxx
                                                      whilerw.  */
-                                                  return 2319;
+                                                  return 2321;
                                                 }
                                             }
                                         }
@@ -16065,7 +16087,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x0101xxxxxxxxxx
                                                          sdot.  */
-                                                      return 2335;
+                                                      return 2337;
                                                     }
                                                 }
                                               else
@@ -16197,7 +16219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110000xxxxxxxxxxxxxxxxxxxxx
                                              eor3.  */
-                                          return 2342;
+                                          return 2344;
                                         }
                                       else
                                         {
@@ -16205,7 +16227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110100xxxxxxxxxxxxxxxxxxxxx
                                              xar.  */
-                                          return 2344;
+                                          return 2346;
                                         }
                                     }
                                   else
@@ -16216,7 +16238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110x10xxxxx0xxxxxxxxxxxxxxx
                                              sm3ss1.  */
-                                          return 2346;
+                                          return 2348;
                                         }
                                       else
                                         {
@@ -16230,7 +16252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx00xxxxxxxxxx
                                                          sm3tt1a.  */
-                                                      return 2347;
+                                                      return 2349;
                                                     }
                                                   else
                                                     {
@@ -16238,7 +16260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx00xxxxxxxxxx
                                                          sha512su0.  */
-                                                      return 2340;
+                                                      return 2342;
                                                     }
                                                 }
                                               else
@@ -16247,7 +16269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx10xxxxxxxxxx
                                                      sm3tt2a.  */
-                                                  return 2349;
+                                                  return 2351;
                                                 }
                                             }
                                           else
@@ -16260,7 +16282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx01xxxxxxxxxx
                                                          sm3tt1b.  */
-                                                      return 2348;
+                                                      return 2350;
                                                     }
                                                   else
                                                     {
@@ -16268,7 +16290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx01xxxxxxxxxx
                                                          sm4e.  */
-                                                      return 2353;
+                                                      return 2355;
                                                     }
                                                 }
                                               else
@@ -16277,7 +16299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx11xxxxxxxxxx
                                                      sm3tt2b.  */
-                                                  return 2350;
+                                                  return 2352;
                                                 }
                                             }
                                         }
@@ -16458,7 +16480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx101110xx0xxxxx100101xxxxxxxxxx
                                                          udot.  */
-                                                      return 2334;
+                                                      return 2336;
                                                     }
                                                 }
                                               else
@@ -17369,7 +17391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          1x001110xx1xxxxx0xxxxxxxxxxxxxxx
                                          bcax.  */
-                                      return 2345;
+                                      return 2347;
                                     }
                                 }
                               else
@@ -17980,7 +18002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx100000xxxxxxxxxx
                                                                  sha512h.  */
-                                                              return 2338;
+                                                              return 2340;
                                                             }
                                                         }
                                                     }
@@ -18032,7 +18054,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx110000xxxxxxxxxx
                                                                  sm3partw1.  */
-                                                              return 2351;
+                                                              return 2353;
                                                             }
                                                         }
                                                     }
@@ -18275,7 +18297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100010xxxxxxxxxx
                                                              sha512su1.  */
-                                                          return 2341;
+                                                          return 2343;
                                                         }
                                                     }
                                                   else
@@ -18351,7 +18373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110010xxxxxxxxxx
                                                                  sm4ekey.  */
-                                                              return 2354;
+                                                              return 2356;
                                                             }
                                                         }
                                                       else
@@ -19177,7 +19199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100001xxxxxxxxxx
                                                              sha512h2.  */
-                                                          return 2339;
+                                                          return 2341;
                                                         }
                                                     }
                                                   else
@@ -19209,7 +19231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110001xxxxxxxxxx
                                                                  sm3partw2.  */
-                                                              return 2352;
+                                                              return 2354;
                                                             }
                                                         }
                                                       else
@@ -19449,7 +19471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100011xxxxxxxxxx
                                                              rax1.  */
-                                                          return 2343;
+                                                          return 2345;
                                                         }
                                                     }
                                                   else
@@ -19481,7 +19503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2357;
+                                                              return 2359;
                                                             }
                                                           else
                                                             {
@@ -19489,7 +19511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2361;
+                                                              return 2363;
                                                             }
                                                         }
                                                     }
@@ -19511,7 +19533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2358;
+                                                              return 2360;
                                                             }
                                                           else
                                                             {
@@ -19519,7 +19541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2362;
+                                                              return 2364;
                                                             }
                                                         }
                                                     }
@@ -19558,7 +19580,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2355;
+                                                              return 2357;
                                                             }
                                                           else
                                                             {
@@ -19566,7 +19588,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2359;
+                                                              return 2361;
                                                             }
                                                         }
                                                       else
@@ -19588,7 +19610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2356;
+                                                              return 2358;
                                                             }
                                                           else
                                                             {
@@ -19596,7 +19618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2360;
+                                                              return 2362;
                                                             }
                                                         }
                                                       else
@@ -21404,7 +21426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2363;
+                                                  return 2365;
                                                 }
                                               else
                                                 {
@@ -21412,7 +21434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2367;
+                                                  return 2369;
                                                 }
                                             }
                                           else
@@ -21434,7 +21456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2364;
+                                                  return 2366;
                                                 }
                                               else
                                                 {
@@ -21442,7 +21464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2368;
+                                                  return 2370;
                                                 }
                                             }
                                           else
@@ -21948,7 +21970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2365;
+                                                  return 2367;
                                                 }
                                               else
                                                 {
@@ -21956,7 +21978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2369;
+                                                  return 2371;
                                                 }
                                             }
                                         }
@@ -21978,7 +22000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2366;
+                                                  return 2368;
                                                 }
                                               else
                                                 {
@@ -21986,7 +22008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2370;
+                                                  return 2372;
                                                 }
                                             }
                                         }
@@ -22042,7 +22064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx001111xxxxxxxx1110x0xxxxxxxxxx
                                                  sdot.  */
-                                              return 2337;
+                                              return 2339;
                                             }
                                           else
                                             {
@@ -22050,7 +22072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx101111xxxxxxxx1110x0xxxxxxxxxx
                                                  udot.  */
-                                              return 2336;
+                                              return 2338;
                                             }
                                         }
                                     }
@@ -22675,8 +22697,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 1214: value = 1215; break;    /* isb --> sb.  */
     case 1215: value = 1216; break;    /* sb --> sys.  */
     case 1216: value = 1224; break;    /* sys --> msr.  */
-    case 1224: value = 2371; break;    /* msr --> cfinv.  */
-    case 2371: return NULL;            /* cfinv --> NULL.  */
+    case 1224: value = 2373; break;    /* msr --> cfinv.  */
+    case 2373: return NULL;            /* cfinv --> NULL.  */
     case 1188: value = 1190; break;    /* tstart --> ttest.  */
     case 1190: value = 1225; break;    /* ttest --> sysl.  */
     case 1225: value = 1226; break;    /* sysl --> mrs.  */
index 6b53a2c3228aea3117e0f45450dc9f192eedd6de..7ae844a601c409b23f0a537355aec6b54f7ef385 100644 (file)
@@ -2822,14 +2822,11 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst)
       variant = i - 1;
       break;
 
-    case sve_size_013:
-      i = extract_field (FLD_size, inst->value, 0);
-      if (i == 2)
-       return FALSE;
-      if (i == 3)
-       variant = 2;
-      else
-       variant = i;
+    case sve_size_13:
+      /* Ignore low bit of this field since that is set in the opcode for
+        instructions of this iclass.  */
+      i = (extract_field (FLD_size, inst->value, 0) & 2);
+      variant = (i >> 1);
       break;
 
     case sve_shift_tsz_bhsd:
index 60255d93647cb21186c44cbd4f25cbdb8bd23225..9ee92ea35b226d7ca375d8b81e324220256c6b89 100644 (file)
 {                                                       \
   QLF3(S_S,S_S,S_S),                                    \
 }
+#define OP_SVE_VVV_HD_BS                               \
+{                                                       \
+  QLF3(S_H,S_B,S_B),                                    \
+  QLF3(S_D,S_S,S_S),                                    \
+}
 #define OP_SVE_VVV_S_B                                  \
 {                                                       \
   QLF3(S_S,S_B,S_B),                                    \
 }
-#define OP_SVE_VVV_QHD_DBS                              \
+#define OP_SVE_VVV_Q_D                                 \
 {                                                       \
   QLF3(S_Q,S_D,S_D),                                    \
-  QLF3(S_H,S_B,S_B),                                    \
-  QLF3(S_D,S_S,S_S),                                    \
 }
 #define OP_SVE_VVV_HSD_BHS                              \
 {                                                       \
@@ -4673,6 +4676,8 @@ struct aarch64_opcode aarch64_opcode_table[] =
   SVE2_INSNC ("nbsl", 0x04e03c00, 0xffe0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_16, SVE_Zn), OP_SVE_DDDD, 0, C_SCAN_MOVPRFX, 1),
   SVE2_INSN ("nmatch", 0x45208010, 0xffa0e010,  sve_size_bh, 0, OP4 (SVE_Pd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_VZVV_BH, 0, 0),
   SVE2_INSN ("pmul", 0x04206400, 0xffe0fc00,  sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_BBB, 0, 0),
+  SVE2_INSN ("pmullb", 0x45406800, 0xff60fc00, sve_size_13, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_HD_BS, 0, 0),
+  SVE2_INSN ("pmullt", 0x45406c00, 0xff60fc00, sve_size_13, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_HD_BS, 0, 0),
   SVE2_INSN ("raddhnb", 0x45206800, 0xff20fc00,  sve_size_hsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHS_HSD, 0, 0),
   SVE2_INSN ("raddhnt", 0x45206c00, 0xff20fc00,  sve_size_hsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHS_HSD, 0, 0),
   SVE2_INSN ("rshrnb", 0x45201800, 0xffa0fc00,  sve_shift_tsz_hsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_SHRIMM_UNPRED_22), OP_SVE_VVU_BHS_HSD, 0, 0),
@@ -4892,8 +4897,8 @@ struct aarch64_opcode aarch64_opcode_table[] =
   SVE2AES_INSN ("aese", 0x4522e000, 0xfffffc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zd, SVE_Zn), OP_SVE_BBB, 0, 1),
   SVE2AES_INSN ("aesimc", 0x4520e400, 0xffffffe0, sve_misc, 0, OP2 (SVE_Zd, SVE_Zd), OP_SVE_BB, 0, 1),
   SVE2AES_INSN ("aesmc", 0x4520e000, 0xffffffe0, sve_misc, 0, OP2 (SVE_Zd, SVE_Zd), OP_SVE_BB, 0, 1),
-  SVE2AES_INSN ("pmullb", 0x45006800, 0xff20fc00,  sve_size_013, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_QHD_DBS, 0, 0),
-  SVE2AES_INSN ("pmullt", 0x45006c00, 0xff20fc00,  sve_size_013, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_QHD_DBS, 0, 0),
+  SVE2AES_INSN ("pmullb", 0x45006800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_Q_D, 0, 0),
+  SVE2AES_INSN ("pmullt", 0x45006c00, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_Q_D, 0, 0),
   /* SVE2_SHA3 instructions.  */
   SVE2SHA3_INSN ("rax1", 0x4520f400, 0xffe0fc00,  sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_DDD, 0, 0),
   /* SVE2_BITPERM instructions. */